2016-08-25 4 views
0

Я пытаюсь получить значение имени пользователя на другой странице, но не могу. Мой PHP код:PHP pass variable

include("config.php"); 
include('userClass.php'); 
$userClass = new userClass(); 

if (!empty($_POST['loginSubmit'])) 
{ 
    $usernameEmail=$_POST['usernameEmail']; 
    $password=$_POST['password']; 


    if(strlen(trim($usernameEmail))>1 && strlen(trim($password))>1) 
    { 
     $uid=$userClass->userLogin($usernameEmail,$password); 
     if($uid) 
     { 
      $url=BASE_URL.'test.php'; 
      header("Location: $url"); // Page redirecting to home.php 
     } 
    else 
    { 
     $errorMsgLogin="Please check login details."; 
     } 
    } 
} 

<div id="login"> 
<h3>Login</h3> 
<form method="post" action="" name="login"> 
    <label>Username or Email</label> 
    <input type="text" name="usernameEmail" autocomplete="off" /> 
    <label>Password</label> 
    <input type="password" name="password" autocomplete="off"/> 
    <div class="errorMsg"><?php echo $errorMsgLogin; ?></div> 
    <input type="submit" class="button" name="loginSubmit" value="Login"> 
    </form> 
</div> 

Я хочу, чтобы получить usernameEmai л в новом PHP файл welcome.php, где я пытаюсь $username = $_POST['usernameEmail'];, но он не работает. Любое руководство будет полезно.

Это мой userclass.php

class userClass 
{ 
/* User Login */ 
public function userLogin($usernameEmail,$password) 
{ 
    try{ 
    $db = getDB(); 
    $hash_password= hash('sha256', $password); //Password encryption 
    $stmt = $db->prepare("SELECT uid FROM doctorusers WHERE (username=:usernameEmail or email=:usernameEmail) AND password=:hash_password"); 
    $stmt->bindParam("usernameEmail", $usernameEmail,PDO::PARAM_STR) ; 
    $stmt->bindParam("hash_password", $hash_password,PDO::PARAM_STR) ; 
    $stmt->execute(); 
    $count=$stmt->rowCount(); 
    $data=$stmt->fetch(PDO::FETCH_OBJ); 
    $db = null; 
    if($count) 
    { 
     $_SESSION['uid']=$data->uid; // Storing user session value 
     return true; 
    } 
    else 
    { 
     return false; 
     } 
    } 
    catch(PDOException $e) { 
     echo '{"error":{"text":'. $e->getMessage() .'}}'; 
    } 

} 
+1

Можете ли вы объяснить, что не работает ? Это в обход всего оператора if? Если да, то, возможно, вы отправляете с «enter» вместо нажатия кнопки? Или это будет '$ errorMsgLogin' – Forbs

+0

, если вы хотите использовать параметр на странице test.php, вам нужно будет добавить имя в url, например test.php /? Name = somevalue. Но, вероятно, лучше использовать сеанс – RST

+1

u может использовать сеанс –

ответ

0

вы можете использовать PHP $ _SESSION вставив

$_SESSION["mail"] = $usernameEmail; 

после формы успеха и положил начало сеанса на верхней части страницы

session_start(); 

это сохранит ваше имя пользователя по электронной почте, чтобы использовать

echo $_SESSION["mail"]; 

убедитесь, что и вставить

session_start();

на верхней части каждой страницы будет использовать $_SESSION["mail"];

вы можете использовать этот учебник в качестве примера

<?php 
session_start(); 
    if (!empty($_POST['loginSubmit'])){ 
     $usernameEmail= $_POST['usernameEmail']; 
     if(!empty($usernameEmail)){ 
      $_SESSION["mail"] = $usernameEmail; 
     } 
    } 
?> 
<?php 
if(!empty($_SESSION["mail"])){ 
echo $_SESSION["mail"]; 
} 
?> 
<div id="login"> 
<h3>Login</h3> 
<form method="post" action="" name="login"> 
    <label>Username or Email</label> 
    <input type="text" name="usernameEmail" autocomplete="off" /> 
    <label>Password</label> 
    <input type="password" name="password" autocomplete="off"/> 
    <div class="errorMsg"></div> 
    <input type="submit" class="button" name="loginSubmit" value="Login"> 
    </form> 
</div> 
+0

Позвольте мне попытаться вернуться к вам, спасибо. – AIS

+0

Nopes, не помогло. Я обновил свой код. Смотрите сейчас. – AIS

0

Сначала добавьте session_start(); к началу вами PHP тега.

Установите форму действия на action="welcome.php".

Затем, когда и где вы хотите отправить переменную, сделайте это $_SESSION['username'] = $usernameEmail.

И, наконец, в welcome.php добавить эту строку session_start(); и вызвать переменную с помощью $usernameEmail = $_SESSION['username'];, теперь вы можете использовать $usernameEmail делать все, что вы хотите с именем

Приветствия

+0

Спасибо. Позвольте мне попытаться вернуться к вам. – AIS