im正在尝试创建一个类似浏览器的返回按钮。
为此,我创建了下面的代码,将请求::标头('ferer')推送到我的会话::get('martBacklinks')
到目前为止,与会话中的最新请求不同的每个Request::header('ferer')都将被推送到会话数组中。下一件事我需要做,这就是我的困境。当我点击返回按钮时,我当然会被重定向到会话数组中的最后一个url。这里唯一的错误是,我需要确保当点击返回按钮时,它不应该运行代码将Request::header('ferer')推送到会话中
View::composer('backend.*', function($view)
{
// If Session[smartBacklinks] is set.
if(Session::has('smartBacklinks')){
// Get the last item in Session array
$slice = array_slice(Session::get('smartBacklinks'), -1, 1);
// Check if Request::header('referer') is equal to the $slide[0]
if(Request::header('referer') != $slice[0]){
// Check if Request::header('referer') is empty
if(Request::header('referer') != '') Session::push('smartBacklinks', Request::header('referer'));
}
// If session[smartBacklinks] is not set. - Set
}else {
Session::put('smartBacklinks', [Request::header('referer')]);
$slice = array_slice(Session::get('smartBacklinks'), -1, 1);
}
Session::save();
$view->with('smartBacklinks', $slice[0]);
});
提前谢谢,我希望有人能理解我的问题。
您可以尝试为返回按钮使用一个带有隐藏值的表单,并在每次请求时检查该值。如果提交了返回表单,则不会运行引用人推送代码。
例如
if(empty($_POST['hidden_return'])){
// your push code
}else{
// the return button was clicked. Handle here
}
html会像这个一样
<form method="post">
<input type="hidden" name="hidden_return" value="some_random_value" />
<input type="submit" value="Click Here To Go Back!" />
</form>