Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP脚本报告错误的凭据_Php_Mysql - Fatal编程技术网

PHP脚本报告错误的凭据

PHP脚本报告错误的凭据,php,mysql,Php,Mysql,好的,这是我的身份验证代码。现在,除了这个,我有一个表和5个PHP工作脚本。成功登录后,用户应该被重定向到他的主页,但问题是,无论登录细节如何,PHP都会回显“无法登录”错误消息。下面是脚本: session_start(); include_once'dbconnect.php'; if (isset($_SESSION['user']) != "") { header ("Location: home.php"); } if (isset($_P

好的,这是我的身份验证代码。现在,除了这个,我有一个表和5个PHP工作脚本。成功登录后,用户应该被重定向到他的主页,但问题是,无论登录细节如何,PHP都会回显“无法登录”错误消息。下面是脚本:

session_start();
include_once'dbconnect.php';
    if (isset($_SESSION['user']) != "") {
        header ("Location: home.php");  
    }

    if (isset($_POST['login'])) {
        $email = mysql_real_escape_string($_POST['email']);
        $pass = mysql_real_escape_string($_POST['pass']);
        $sql = mysql_query("SELECT * FROM users WHERE email='".$email."'");
        $num = mysql_fetch_assoc($sql);

            if ($num['password'] == $pass)) {
                $_SESSION['user'] = $num['user_id'];
                header ("Location: home.php");
            }
                else {
                    echo "Cannot login";
                }
    }
有什么提示吗?多谢各位

session_start();
include_once'dbconnect.php';
    if (isset($_SESSION['user']) != "") {
        header ("Location: home.php");  
    }

    if (isset($_POST['login'])) {
        $email = mysql_real_escape_string($_POST['email']);
        $pass = mysql_real_escape_string($_POST['pass']);
        $sql = mysql_query("SELECT * FROM users WHERE email='".$email."'");
        $num = mysql_fetch_assoc($sql);
        if(count($num)>0){
            if ($num['password'] == $pass)) {
                $_SESSION['user'] = $num['user_id'];
                header ("Location: home.php");
            }
                else {
                    echo "Cannot login";
                }
        }else{
          echo "Cannot login, email id not found";
        }

    }
确保您正在从数据库获取密码

1.I think Your password encrypted in db.

2.Check it out it may be md5,sha etc.

3.If yes. Change Like this

 if ($num['password'] == md5($pass)){
     .
     .
     .
     .
 }

希望它有帮助。

尝试添加一个
var\u转储($num)
在最后一个
if
之前,并显示结果请将转义密码与从数据库中检索到的不会转义的值进行比较。您应该在将数据存储到数据库之前立即转义数据,并且在任何情况下,您都不应该以纯文本形式存储密码。结果如下:数组(4){[“用户id”]=>string(2)“20”[“用户名”]=>string(4)“pkom”[“电子邮件”]=>string(22)”something@gmail.com“[“密码”]=>字符串(4)“hzvt”}确定,你能告诉我们这个
var_转储的结果吗(数组($num['password'],$\u POST['pass'],($num['password']=$\u POST['pass']))在最后一个
之前如果
,请?数组(3){[0]=>string(4)“hzvt”[1]=>string(4)“hzvt”[2]=>bool(true)}echo$num['password'.“|”$pass;在计数($num)后插入此项。验证两个密码是否相同。\n是的,md5是一个问题。谢谢回复,但现在我在登录后重定向主页时遇到了问题