4

セッションと、セッションを終了する機能のいくつかがどのように機能するかを理解しようとしています。私はさまざまなサイトに行きました/そしてここSOでも、基本的には何も機能していません。

作業しようとしているアプリがあり、ユーザーがログインすると、ユーザー名をそのように保存します(コード全体を貼り付けるつもりはありませんが、アイデアは得られます)

if($row == 1){
    session_start();
    $_SESSION['usrname'] = $login_usrname;
    $_SESSION['usrpass'] = $login_usrpass;
    header("Location:index.php");
    exit;
}

上記のアプリのインデックスページには、次のようなチェックがあります

session_start();
if(!isset($_SESSION['usrname']) && !isset($_SESSION['usrpass'])){ 
    header("Location:login-acc.php");
    exit;
}

Firefox の Web 開発ツールで Cookie をチェックしたところ、生成されていることがわかりました。

ログアウトしたいときは、簡単に言うと、すべてのセッションデータを消去してログインページにリダイレクトするページに移動するログアウトリンクがあります。アプリのテスト中にログアウト リンクをクリックすると、ログイン ページにリダイレクトされますが、戻って「インデックス ページ」リンクをクリックすると、それは私をすぐに入れさせます。

ログアウトファイルで、オーバーキルで問題を強制しようとしています、私はこれを持っていますが、何も機能していないようです。

unset($_SESSION['usrname']);
unset($_SESSION['usrpass']);

session_unset();

$_SESSION = array();
session_destroy();

setcookie('PHPSESSID', '', time()-3600,'/', '', 0, 0);

header("Location:login-acc.php");
exit;

ログインページにリダイレクトされますが、手動でインデックスページに移動すると、すぐに入ることができます。または、ログインページにリダイレクトされた後、「戻る」ボタンを押すと、すぐに入れます.

次に、FF Web 開発者ツール アプリに移動してすべての Cookie などを削除し、インデックス ページに移動すると、ロックアウトされます。

上記のように、複数のことを試してみましたが、最終的にはそれらをすべてまとめて、何かを行う必要があります。私の質問は、一般的にセッションを削除/設定解除/削除するためにこれらすべての機能を入れたので、他に何ができるでしょうか? 私はそれがどのように機能するのかについて少し迷っています。

誰かが私を正しい方向に導くことができますか?

4

2 に答える 2

2

session_start()ログアウト ページの上部にがありません。存在しないセッションを変更しようとしています!

于 2013-04-06T20:20:43.673 に答える
1

セッションを終了するには、セッションを開始する必要があります。ご覧になることをお勧めします... http://php.about.com/od/advancedphp/ss/php_sessions_3.htm

// you have to open the session to be able to modify or remove it 
session_start(); 

// to change a variable, just overwrite it 
$_SESSION['size']='large'; 

//you can remove a single variable in the session 
unset($_SESSION['shape']); 

// or this would remove all the variables in the session, but not the session itself 
session_unset(); 

// this would destroy the session variables 
session_destroy(); 
于 2013-04-06T20:31:14.647 に答える