我已经注册了表格,一切顺利。 现在,我正在尝试登录,但没有成功。
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
无论我在文本框中插入什么,输出始终是:
连接成功哦
如果密码和电子邮件正确,为什么也总是“转到”其他地方?
答案 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';
}