我必须在表单上转义一些输入。我使用mysql_real_escape_string来转义值但它在数据库中添加了很多带有值的斜杠,原因是我的输入中有一个撇号让我们说exp。
现在要删除斜杠,我在mysql_real_escape_string之后使用stripslashes,然后数据成功进入数据库,并且在数据库中看不到任何带有值的撇号。
$name = mysql_real_escape_string(trim($_POST['userame']));
$name = stripslashes(stripslashes($userame));
//然后数据成功进入db而没有撇号
我只是想确认一下,这是逃避输入值的正确方法吗?感谢
大研
答案 0 :(得分:3)
mysql_real_escape_string(stripslashes($_POST['username']));
答案 1 :(得分:2)
不,不是。检查php.ini中的magic_quotes_gpc
设置。如果您无法禁用它,请在使用mysql_real_escape_string
之前使用stripslashes。该链接有一种方法可以从$_POST
,$_GET
和$_COOKIE
全局删除它。或者甚至更好,将prepared statements与PDO
答案 2 :(得分:0)
如果你启用了magic_quotes_gpc,你应该在转义之前使用stripslashes()函数 - 否则你将逃脱两次,从而加载斜杠。
http://se.php.net/manual/en/function.mysql-real-escape-string.php