首页 > 解决方案 > 如何防止在laravel中手动设置url

问题描述

我创建了一个测验应用程序。其中学生参加的问题,然后单击下一个按钮出现下一个问题。现在的问题是学生在第二个问题上,并且 URL 像“ takeQuizStudent/149?page=2”,他手动将 URL 更改为“ takeQuizStudent/149?page=1”。所以它不应该发生。一旦点击下一个问题,他就不能回到上一个问题。

标签: phplaravel

解决方案


您应该从控制器中检查请求页码session,例如

public function show(Request $request, $id)
{

  $value = $request->session()->get('pageNumber'); //2

  //$id = 1
  if($id < $value){
     return response("invalid request",504);
  }

  //else update pageNumber value and do continue

 // Via a request instance...
 $request->session()->put('pageNumber', '3');

 // Via the global helper...
 session(['pageNumber' => '3']);

     .....
}

确定会话中是否存在项目

要确定会话中是否存在项目,您可以使用该has方法。如果项目存在且不存在,则该has方法返回:truenull

if ($request->session()->has('pageNumber')) {
    //
}

要确定一个项目是否存在于会话中,即使它的值为null,您也可以使用该exists方法。如果项目存在,则该exists方法返回:true

if ($request->session()->exists('pageNumber')) {
    //
}

推荐阅读