2

我知道这已经被问了很多,但我似乎无法为我找到正确的答案。在 PHPMyAdmin 中,用户名“user”和密码“test”存在——但由于某种原因,它一直说不存在。代码的输出是:

成功连接到数据库邮箱:*user* 密码:*test* 用户名和密码不匹配

这是代码:

$con = new mysqli('somewhere.com','admin','*****','nameofdb');
    if($con->connect_errno > 0){
        die('Unable to connect to database [' . $con->connect_error . ']');
    }
    else{
        echo "Successfully connected to DB ";
    }
$email = mysqli_real_escape_string($con, $_POST['eml']);
       $password = mysqli_real_escape_string($con, $_POST['pwd']);
       //$encrPassword = md5($password);


       $login = $con->query("SELECT * 
                            FROM logininfo 
                            WHERE email = $email
                            AND password = $password");
       if($login == FALSE){
            echo " email:*$email* ";
            echo " password:*$password* ";
            //echo " password:*$encrPassword* ";

            echo "Username and Password does not Match";
       }
       else {
            echo "Hey this works";
       //Check if user is logged in, if not then redirect.     
            /*session_start();
            if($_SESSION['loggedin'] == FALSE){
                $_SESSION['loggedin'] = TRUE;
                $_SESSION['username'] = $username;
            }*/
            header("Location: ../browse/index.php");
       }
        mysqli_close($con);
4

3 回答 3

0

查询有错误,如果您回显查询并在 mysql 上对其进行测试,可能会更容易调试,您可以执行以下操作:

$query = "SELECT * 
          FROM logininfo 
          WHERE email = $email
          AND password = $password";
echo $query;

祝你好运!

于 2013-07-20T21:27:20.780 回答
0

查询变量是否必须有引号?

SELECT * FROM sometable WHERE somecol='$someVar' AND someothercol='$someothervar';

于 2013-07-20T21:36:51.443 回答
0

两个简单的步骤 1..在 phpmyadmin 中检查您的数据库,这些用户名和密码是否与您输入的用户名或密码匹配。如果是回显查询以了解内部查询的内容。2..如果是,请确保您是否在注册时使用 md5 加密,如果您正在使用,则在登录时解密,如

$password=md5($password);
于 2013-07-20T21:41:19.853 回答