【发布时间】:2011-01-15 00:19:58
【问题描述】:
我有一个搜索页面,它获取您搜索的内容(通过 POST),然后将其插入表格中。我让它通过电子邮件将查询发送给我,这样我就可以看到发生了什么:
获取变量的我的 PHP:
$searched = mysql_real_escape_string($_POST['searched']);
使用它的查询(通过电子邮件发送给我):
INSERT INTO conversations (viID, moID, viTyping, moTyping, priority, status, open, mOpen, lastMsgID, searched) VALUES (435, 0, 0, 0, 0, 0, 1, 1, 0, "
这是组装查询的代码:
$query = "INSERT INTO conversations (viID, moID, viTyping, moTyping, priority, status, open, mOpen, lastMsgID, searched) VALUES ($userID, 0, 0, 0, 0, 0, 1, 1, 0, \"$searched\")";
每当页面从 IE 运行时,这会将记录插入数据库中就可以了。任何其他浏览器都省略了“question8”部分(它仍然插入一条记录),即使查询完全相同!我可以在 phpMyAdmin 中剪切和粘贴查询,它运行得很好。
为什么这只适用于 IE?其他浏览器是否插入了一些我看不到的特殊字符?我迷路了!
【问题讨论】:
-
我们能看到组装查询的代码吗?
-
浏览器应该是无关紧要的(除非它与 $_POST 变量有关),因为它都是服务器端的 - 请您发布出现在您的 PHP 文件中的代码吗?
-
转储
$_POST的内容,看看里面有什么。确保你也逃避你的查询。