0

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

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

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

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

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

大研

4

3 回答 3

4
  1. 禁用魔术行情
  2. mysql_real_escape_string(stripslashes($_POST['username']));
于 2012-07-02T14:01:33.403 回答
2

不,这不对。检查您的 php.ini 中的magic_quotes_gpc设置。如果您无法禁用它,请在使用mysql_real_escape_string. 该链接有一种方法可以将其从和$_POST全局剥离。或者更好的是,使用带有PDO的准备好的语句$_GET$_COOKIE

于 2012-07-02T14:01:06.193 回答
0

如果你启用了magic_quotes_gpc,你应该在转义之前使用stripslashes() 函数——否则你会转义两次,因此会出现大量斜线。

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

于 2012-07-02T14:04:30.983 回答