如果浏览器建议URL,则运行注销代码

时间:2017-07-02 12:14:39

标签: javascript php

    /** LOGOUT PROCESS **/
case logout:
    if(isset($_SESSION['user'])){
        unset($_SESSION['user']);
        if(!empty($_COOKIE['remember'])){
            list($selector, $authenticator) = explode(':', $_COOKIE['remember']);
            $stmt = $db->prepare('DELETE FROM user_token WHERE selector = :selector');
            $stmt->execute(['selector' => $selector]);
        }
        if(isset($_SERVER['HTTP_COOKIE'])){
            $cookies = explode(';', $_SERVER['HTTP_COOKIE']);
            foreach($cookies as $cookie) {
                $parts = explode('=', $cookie);
                $name = trim($parts[0]);
                setcookie($name, '', time()-1000);
                setcookie($name, '', time()-1000, '/');
            }
        }
    }
    header("Location: ".site_url,true,303);
    exit();
    break;

我有以上代码,用户访问:example.com/user/logout来运行此过程。在我测试时,我注意到如果我输入example.com/user/lo,我的浏览器会建议我转到example.com/user/logout,因为那是我访问过的最后一页。它的作用是在没有我访问网址的情况下将其记录下来(如果有人向我建议的话,浏览器我想访问网址)。我不希望这发生!我想在设置注销之前设计一个弹出警报以防止它。但是我可以使用哪些其他选项,以便在访问该页面时用户不会立即注销?我见过有人尝试注销之前没有显示警报的网站。他们在后端做了什么?

1 个答案:

答案 0 :(得分:0)

您可以使用post方法或ajax请求。目前您正在使用简单的get方法,并检查如果用户已登录,则只需注销用户。
1→您可以使用任何特定密钥的后退请求进行注销功能 2→您可以在页面上实现ajax时使用它。
您可以根据自己的选择使用任何方法。