我正在使用的部分代码是:
$password = MD5($password);
$account_created = date("Y-m-d H-i-s");
db_insert("users","user_id,username,password,account_created,registration_ip","ENCRYPT('$_POST[username] $account_created'),'$_POST[username]',MD5('$_POST[password]'),'$account_created','$_SERVER[REMOTE_ADDR]'");
$user = db_get_array("users","username='$_POST[username]'");
db_insert("usersettings","user_id,timezone","'$user[user_id]','$_POST[timezone]'");
db_update("users","login_id = ENCRYPT('$user[username] $password')","user_id='$user[user_id]'");
脚本在
之前和之后继续无论如何,我遇到的问题是,在MySQL查询中有两次调用ENCRYPT(),但由于某些原因,它们都具有相同的值
用户ID和登录ID是不同的,这是什么问题?
答案 0 :(得分:3)
ENCRYPT()忽略除第一个之外的所有内容 str的八个字符,至少在 一些系统。这种行为是 由执行决定 底层的crypt()系统调用。
http://dev.mysql.com/doc/refman/5.1/en/encryption-functions.html#function_encrypt
因此,如果您的用户名超过8个字符......