【发布时间】:2017-12-09 10:41:30
【问题描述】:
我正在开发 Laravel 5.5 框架。 我有一个这样的表单主页:
<form action = "/result" method = "post">
<input type = "hidden" name = "_token" value = "<?php echo csrf_token() ?>">
<table>
<tr>
<td>Name or Nickname</td>
<td><input type = "text" name = "name_nickname" autofocus /></td>
</tr>
<tr>
<input type = "submit" value = "LuckyNumber" />
</td>
</tr>
</table>
控制器如下所示:
class SixGetController extends Controller
{
public function luckyNumber(Request $request){
$nameNickname = $request->input('name_nickname');
$luckyNumber = rand (1,10);
DB::table('visitor')->insert(
['name_nickname' => $nameNickname, 'luckyNumber' => $luckyNumber]);
return view('result', ['nameNickname' => $nameNickname, 'luckyNumber' =>
$luckyNumber]);
}
结果页面如下所示:
<p><?php echo $nameNickname; ?> </p>
<p>Your lucky number is <?=$result?> .</p>
如果用户按下重新加载 F5 按钮,脚本将重新滚动随机数生成器并使用重新滚动的数字重新提交数据。我读过关于我不知道如何使用的 PGR 模式以及关于操纵历史的一些我也不了解的内容。有人可以指出我在某处放置了什么样的代码来防止重新滚动和重新提交。谢谢。
【问题讨论】:
-
它的
P.R.G... Post Redirect Get ... 当您处理post 请求时,您返回一个重定向.. 浏览器然后发送GET请求以获取该新位置...他们可以刷新所有他们想要的,因为这只是对资源的get请求,没有 POST ......这是我们重定向离开的上一个请求......并且在这些框架中总是从这些处理端点返回重定向...视图应该从get请求返回...它是一个非常简单的系统,你将永远知道你在哪里..如果你看到一个页面,你知道它基本上是一个GET请求
标签: laravel submission