我有以下代码:
$salt=uniqid(mt_rand(), false);
#Add data to tables
mysql_query("INSERT INTO accounts VALUES('$user', '".hash('sha512',$pass+$salt)."', '$salt', '$cookie_value')");
mysql_query("INSERT INTO passwordreset VALUES('$user', NULL, NULL)");
#cookie creation
#.....
#cookie update
mysql_query("UPDATE accounts SET cookie='$cookie_value' WHERE user='$user'");
我使用这些函数清理表单中的数据:
$var = htmlentities($var, ENT_QUOTES, "UTF-8");
return mysql_real_escape_string($var);
今天我登录到 phpMyAdmin,我看到所有用户的密码和 salts 都是相同的。 不要提醒我关于已弃用的 mysql_* 我知道,那只是草稿。
最佳答案
PHP 中的字符串连接使用 .
而不是 +
。因此:
hash('sha512',$pass+$salt)
应该是
hash('sha512',$pass.$salt) // or
hash('sha512',"${pass}${salt}")
关于php - INSERT INTO 后出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11774854/