登录php脚本无法从db调用信息

时间:2018-05-24 05:34:28

标签: php

美好的一天。 所以下面我有一个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));
}
?>

2 个答案:

答案 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;并用``替换。 这似乎解决了这个问题。

感谢所有协助的人。