什么是"资源#"?

Lig*_*ist 0 php mysql passwords variables hash

您好

当我打印以下变量时,我得到资源#6和资源#7:

$salty_password = sha1($row['salt'], $_POST['password']);

if(isset($_POST['subSignIn']) && !empty($_POST['email']) && !empty($_POST['password'])) {


    $query =  "SELECT `salt` FROM `cysticUsers` WHERE `Email` = '" . $_POST['email'] . "'";
    $request = mysql_query($query,$connection) or die(mysql_error());
    $result = mysql_fetch_array($request);



    $query2 = "SELECT * FROM `cysticUsers` WHERE `Email` = '". $_POST['email']."' AND `Password` = '$salty_password'";
    $request2 = mysql_query($query2,$connection) or die(mysql_error());
    $result = mysql_fetch_array($request2);

    print_r($request);
    print_r($request2);

if(@mysql_num_rows($request,$request2)) {


        $_SESSION['CLIFE']['AUTH'] = true;
        $_SESSION['CLIFE']['ID'] = $result['id'];

        // UPDATE LAST ACTIVITY FOR USER
        $query = "UPDATE `cysticUsers` SET `LastActivity` = '" . date("Y-m-d") . " " . date("g:i:s") . "' WHERE `id` = '" . mysql_real_escape_string($_SESSION['CLIFE']['ID']) . "' LIMIT 1";
        mysql_query($query,$connection);


        if(!empty($_POST['return'])) {
            header("Location: " . $_POST['return']);

        }else{
            header("Location: CysticLife-Dashboard.php?id=" . $_SESSION['CLIFE']['ID']);
            }
        }

    }else{

        $_SESSION['CLIFE']['AUTH'] = false;
        $_SESSION['CLIFE']['ID'] = false;

    }


?>
Run Code Online (Sandbox Code Playgroud)

尝试对此代码块进行故障排除,但不确定这意味着什么.我正在尝试使用我在哈希和盐腌后注册的明文密码重新登录.我觉得我非常接近,但有点不对劲.关于为什么不起作用的帮助也将不胜感激.

提前致谢

Bol*_*ock 5

mysql_query()将结果集作为类型的对象返回resource(它们不是PHP OOP代码中的对象,但我想不出更好的单词).它们包含只能由某些函数读取的二进制数据,例如mysql_fetch_*()函数.

要调试你的MySQL查询,你应该检查使用的错误mysql_error()mysql_errno()和/或保存您的SQL语句中的变量和打印这些.

从我看到的,你执行两个查询但覆盖相同的$result变量,而不做任何关于第一个的任何事情.此外,mysql_num_rows()一次只能计算一个结果集,因此您无法将两个结果集传递到同一个调用中.

  • Zend Engine中的+1 A*资源*是C指针.来自[devzone.zend.com](http://devzone.zend.com/article/1024)文章:*"虽然PHP zval可以表示各种内部数据类型,但是一种无法表示的数据类型完全在脚本中是指针.[...]也没有办法使用传统的运算符对它们进行有意义的操作.这个问题的解决方案是简单地通过一个基本上任意的标签来引用指针,称为资源."* (2认同)