2015-07-25 5 views
0

Я целыми днями размахивал своим мозгом, пытаясь сохранить данные пользователя, полученные из запроса базы данных, к переменной $ _SESSION.

Я положил его на backburner, пока я закончил строительство другой части сайта и использовал фиктивные данные, которые я ввел для проверки.

Код прекрасно работает с фиктивными данными, но не работает, когда я пытаюсь реализовать в нем результаты запроса. Я пробовал следить за тем, как это делают другие люди, но мой просто не работает.

Вот сценарий, я с фиктивными данными, который работает:

$query = "SELECT * FROM members WHERE Email='$Email' AND Activation IS NULL"; 
$result = $dbc->query($query); 
$password_match = 0; 

if ($result->num_rows > 0) { 
    while ($row = $result->fetch_assoc()) { 
     $password_match = password_verify($Password, $row["Password"]); 
     } 
     if ($password_match) { 
      $_SESSION["Username"] = "Members username"; 
      header("Location: page.php"); 
     } 
     else { 
      $msg_error= 'Either Your Account is inactive or Email address /Password is Incorrect'; 
     } 
} 

фиктивные данные здесь «Члены имя пользователя», я хотел бы для того, чтобы сохранить полученное значение в качестве части запроса от столбец «Имя пользователя».

Я попробовал несколько способов, в последнее время использовал это:

$_SESSION["Username"] = $row["Username"]; 

Но не везло с этим.

Любые указатели очень ценятся!

+0

сделал и начать сеанс? – user1844933

+0

Возможно, вам нужно добавить этот 'session_start();' перед загрузкой переменных в 'Session' – Shehary

+1

вы что-то вроде' echo $ row ["Username"] ', чтобы проверить, что ваша переменная не пуста? вы тоже 'session_start()' в page.php? – cari

ответ

1

Попробуйте это ... Вы не выборки строки из внутри цикла,

$query = "SELECT * FROM members WHERE Email='$Email' AND Activation IS NULL"; 
$result = $dbc->query($query); 
$password_match = 0; 

if ($result->num_rows > 0) { 
    while ($row = $result->fetch_assoc()) { 
     $password_match = password_verify($Password, $row["Password"]); 

     if ($password_match) { 
      $_SESSION["Username"] = "Members username"; 
      header("Location: page.php"); 
     } 
     else { 
      $msg_error= 'Either Your Account is inactive or Email address /Password is Incorrect'; 
     } 
}} 
+0

Это просто одна из тех вещей, которые были настолько просты, но после нескольких дней просмотра кода я полностью пропустил это. Это прекрасно работает. – James

Смежные вопросы