Php 如何添加验证,以便用户无法返回到laravel上的上一页?

Php 如何添加验证,以便用户无法返回到laravel上的上一页?,php,laravel,validation,laravel-5.3,back,Php,Laravel,Validation,Laravel 5.3,Back,我的功能如下: public function index() { $stores = $this->store_service->getListStore(); return view('store.index', compact('stores ')); } 如果方法被调用,它将调用存储页面 我想添加验证服务器端。所以如果用户打开商店页面,用户就不能返回到上一页 如何操作?您无法使用服务器端代码处理浏览器事件。根据我的说法,你必须在推送状态下推送你的URL并清除

我的功能如下:

public function index()
{
    $stores = $this->store_service->getListStore();
    return view('store.index', compact('stores '));
}
如果方法被调用,它将调用存储页面

我想添加验证服务器端。所以如果用户打开商店页面,用户就不能返回到上一页


如何操作?

您无法使用服务器端代码处理浏览器事件。根据我的说法,你必须在推送状态下推送你的URL并清除浏览器历史记录。您可以使用下面的代码

$(document).ready(function(){ 
    window.history.pushState(null, "", window.location.href);
     window.onpopstate = function() { 
           window.history.pushState(null, "", window.location.href);
     }; 
});

在路由中包括中间件,并在中间件中检查请求。如果请求来自商店(或您希望阻止用户进入的任何页面),请将用户重定向到上一页。这样,即使用户单击“后退”按钮,用户也会显示到同一页面


您可以检查如下路径:
$request->path()
如果路径不是您希望用户使用的路径,则重定向到上一页

为什么要阻止用户返回上一页?@Vindur,没关系。在某个页面上,我希望用户不能返回到上一页。因此,并非所有页面都可以在用户访问页面时创建会话。然后,当用户试图返回时,检查会话是否存在,如果存在,则重定向用户。如果要阻止用户返回,则需要使用javascript禁用“返回”按钮。看看这个链接:它是否像一个包含步骤的订单页面,而您无法从步骤2返回到步骤1?如果它是从url注入的呢?因此,除了客户端验证之外,它还需要服务器端验证我添加了客户端验证。我还想添加服务器端验证好的,您可以维护一个标志。例如,当用户访问存储页时,设置一个标志(您可以使用会话),当用户访问下一页时,销毁该会话。现在,您只需要检查该变量是否已设置。这似乎不是最好的方法。因为我必须在所有pagesOk上添加条件。您还有一个选项,要在store页面的view文件中销毁会话,请将用于销毁会话的代码保留在文件末尾。我不确定这是否是一种好的做法。但这肯定会起作用,并且您不必在所有页面上添加条件。