我是一个绝对的初学者和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;