在mysql_real_escape_string之后使用stripslashes

时间:2012-07-02 13:55:19

标签: php mysql

我必须在表单上转义一些输入。我使用mysql_real_escape_string来转义值但它在数据库中添加了很多带有值的斜杠,原因是我的输入中有一个撇号让我们说exp。

现在要删除斜杠,我在mysql_real_escape_string之后使用stripslashes,然后数据成功进入数据库,并且在数据库中看不到任何带有值的撇号。

$name = mysql_real_escape_string(trim($_POST['userame']));
$name = stripslashes(stripslashes($userame));

//然后数据成功进入db而没有撇号

我只是想确认一下,这是逃避输入值的正确方法吗?感谢

大研

3 个答案:

答案 0 :(得分:3)

  1. Disabling Magic Quotes
  2. mysql_real_escape_string(stripslashes($_POST['username']));

答案 1 :(得分:2)

不,不是。检查php.ini中的magic_quotes_gpc设置。如果您无法禁用它,请在使用mysql_real_escape_string之前使用stripslashes。该链接有一种方法可以从$_POST$_GET$_COOKIE全局删除它。或者甚至更好,将prepared statementsPDO

一起使用

答案 2 :(得分:0)

如果你启用了magic_quotes_gpc,你应该在转义之前使用stripslashes()函数 - 否则你将逃脱两次,从而加载斜杠。

http://se.php.net/manual/en/function.mysql-real-escape-string.php