Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.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中从mysql查询中获取用户id_Php_Mysql - Fatal编程技术网

在PHP中从mysql查询中获取用户id

在PHP中从mysql查询中获取用户id,php,mysql,Php,Mysql,我正在一个网站上工作,我想从这个查询中获取用户id并将其分配给一个变量,以便在会话变量中设置它 但它不起作用 这是密码 $sql="Select user_id,username,password,access_id from temp_users where `username`='$email' and `password`='$password' and `access_id`='2' and 'status'='approved'"; $res=m

我正在一个网站上工作,我想从这个查询中获取用户id并将其分配给一个变量,以便在会话变量中设置它

但它不起作用

这是密码

            $sql="Select user_id,username,password,access_id from temp_users where `username`='$email' and `password`='$password' and `access_id`='2' and 'status'='approved'";
        $res=mysql_query($sql) or die(mysql_error());

        if($sql!='0'){
          //$_SESSION['username']=$email;
          while($row=mysql_fetch_array($res)){
            $_SESSION['user_id']=$row[0];
            echo $_SESSION['user_id'];
            exit;
        }
             header("Location:userpanel2.php");
        }
        else{
         echo 'Query has some problem';
        }

    }

}
else{
    echo 'Signin not set';
}

您的sql查询中有一个错误。不是“状态”,而是
status

$sql="Select user_id,username,password,access_id from temp_users where `username`='$email' and `password`='$password' and `access_id`='2' and `status`='approved'";

主要的问题在于这种状况

if($sql!='0'){
应该是这样的:

if($res && mysql_num_rows($res)>0){
但正如人们所评论的,$sql查询应该通过使用mysql\u real\u escape\u字符串得到更好的保护


status=approved的“和”之间还有一个重大错误

您真的应该散列您的密码。当你这么做的时候,试着防止XSS漏洞。什么不起作用?在msysql shell中执行查询时,查询返回什么?将
if($sql!=“0”){
替换为
if($res){
查看我的答案,您的sql查询有错误…您的代码易于sql注入,因此不安全..它们不再被维护。请参阅?改为了解,并使用或-将帮助您决定哪个。如果您选择PDO,。这不是小错误,但主要错误:)其他是建议,也必须这样做。谢谢每个人都希望得到你的答案和建议MD5/SHA1不适合密码加密。你应该使用Blowfish。这只是建议,不是OPs问题的重点。对,但你不应该给出错误的建议。MD5和SHA1不再合适了。任何人只要有一张像样的显卡,就可以制作一张彩虹表来破解MD5/SHA1。-1建议。即使你的答案解决了OP的问题,建议MD5或SHA1或任何非加密安全哈希机制都是不负责任和危险的。@DanLugg我认为这个问题是关于为什么登录查询不起作用的。Legionar正确地回答了这个问题,那么为什么要进行否决?建议使用正确的工具只是副作用,虽然受到欢迎,但不是强制性的。但是,由于h20000000也有评论,为什么要重复相同的多次?你应该建议使用什么样的哈希算法,而不是你的负面评论。