2015-01-19 2 views
1

Получил небольшую проблему с логином и перенаправлением. Я создаю социальную сеть, которая после входа отправляет вас в файл user.php.Ошибка перенаправления MySQLi

Я получаю логин с ошибкой на user.php, говорящий, что пользователь не существует или не активирован! Вот фрагмент кода из моей login.php

if(isset($_POST["e"])){ 
    // GATHER THE POSTED DATA INTO LOCAL VARIABLES AND SANITIZE 
    $e = mysqli_real_escape_string($db_conx, $_POST['e']); 
    $p = $_POST['p']; 
    // Form data error handling 
    if ($e == "" && $p == ""){ 
     echo "Login Failed"; 
     exit(); 
    } else { 
     $sql = "SELECT id, username, password FROM users WHERE email='$e' AND activated='1' LIMIT 1"; 
     $query = mysqli_query($db_conx, $sql); 
     $row = mysqli_fetch_array($query, MYSQLI_ASSOC); 
      $db_id = $row["id"]; 
      $db_username = $row["username"]; 
      $db_pass_str = $row["password"]; 
      if (password_verify('$p', $db_pass_str)){ 

Я затем и установить $ _SESSION и печенье для этого пользователя. else I then echo Login Сбой и выход из сценария.

После входа в систему он должен перенаправить на user.php, который он выполняет, но он запускает это в этом файле.

$sql = "SELECT * FROM users WHERE username='$u' AND activated='1' LIMIT 1"; 
$user_query = mysqli_query($db_conx, $sql); 
// Now make sure that user exists in the table 
$numrows = mysqli_num_rows($user_query); 
if($numrows < 1){ 
    echo "That user does not exist or is not yet activated, press back"; 
    exit(); 
} 

У меня есть сообщение об ошибке_репортаж в обоих файлах, но это не вызывает никаких проблем! Любые идеи вы будете здорово! Большое спасибо! - Филипп

+3

'if (password_verify ('$ p', $ db_pass_str) {' Я действительно сомневаюсь, что эта функция хочет '$ p' как строку, возможно, вы хотите удалить кавычки? –

+1

Где '$ u' переменная, инициализированная в' user.php' – Steve

+0

Спасибо @ royal-bg, что это было! все отсортировано сейчас! –

ответ

1

на вашем mysqli_query добавить улов ошибки:

$user_query = mysqli_query($db_conx, $sql) or die(mysqli_error($db_conx)); 

для отладки.

ЧАСТЬ 2:

вы уверены, что здесь вы установили $u:

$sql = "SELECT * FROM users WHERE username='$u' AND activated='1' LIMIT 1"; 

снова, добавьте mysqli_error улов на $user_query SQL линии тоже.

+0

Спасибо, Мартин. Получил это все отсортировано теперь приятель! –