2013-05-09 5 views
0

Следующий код не работает:PHP Войти с помощью password_hash

Войти Страница:

if (isset($_POST['login'])) { 
    $name = $mysqli->real_escape_string($_POST['name']); 
    $pass = $_POST['pass']; 
    $query = "SELECT * FROM users WHERE name='{$name}'"; 
    $result = $mysqli->query($query) or die($mysqli->error.__LINE__); 
    if($result->num_rows > 0) { 
    while($row = $result->fetch_assoc()) { 
      if(password_verify($pass, $row['pass'])){ 
       $_SESSION['logged'] = true; 
       $_SESSION['name'] = $row['name']; 
       $_SESSION['pass'] = $row['pass']; 
       //header('Location: index.php'); 
       echo "Workded"; 
      } else { 
       echo "Crypt Not Matching"; 
      } 
     } 
    } 
} 

Код, используемый для вставки в базу данных:

if (empty($e1)) { 
     $password = password_hash($pass, PASSWORD_BCRYPT); 
     if ($mysqli->query("INSERT into users (name, pass, email, gamertag, psnid, youtube, fbauth) VALUES ('$username', '$password', '$email', '$xbox', '$psn', '$youtube', '$fbid')")) { 
      session_start(); 
      $_SESSION['logged'] = true; 
      $_SESSION['name'] = $username; 
      $_SESSION['pass'] = $password; 
      header('Location: index.php'); 
     } 
    } 

Может кто-нибудь указать на то, что я делать не так?

+1

Что не виляет? Какую ошибку вы получаете? Что вы получаете и чего ожидаете получить? – Tivie

+0

Ошибок нет, просто пытается проверить логин. Принимая во внимание, что логин для входа в систему хранится в базе данных для инициализации сеанса и входа пользователя в систему. –

ответ

0

1 - отладить $ _POST вар и проверить, если его правильно передается из запроса HTTP POST

var_dump($_POST); 

2 - отладить результат базы данных, в цикле Еогеасп, и проверить, если вы правильное получение информации из базы данных

while($row = $result->fetch_assoc()) { 
    var_dump($row); 
} 

3 - проверьте правильность работы password_hash и password_verify.

$pwd = 'some_password'; 
$hash = password_hash($pwd, PASSWORD_BCRYPT); 
var_dump(password_verify($pwd, $hash); 
Смежные вопросы