0

ユーザーがユーザー名とパスワードでログインした後、ユーザー名とパスワードを使用したログシステムがあり、戻るボタンを押すと、ログインページにリダイレクトされます。PHPでこれを防ぐ方法は??

4

3 に答える 3

4

最初に、ページを期限切れにし、ブラウザによってキャッシュされないようにします。

<?
//Set no caching
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 
header("Cache-Control: no-store, no-cache, must-revalidate"); 
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
?>

次に、ユーザーがログインしているかどうかを確認する必要があります。ログインしている場合は、次のように前のページにリダイレクトします。

// SET REFERRER

    function strleft($s1, $s2) { 
        return substr($s1, 0, strpos($s1, $s2));
    }   

    function selfURL() { 
        if(!isset($_SERVER['REQUEST_URI'])) { 
           $serverrequri = $_SERVER['PHP_SELF']; 
        }
        else { 
           $serverrequri = $_SERVER['REQUEST_URI']; 
        } 
        $s = empty($_SERVER["HTTPS"]) ? '' : ($_SERVER["HTTPS"] == "on") ? "s" : ""; 
        $protocol = strleft(strtolower($_SERVER["SERVER_PROTOCOL"]), "/").$s; 
        $port = ($_SERVER["SERVER_PORT"] == "80") ? "" : (":".$_SERVER["SERVER_PORT"]); 
        $_SESSION['ref'] = $protocol."://>/".$_SERVER['SERVER_NAME'].$port.$serverrequri; 
    }               

selfURL();

それで

header("Location: " . $_SESSION['ref']);

于 2013-03-01T06:55:01.020 に答える
0

ユーザーのセッションを確認する必要があります。その場合、セッションが存在する場合は、ユーザーがすでにログインしていることを警告するか、ユーザーをindex.phpなどにリダイレクトします。

于 2013-03-01T06:46:16.157 に答える
0

あなたのコメントによると、あなたが本当に求めている質問は、戻るボタンを無効にする方法です。

これはphpからは絶対に不可能であり、ブラウザによって制御されているため、おそらくまったく不可能だと思います。JavaScript を使用すると、ボタンを無視または無効にするコードを見つけることができるため、ある程度の制御が可能です。

「JavaScript の戻るボタンを無効にする」をグーグルで検索すると、いくつかの結果が得られるはずです。

于 2013-03-01T06:57:19.540 に答える