PHPass возвращает ошибку
В моем файле функций у меня есть этот код:
function password($password, $dbpassword = false){
if($dbpassword){
$password = mysqli_real_escape_string($GLOBALS["mysqli"], $_POST["$dbpassword"]);
if(empty($password))
$password = mysqli_real_escape_string($GLOBALS["mysqli"], $_GET["$dbpassword"]);
if(empty($password))
return false;
}
$hasher = new PasswordHash(8, false);
if (strlen($password) > 72)
return false;
else{
if($dbpassword){
$check = $hasher->CheckPassword($password, $dbpassword);
if ($check)
return true;
else
return false;
}else{
$hash = $hasher->HashPassword($password);
if (strlen($hash) >= 20)
return $hash;
else
return false;
}
}
}
и в другом файле (с включением в функции и PHP-файл PHPASS) у меня есть этот код:
$pass = password("Vlad");
if(password("Vlad", $pass)){
echo 11;
}else{
echo 22;
}
Возвращает 22. Почему это?
1 ответ
Когда вы звоните password
функция со второй переменной, которая не NULL
, он вернется false
если только POST
или же GET
переменная устанавливается при вызове вашей страницы.
Название этого POST
или же GET
переменная должна быть хэшем пароля пароля, который вы хэшировали в первый раз, когда вы использовали свою функцию, когда используете:
$_POST["$dbpassword"]
или же
$_GET["$dbpassword"]
Я сомневаюсь, что имя поля формы в вашей форме постоянно меняется, что объясняет, почему функция всегда возвращает false
во второй раз ты это называешь.