将表单提交从GET更改为POST PHP

时间:2016-09-13 15:06:48

标签: php post get http-post http-get

我正在大型网站上工作,并且已经过滤了汽车。我将解释表单过滤的工作原理:

所以用户选择过滤器选项,车号等等按下去,这使得GET请求服务器(php)我已经将每个变量从$ _GET改为$ _POST并改变了表单提交方法,问题在于表单返回大量可能包含2页以上的项目,因此当用户点击第二页或第三页时,所有这些代码都会向请求添加页码,如下所示:www.example.com/GET_REQUEST_VARIABLES - > www.example.com/pagenumber&GET_REQUEST_VARIABLES。这样服务器返回第二页项目等等。

但是当我发送帖子请求时,它没有保存在网址中,所以服务器不知道要返回什么,

你可以帮我解决这个问题吗?

如果你提出问题,我可以更好地解释,如果我在这里解释清楚,我不知道

1 个答案:

答案 0 :(得分:1)

你有没有理由使用POST代替GET?在这种情况下,使用GET更加SEO友好。由于您未在表单提交中发送敏感数据,因此我没有理由使用POST。使用GET的另一个好处是您可以直接链接到搜索结果。 (例如,如果我搜索本田飞度,并希望展示我的妻子,我可以直接链接到该页面)

(看看HERE有关POST和GET之间差异的重点探索。)

要回答您的其他问题,POST不会使用该网址。只有GET才这样做如果您需要将表单数据序列化到URL中,您需要使用GET。由于您已将表单提交方法更改为POST,因此您还需要更改服务器端逻辑以适应。如果不知道您使用的是哪种服务器端技术,我将无法使用。假设您使用的是PHP,则可以启动here

如果您对MAN页面不是很多,只需将PHP中的所有$ _GET [' fieldName']调用更改为$ _POST [' fieldName']

您可以随时发布第一页,并仅使用GET获取页码。在表单中,您只需执行此操作

    <form method="post" action="www.foo.com/search?page=1">

然后您可以将POSTed变量存储到$ _SESSION超全局变量中。繁荣。张贴分页。用PHP

动态渲染它将是一件轻而易举的事
$nextPageURL = 'www.foo.com/search?page=' . $_GET['page'] + 1;
if($_GET['page'] !== '0'){
    $lastPageURL = 'www.foo.com/search?page=' . $_GET['page'] - 1;
}