【发布时间】:2023-03-27 05:18:01
【问题描述】:
我已经使用 php 和 mysql 构建了一个搜索引擎。
问题: 当我提交一个带有撇号的单词并使用 $_GET 将值返回到文本字段时,撇号已被反斜杠替换,并且撇号后面的所有字符都丢失了。
示例:
提交词:Just can't get enough
返回值(使用 $_GET):Just can\
网址也像这样出现:search=just+can%27t+get+enough
如您所见,' 已被替换为 \ 并且 get enough 丢失了。
问题: 有谁知道导致这种情况发生的原因以及解决此问题的解决方案是什么?
【问题讨论】:
-
表格中是否正确?如果没有,也许您在保存数据时没有转义它。 Apos 必须加倍,例如 update ... set col1 = 'I don't know' ...
-
您能展示更多代码示例吗?这不会发生在我身上。
-
尝试在 get 上运行 urldecode,然后运行 mysql_real_escape_string(以确保数据库使用安全)。不知道这是否是问题,但值得一试。就像 MGwynne 说的,当你访问 get 变量时不应该发生这种情况,但是当你将它添加到数据库时可能会发生这种情况
标签: php mysql search-engine