目前我得到了这个:
$password = mysql_real_escape_string($_POST['password']);
然后我用这个检查密码:
$password_q = mysql_query ("SELECT password FROM ppl WHERE email='$email'");
$password_result = mysql_result ($password_q, 0);
if (!password_verify($password, $password_result)) {
$error = 'Wrong password.'; } else {
有没有必要在这里使用mysql_real_escape_string,还是应该将其删除? 这是代码中唯一使用$ password变量的地方。
我应该提到我使用旧的MySQL API。
答案 0 :(得分:0)
没有必要,因为您(希望)没有将密码传递给您的MySQL请求,因为mysql_real_escape_string
是为了从SQL请求参数中转义特殊字符。
mysql_real_escape_string - 转义字符串中的特殊字符以用于SQL语句
答案 1 :(得分:0)
由于密码不通过MySQL传递,因此您无需转义它。
转义用于防止SQL注入。由于它是在查询之前完成的,因此不会进行SQL注入。
mysqli_real_escape_string()
此函数用于创建可在SQL语句中使用的合法SQL字符串。给定的字符串被编码为转义的SQL字符串,并考虑了连接的当前字符集。