Php 使用哪种方法?
我在网站上有一个表单,用于搜索数据库中的对象。问题是,用户可以使用许多属性进行搜索,所以我不确定是否应该使用POST方法将值传递给其他脚本,还是应该将所有变量都放在URL中,并使其他脚本独立且仅通过链接即可访问 例如,如果我使用GET方法,URL将如下所示: /…/search_objects.php?a[priority][gym]=0&a[priority][clubs]=1&a[priority][shop]=1&a[priority][restaurants]=1&a[priority][pubs]=0&a[priority][pets]=1&a[priority][parking]=0&a[persones]=1&a[lat nondef&a[lng]=nondef&a[radius]=500&a[college]=0Php 使用哪种方法?,php,url,post,get,Php,Url,Post,Get,我在网站上有一个表单,用于搜索数据库中的对象。问题是,用户可以使用许多属性进行搜索,所以我不确定是否应该使用POST方法将值传递给其他脚本,还是应该将所有变量都放在URL中,并使其他脚本独立且仅通过链接即可访问 例如,如果我使用GET方法,URL将如下所示: /…/search_objects.php?a[priority][gym]=0&a[priority][clubs]=1&a[priority][shop]=1&a[priority][restaurants]=1&a[priority]
- 在这种情况下,我的页面将独立于上一个页面,可以刷新,也可以不依赖于上一个脚本来访问
针对这个问题,哪种方法更好?哪一个更人性化(在这些情况下,是否优先考虑人性化?)?为什么选择一种方法而不选择另一种方法,有一些安全原因吗?您应该选择GET,因为POST的目的是从表单(如文章)发布/创建内容。搜索框通常被认为只是伪造正确GET url的工具。此外,人们通常希望通过复制和粘贴URL来保存特定的搜索(看看谷歌是如何管理它的) 它们都不是真正的用户友好型。你不应该在意它。搜索URL从来都不是真正的用户友好型
如果您保护了所有的输入(就像您一直应该做的那样),那么您就不必担心安全性。特别是在搜索上下文中,没有进行太多的安全检查,您只需从数据库中获取数据并打印它。只要记住SQL注入(以及打印端的XSS),您应该会很好。首先,使用GET。你是在获取数据,而不是发布数据。POST应用于更改服务器上某些内容的操作 至于长URL问题,您可以做一些事情:
- 分离搜索页面-为不同的搜索类型提供不同的搜索页面
- 使用URL重写-使用
和.htaccess
将很长的URL更改为更短、更漂亮的URLModRewrite