0

ログアウト機能が機能しないツールを使用しています。session_start() を使用して構成ファイルをインクルードするインデックス ページがあります。

その後、バナーとログオンおよびログオフ ボタンがあるページを含めます。これらのボタンのいずれかをクリックすると、別のページに移動しconnec.php、接続を破棄または作成します。

接続は問題ありません。すべてのセッション変数を初期化します。切断については、次のようにします。

if(isset($_POST['logout'])){
    $_SESSION = array ();
    session_unset();
    session_destroy();
    $_POST['logout']=1; 
    //gotopage($GLOBALS["GLOBAL_URL_PSISITE"]);
    header("Location: ../index.php"); 

私はまだ接続されています、そして私がprint_r($_SESSION)常に存在するとき。

4

3 に答える 3

2

まず、ページがsession_start()一番上に定義されていることを確認します。次に、ページで何かを行う前に、入力フィールドがform要素にラップされ、submit buttonhasname=logoutとフォームがに設定されて いることを確認します。method=post

<form method="post" action="your_logout_script_page.php">
  <input type="submit" name="logout" />
</form>
于 2012-10-31T15:48:08.687 に答える
0

ファイルにこのようなものが必要です

<?php
session_start();

if (isset($_POST['logout'])) {

    $_SESSION = array();

    if (ini_get("session.use_cookies")) {
        setcookie(session_name(), '', time() - 42000, '/');
    }

    session_destroy();

    //$_POST['logout']=1;  // this won't do anything since you're redirecting on the next line.

    header("Location: ../index.php");
    exit;

}
?>
于 2012-10-31T15:51:23.043 に答える
0

実行中のセッションを正しく「破棄」するには、まず、どのセッションを強制終了しようとしているのかを PHP に伝える必要があります。

カスタム/手動名を持たないセッションの場合 (ほとんどの場合)、最初に呼び出す必要があります

session_start();

電話をかける前に

session_destroy();

... そう:

<?php session_start(); session_destroy(); ?>
于 2012-10-31T15:54:00.070 に答える