我有一个 CakePHP 搜索表单,它有'type'=>'get'
. 基本上,表单中的元素之一是图像类型的提交按钮。当表单发布时,在 URL 中我总是得到图像提交按钮的这些 x & y 坐标:
http://site.com/controller/action?x=22&y=36 &查询=你好
有什么办法可以防止坐标出现在 URL 中?原因是其他人可以使用相同的 URL 来执行相同的搜索,而链接中没有那些不直观的东西。
谢谢!
我有一个 CakePHP 搜索表单,它有'type'=>'get'
. 基本上,表单中的元素之一是图像类型的提交按钮。当表单发布时,在 URL 中我总是得到图像提交按钮的这些 x & y 坐标:
http://site.com/controller/action?x=22&y=36 &查询=你好
有什么办法可以防止坐标出现在 URL 中?原因是其他人可以使用相同的 URL 来执行相同的搜索,而链接中没有那些不直观的东西。
谢谢!
您可以在按钮上使用一些 javascript:
document.getElementById('myImageButton').onclick = function() {
this.form.submit();
return false;
};
或者,在beforeFilter
函数的控制器中,您可以检查是否存在不需要的变量,将它们删除并重定向到漂亮的 URL。这确实意味着将发出 2 个 HTTP 请求。
听起来您正在寻找Post/Redirect/Get。
以下是在 CakePHP 中执行此操作的两个示例:
POST
将 a 重定向到GET
请求的优点是:
/search?q=contact
您可以获得/search/contact
不要使用submit
辅助函数,而是使用button
函数并设置按钮类型来提交。
echo $this->Form->**button**($this->Html->image('header_search_icon.png'), array(**'type'=>'submit'**));