微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php哈希函数检查数据库

如何解决php哈希函数检查数据库

| 将新用户插入数据库时​​,我想对密码进行哈希处理。这就是我所拥有的。
    static function getLastId(){
        global $database; 
        $sql = \'SELECT ID from users ORDER BY id DESC LIMIT 1\' ;
        $result = $database->query($sql);           
        return $result; 
    }


static function create_user($username,$password ){
    global $database;
    $lastID =  self::getLastId() + 1;       
    $ePassword = $database->escape_value($password);
    $hash = hash(\'sha256\',$lastID . $ePassword);
    $sql = \"INSERT INTO \". self::$table_name . \" (username,password,first_name,last_name,power ) VALUES \";
    $sql .= \"(\'{$database->escape_value($username)}\',\'{$hash}\',\'asd\',\'user\') \";
    $query = $database->query($sql);
    return ($query)? true : false; 
}
当我执行$ lastID的打印或var转储时,我得到13。但是在数据库中,我只有1个用户,ID为1。我什至截断了表格,但我仍然得到13。不确定为什么。 基本上,我的想法是我想将$ lastID附加到密码上,因此更难以撤销。为了登录目的,我需要知道下一个ID是什么。     

解决方法

        
$result = $database->query($sql);           
return $result; 
您正在返回结果资源而不是实际数据(我想是这样,除非$ database模块自动执行此操作),您可能需要:
$result = $database->query($sql);    
$data = mysql_fetch_array($result);
return $data[\'ID\']; 
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。