我编写了一个PHP脚本来处理用户登录。为了防止SQL注入攻击,我使用了'mysql_real_escape_string‘函数。直到今天一切都很顺利。我跟踪了代码并发现了问题;这一行使用了'mysql_real_escape_string‘。我将其改为基本命令如下:
$username=mysql_real_escape_string('sample');
var_dump($username)
产出如下:
bool(false)
在我的本地web服务器(WAMP)上一切都很好,但是在远程主机上出现了问题!怎么啦?(主机PHP为5.4.12)
发布于 2013-11-10 11:03:06
根据http://php.net/manual/en/function.mysql-real-escape-string.php
返回转义字符串,或错误时返回FALSE。
它在错误时返回假;
将以下行添加到文件的开头:
error_reporting(E_ALL);
这样您就可以查看错误。
在根据mysql_real_escape_string('sample')
中的第一个错误使用函数http://us1.php.net/mysql-real-escape-string Thats之前,您可能忘记了建立mysql连接。
在使用MySQL ()之前需要一个mysql_real_escape_string连接,否则会生成级别E_WARNING的错误,并返回FALSE。
您应该知道有更好的方法来防止sql注入,您可以在这里查看:如何防止PHP中的SQL注入?。
发布于 2013-11-10 11:03:28
返回转义字符串,或错误时返回FALSE。
文档
我不能确切地告诉你错误是什么,但几乎可以肯定的是:
注: 在使用MySQL之前需要一个
mysql_real_escape_string()
连接,否则会生成级别E_WARNING
的错误,并返回FALSE
。如果未定义link_identifier
,则使用最后一个MySQL连接。
https://stackoverflow.com/questions/19888928
复制相似问题