【发布时间】:2013-08-20 14:31:16
【问题描述】:
无意中发现,每当搜索结束时有反斜杠,点击提交后的页面就会返回一个损坏的搜索表单。
在我的例子中,提交按钮变成了一个文本区域。
使用谷歌浏览器的“检查元素”,我看到我的搜索表单变成了这样:
<form method="get" action="">
<input type="hidden" name="type" value="books">
<input type="text" name="search" value="\"> <input type=">
</form>
</div></div></div><div id=" sidebar"="" class="sidebar widget-area"></form>
以下代码是我的表单。我猜我需要清理/转义输入类型文本中的值?但是为什么esc_attr() 不工作?
<form action="" method="get">
<input type="text" name="search" value="<?php echo esc_attr(stripslashes($_GET['search'])); ?>">
<input type="submit" value="Search">
<input type="checkbox" name="title">
</form>
附:我正在使用此自定义搜索表单来搜索自定义字段并使用 Pods 插件显示生成的自定义帖子类型。不过,这似乎不是 Pods 插件问题。
https://github.com/pods-framework/pods/issues/1620
此外,这似乎与其他主题或插件没有冲突。
【问题讨论】:
-
当您的数据被发送到您的处理脚本时,您需要对其进行转义。当您单击“搜索”时,向我们展示(在服务器端)调用的脚本。
-
我将搜索表单与 pods 插件一起使用。数据由它处理,他们坚持认为它被转义了。他们说这可能是一个 wordpress 错误。请参阅我的操作帖子底部的链接。
-
唯一确定的方法是打开脚本并亲自查看。
-
我在测试页面上尝试了表单。基本上,该表格是故意不做任何事情的。搜索了一个反斜杠,搜索表单就像我在操作后所说的那样被破坏了。使用默认的 wordpress 二十十三主题完成,未启用任何插件。
-
我想知道这是一个孤立的案例,还是有其他 wordpress 用户遇到同样的情况?因为我不记得在 wordpress 更新之前遇到过这个问题。