为什么我不能正确登录

时间:2018-12-29 21:45:55

标签: php mysql sql login

我已经注册了表格,一切顺利。 现在,我正在尝试登录,但没有成功。

log1.html

    <!DOCTYPE html>
<html>
<head>
<title>RegPage</title>
</head>
<body>

<form action ="log2.php" method="post">
email: <input type="text" name ="email">
<br/>
password: <input type="password" name="password">

<input type = "submit" value = "insert">

</form>

</body>
</html>

log2.php

    <?php
$servername = "localhost";
$username = "root";  
$password = "";  
$databasename = "pilot"; 

$conn = new mysqli($servername, $username, $password,$databasename);
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 
echo "Connected successfully";

$email=$_POST['email'];
$password=$_POST['password'];

$comparepass="SELECT password FROM dbinvestor where email=@email";

if ($comparepass==$password)
{
  echo 'logged in !';
}
else
{
    echo '      oops';
}

header ("refresh:10;url=log1.html");

?>

数据库: DB image

无论我在文本框中插入什么,输出始终是:

  

连接成功哦

如果密码和电子邮件正确,为什么也总是“转到”其他地方?

2 个答案:

答案 0 :(得分:0)

您正在定义SQL查询,但实际上并未针对数据库运行它...

$comparepass="SELECT password FROM dbinvestor where email=@email";

if ($comparepass==$password)
{
    echo 'logged in !';
}

您需要执行查询并获取结果以将其与发布的值进行比较。这是一些代码,演示了如何使用绑定参数进行操作(免责声明:您似乎在数据库中存储了明确的密码...只是没有)。

$sql="SELECT 1 FROM dbinvestor where email=? and password=?";

$stmt = $conn->prepare($sql);
$stmt->bind_param("ss", $email, $password);
$stmt->execute();
$result = $stmt->get_result();
if (!$result) {
    echo 'error: ' . $conn->errno . ' - ' . $conn->error)
} else {
    if ($result->num_rows == 1) {
        echo 'logged in !';
    } else {
        echo '      oops';
    }
}

答案 1 :(得分:0)

您可以尝试以下方法:

$comparepass="SELECT * FROM dbinvestor where email='$email' and password='$password'";
$compare_exe=$this->conn()->query($comparepass);  //use your db link
$num_rows=$compare_exe->num_rows;  //get row counter, if exist will return 1 else 0
if($num_rows>0){
echo 'logged in !';
}else{
echo 'opps';

}