2013-12-19 5 views
-2

Ive написал мою аутентификацию PDO, которая не завершена, я получил это и протестировал ее, я отлаживал ее и не имел успеха в поиске проблемы здесь.
Этот код должен возвращать неверные данные, за исключением того, что в этом случае он не попадает на пустую страницу.Pdo Authentication

<?php 
error_reporting(E_ALL); 
require('.class/class_pdo.php'); 

$query = $db->prepare('SELECT player_login_name, player_login_pass FROM members 
    WHERE player_login_name = :name AND player_login_pass = :pass'); 
$db->connect; 
$query->bindParam(':name', $name, PDO::PARAM_STR); 
$query->bindParam(':pass', $pass, PDO::PARAM_STR); 

$name = (isset($_POST['name']) && !empty($_POST['name'])) ? htmlspecialchars($_POST['name']) : ''; 
$pass = (isset($_POST['pass']) && !empty($_POST['pass'])) ? password_verify($_POST['pass']) : ''; 

if($query->fetchColumn() == 0) { 
    echo "Invalid data"; 
} else { 
    header("location:'welcome.php'"); 
} 
$query->execute(); 
?> 

любые идеи были бы большими спасибо?

+0

Кажется, что один одиночный оффтоп не-реальный вопрос может быть просто бесконечным источником точек rep. Каждый участник может взять одну строчку этого случайно построенного кода, исправить его и закрепить заслуженную награду. Прибыль! –

+0

Тогда почему бы вам не проголосовать, чтобы закрыть его или ответить на него самостоятельно, @YourCommonSense, вместо того, чтобы раскалывать тех, кто не торопится ответить. –

+0

@MartinBean Поскольку Stack Overflow - это игра, в которой все только после получения очков реплики. Означает, что этот вопрос никогда не закрывается (поскольку для закрытия нет награды). –

ответ

0

Прежде всего у вас есть ошибка здесь

password_verify($_POST['pass']) 

password_verify() требует 2 параметра, но вы передаете только один. Отсутствует хэш , который следует сравнить с.

+0

Downvoter, причина? –

+0

это не ответ, а комментарий. Пожалуйста, умерите свое желание повторять очки. * Если * вы решите ответить на оффтопический вопрос, сделайте полный ответ, а не просто комментарий по одной второстепенной проблеме. –

+0

@YourCommonSense, я не думаю, что это комментарий, потому что это прежде всего то, что делает код не исполняемым (** Поскольку это синтаксическая ошибка **), поскольку он не предоставляет 'hash' для сравниваться с паролем. Более того, я не могу найти одну переменную, относящуюся к хешу. –