【发布时间】:2020-12-25 05:42:05
【问题描述】:
我有一个向我的 SQL 表提交文本的简单表单。问题是用户提交文本后,他们可以刷新页面并再次提交数据,而无需再次填写表单。提交文本后,我可以将用户重定向到另一个页面,但我希望用户留在同一页面上。
我记得读过一些关于为每个用户提供唯一会话 ID 并将其与另一个值进行比较的内容,这解决了我遇到的问题,但我忘记了它在哪里。
【问题讨论】:
-
为什么不想将用户重定向到另一个页面?
-
@Adam:因为这对于向服务器发出另一个请求是多余的,而服务器又会再次从数据库中获取一些数据。但这是资源浪费,因为我们在处理
POST请求时已经获取了所有需要的数据 -
@EugenKonkov 在 PRG 模式中,您只需重定向到显示成功消息的页面。无需进一步从数据库中获取。
-
@Adam:您也可以显示由
POSTing 数据创建的整个记录。在这种情况下,您需要从 DB 中SELECT它。例如,当您创建发票时,您将被重定向到/invoices/53,它会显示整个发票,而不仅仅是“成功”
标签: php html forms post form-submit