浏览器"喜欢"返回按钮,带有会话

时间:2014-10-14 22:20:53

标签: php session laravel laravel-4

我试图创建一个类似'返回按钮的浏览器。

为此,我创建了代码,将 Request :: header('referer')推送到我的 Session :: get('smartBacklinks' )

到目前为止,与Session中最新版本不同的每个Request :: header('referer')都将被推送到会话数组。接下来我需要做的事情,这就是我陷入困境的地方。当我点击我的返回按钮时,我当然会被重定向到我的会话数组中的最后一个网址。唯一不对的是我需要确保在单击返回按钮时,它不应该运行代码将Request :: header('referer')推送到会话中

    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]);
    });

提前致谢,我希望有人理解我的问题。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用带有隐藏值的返回按钮的表单,并在每个请求上检查该值。如果提交了退货表单,则不要运行推荐人推送代码。

e.g。

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>
&#13;
&#13;
&#13;