美好的一天。
所以下面我有一个php
脚本,它应该查询我的数据库并查找用户详细信息。 db已设置并且数据可用。这里的问题似乎是,当我点击提交按钮并输入我的用户输入的详细信息时,它会在第一个if语句上失败,以查看电子邮件是否存在。我不知道为什么。
但这是提交表格。
<form action = "submit2.php" method="Post" >
<div class="row form-group">
<div class="col-md-12">
<!-- <label for="email">Email</label> -->
<input type="text" id="email" name="email" class="form-control" placeholder="Your user name">
</div>
</div>
<div class="row form-group">
<div class="col-md-12">
<!-- <label for="subject">Subject</label> -->
<input type="text" id="password" name="password" class="form-control" placeholder="Your Password">
</div>
</div>
<div class="form-group">
<input type="submit" value="Login" class="btn btn-primary">
</div></form>
这里是submit2.php,它应该操作表单中的数据并查询数据库。
<?php
session_start();
require_once('connect.php');
if(isset($_POST) & !empty($_POST)){
$useremail = mysqli_real_escape_string($connection,$_POST['email']);
$userpassword = mysqli_real_escape_string($connection, $_POST['password']);
if (empty($useremail) || empty($userpassword)){
header("Location: customerportal.php?login=empty");
exit();
}
else{
$sql = "SELECT * FROM 'USERS' where EMAIL ='$useremail';";
$emailresult = mysqli_query($connection, $sql);
$emailresultcheck = mysqli_num_rows($emailresult);
//check if email exists
if($emailresultcheck == 0){
header("Location: customerportal.php?login=invalidEmail");
}
else {
if($row = mysqli_fetch_assoc($emailresult)){
//dehash the password
$hashedPWDCheck = password_verify($userpassword,$row['ENCRYPTEDPWD']);
if($hashedPWDCheck == false){
header("Location: customerportal.php?login=passwordincorrect");
exit();
}
elseif($hashedPWDCheck == true){
$_SESSION['email'] = $email;
// header("Location: Landingpage.php");
echo "Success";
}
}
else{
header("Location: customerportal.php?login=invalid");
exit();
}
}
}
}
?>
提交总是失败else语句并返回invalidEmail标头位置,我不知道为什么。连接文件在下面。我错过了什么?
<?php
$connection = mysqli_connect("localhost", "root", "");
if(!$connection){
echo "Failed to connect database" . die(mysqli_error($connection));;
}
$dbselect = mysqli_select_db($connection, "dhctest");
if(!$dbselect){
echo "Failed to Select database" . die(mysqli_error($connection));
}
?>
答案 0 :(得分:0)
更改此
$sql = "SELECT * FROM 'USERS' where EMAIL = '$useremail';";
到这个
$sql = "select * from users where email = $useremail";
答案 1 :(得分:0)
好的,通过在我的每个变量上运行var_dump()直到遇到我的sql代码输出的错误,解决了这个问题。 在线
$sql = "SELECT * FROM 'USERS' where EMAIL = '$useremail';";
我不得不删除&#39;&#39;并用``替换。 这似乎解决了这个问题。
感谢所有协助的人。