Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP 5.5密码\u从数据库提取数据时验证不起作用_Php_Mysql_Database_Passwords_Verify - Fatal编程技术网

PHP 5.5密码\u从数据库提取数据时验证不起作用

PHP 5.5密码\u从数据库提取数据时验证不起作用,php,mysql,database,passwords,verify,Php,Mysql,Database,Passwords,Verify,我打算使用password\u hash和password\u verify函数安全存储密码 当我使用下面的一个。行得通 $hash = password_hash('test',PASSWORD_DEFAULT); $state= password_verify('test',$hash); if($state){ echo "OK"; } else{ echo "No!"; } 但当我尝试将密码写入数据库并从中获取密码时。它不起作用 $Pass= password_ha

我打算使用
password\u hash
password\u verify
函数安全存储密码

当我使用下面的一个。行得通

$hash = password_hash('test',PASSWORD_DEFAULT); 
$state= password_verify('test',$hash);

if($state){
    echo "OK";
}
else{
    echo "No!";
}
但当我尝试将密码写入数据库并从中获取密码时。它不起作用

$Pass= password_hash($pass,PASSWORD_DEFAULT);
$query= "INSERT INTO user(email, password) VALUES('$Email','$Pass')";
mysqli_query($link,$query);

$query= "SELECT password FROM user WHERE email='example@example.com'";
if($result=mysqli_query($link,$query)){
         $Array=mysqli_fetch_array($result);
         $isComplete=password_verify($pass,$Array[1]);  
         if($isComplete){
              echo "OK!"
         }else{
              echo "Not OK!";
         }
}
那是我的专栏


密码在
$Array[0]
中,而不是
$Array[1]


但是,您肯定应该使用来保护您的应用程序免受潜在的SQL注入攻击

请发布从数据库检索密码的代码,tooI添加了数据库代码感谢@dimlucas的贡献,但问题不在于此。我打印了数组[1],密码在里面。然后尝试将数据库的排序规则更改为“utf8\u general\u ci”