verify_password函数无效?

时间:2017-12-01 12:11:11

标签: php mysql

我是一个绝对的初学者和php,我正在用php和mysql制作我的第一个登录页面。目前我并不担心mysql注入,因为我还在学习,但是当我最终确定时,我会把我真正的转义字符串放进去。

我想知道为什么,无论我放什么,密码都会以不正确的密码返回。此时我正在尝试测试在开始编写会话之前是否可以获得正确的密码。

当我在数据库中创建密码时,我使用md5来加密密码,我不确定这是否有所作为。但我觉得它可能会影响验证密码功能。请看下面的代码。

我在3周前开始进行网络开发,所以请原谅我基本的琐碎凌乱的代码编写!我可能会把很多它放到一个函数php中,所以我可以在功能正确后再参考函数!

我特别感兴趣的是为什么password_verify不起作用!因为ifs或类型或者错误使用中的杂乱,它会继续返回,因为它不正确。请让我知道您的意见:))



<?php
include 'dbconnect.php';
$emailerror = $passworderror;
if(isset($_POST['submit']))
{
    

    $email= $_POST["email"];
    $password= $_POST["password"];
  
    if (empty($email)) {
    $emailerror = "*Email must be entered";
    }

    elseif (!filter_var($email, FILTER_VALIDATE_EMAIL))
    {   
    $emailerror= "*Invalid email address Entered";    
    }
    
 // check if email exists
    else{         
        $emailquery = ("SELECT * FROM `Potential_Employee` WHERE `Email` = '$email'");
        $emailcheckresult = mysqli_query($connection, $emailquery);
        
         
            if(mysqli_num_rows($emailcheckresult) == 1){            
            $row=mysqli_fetch_assoc($emailcheckresult);
            
                 if (password_verify($password, $row['Password'])){
                     $passworderror = "*Password is correct";
                 }
                 else{
                      $passworderror = "Password is Incorrect";
                 }

                 }
            else{
                 $emailerror = "*Email does not exist";
        }
        
      }
                 
    if (empty($password)) {
    $passworderror = "*Password must be entered";
    }
    
    elseif (strlen($password) < 4 )
    {
        $passworderror= "*Password Has to be greater than 8 Characters";
    }
    
    ?>
&#13;
&#13;
&#13;

0 个答案:

没有答案