【发布时间】:2013-08-05 17:49:52
【问题描述】:
在我的页面上,当我向服务器输入数据时,它会自动在 ' 和 " 之前添加反斜杠。 我猜是因为mysql_real_escape_string,由于某种原因,它只在我的远程服务器上添加了backstrings,而在localhost上它没有添加它们。 主要问题是我稍后显示输入的值,这会导致两个问题: 1. 反斜杠使文字不可读,眼睛不舒服。 2.它删除了部分数据,因为它限制为140个字符。 我能做些什么来阻止他们? 我的代码:
$city = mysql_real_escape_string($_POST['city']);
//here preaty regular insert query.
查询后,输入的数据以反斜杠插入到数据库中。 然后在另一个页面上:
//get data from DB
echo $city;
像这样去掉斜线:
echo stripslashes($city);
无济于事,因为它不能解决问题 #2 任何帮助和想法都会得到满足。
编辑:如果我有下面描述的magic_quotes模式,是否意味着我不必使用mysql_real_escape_string?
【问题讨论】:
-
检查magic_quotes php.net/manual/en/security.magicquotes.php
-
好吧,可能是这样,问题是我无权访问我的站点所在服务器上的配置文件。如果我从查询中手动删除反斜杠,escape_string 是否仍然存在问题?
-
插入数据库的数据是不是带反斜杠?
-
不。我想它确实取消了 escape_string 的全部目的
-
数据不应该在数据库中有反斜杠