我意外地发现,每当搜索结束时出现反斜线,点击提交后的页面将返回一个破损的搜索表单。搜索词末尾的反斜杠打破自定义搜索表单
在我的情况下,提交按钮变成了文本区域。
使用谷歌Chrome浏览器的“检查元素”,我看到我的搜索形式变成了这样:
<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>
P.S.我正在使用此自定义搜索表单来搜索自定义字段,并使用Pods插件显示生成的自定义帖子类型。虽然这看起来并不是Pods插件问题。
https://github.com/pods-framework/pods/issues/1620
而且,这并不似乎是来自另一个主题或插件冲突。
当数据发送到您的处理脚本时,您需要转义您的数据。当您点击“搜索”时,向我们展示获取调用的脚本(在服务器端)。 – user1477388
我使用搜索表单和pod插件一起使用。数据由它处理,他们坚持认为它已被转义。他们说这可能是一个WordPress的错误。请参阅我的操作文章底部的链接。 –
只有知道的方法才能打开脚本并亲自查看。 – user1477388