要更新的记录的GET或POST


GET or POST for record to be updated

在基于CRUD的基本PHP web应用程序中,需要更新服务器上数据库中的给定记录的功能。可以从记录列表中调用更新页面,并且必须将要更改的记录的id传递到此页面。

在这种情况下,GET和POST中的哪一个会被认为是最佳实践?GET显然允许用户比POST更容易地更改值,因此对记录的存在性和所有权进行适当的检查将非常重要。另一方面,POST可能会将刷新或导航时的用户与后退/前进按钮混淆,后者在用户不知道提交了任何数据的情况下要求确认重新提交。

在这种情况下,GET和POST中的哪一个会被认为是最佳实践?

职位。您正在发送数据以更新服务器上的内容。这就是POST的作用。

GET显然可以让用户比POST 更容易地更改值

这就是"琐碎"answers"非常琐碎"之间的区别。不要让任何与用户更改请求的能力有关的事情影响您选择请求方法的决定。

另一方面,POST可能会将刷新或导航上的用户与要求确认重新提交的后退/前进按钮混淆

要避免这种情况,请使用POST/Redirect/GET模式。

使用POST请求来处理更新。向浏览器发送重定向。然后浏览器将获取包含更新数据的页面。

当他们不知道提交了任何数据时。

这似乎是一个奇怪的用例,您希望用户在没有意识到的情况下更新记录。

如果你不想让随机的人改变随机值(改变url中的值),你应该使用post。就我而言,我会对所有数据库事务(更新、删除)使用POST,因为这更安全。大多数浏览器在发布后都会发出警告(=重新提交表单/…)。

  • 当有人向您的应用程序
  • 当有人推送(插入或更新;或删除)数据

您可以使用$_REQUEST,因为它包含有关使用$_COOKIES获取和发布两者的信息。

但如果你不使用cookie,所以我建议你使用$_POST,而不是$_cookies。

我通常使用GET进行报告,使用POST进行更新。

当您希望用户快速访问某些内容时,请使用GET,并记住用户可以手动更改参数。

当您不希望用户看到或更改参数并在重新发送表单上提醒用户时,请使用POST。

您可以将POST与重定向结果一起使用,它肯定会阻止重新传输。