使用php和MYSQL验证特定用户名的电子邮件

时间:2017-02-11 07:01:18

标签: php mysqli

所以,我试图根据数据库验证用户在html表单中输入的用户名和电子邮件是否正确

我有一个名为testing的数据库和一个名为info的表,它有两个字段:  姓名和电子邮件。

这是代码

<html>
<body>

<form action="conn.php" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>   
<input type="submit">
</form>

</body>
</html>


    <?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname="testing";
$name=$_POST['name'];
$mail=$_POST['email'];
// Create connection
$conn1 = new mysqli($servername, $username, $password, $dbname);
$query='select email from info where name= "$name"';
$results = mysqli_query($conn1,$query);
$row= mysqli_fetch_assoc($results);
echo $row["email"];
$email=$row["email"];
if($mail==$email){
    echo " correct values";
} 
else 
    echo " incorrect";
//echo $name, $email;
// Check connection
//if ($conn1->connect_error) {
//    die("Connection failed: " . $conn1->connect_error);
//} 
//echo "Connected successfully";
$conn1->close();
?>

但结果总是不正确。我在文本框中输入的值与数据库中的值匹配。

3 个答案:

答案 0 :(得分:1)

minnor问题是单引号/双引号。更新此行

$query='select email from info where name= "$name"'; 

$query="select email from info where name= '$name'"; 

问候:)

答案 1 :(得分:0)

你应该使用占位符,代码将是这样的:

$query = 'SELECT emal FROM info WHERE name = ?'; 
$stmt  = mysqli_stmt_prepare($conn1, $query);
mysqli_stmt_bind_params($stmt, 's', $name);
$results = mysqli_stmt_execute($stmt);`

为了更好的可读代码,请阅读面向对象的mysqli接口,或者更好地使用PDO。

答案 2 :(得分:0)

或者你可以使用像

这样的字符串连接

更新此行

$query='select email from info where name= "$name"'; 

$query='select email from info where name= "'.$name.'" '; 

$query="select email from info where name= '".$name."' ";