2016-04-18 17 views
2

私はPHPプロジェクトからログアウトするのに使うlogout.phpページです。なぜこのセッションは破棄されませんか?

<?php 
session_start(); 

$conn4=mysqli_connect("localhost", "root", "", "winkcage"); 
$useronline=$_SESSION["unamsession"]; 
$queryseen="UPDATE signup SET seen='' WHERE username='$useronline'"; 
$queryseenrun=mysqli_query($conn4, $queryseen); 
session_destroy(); 
session_unset(); 
header('Location: login.php'); 
?> 

[FirefoxとChromeの両方]:私はログアウトボタンをクリックすると、ページがlogin.phpにリダイレクトされますが、私は別のタブでホームページを再度読み込み(のみ開く必要がありますセッションは破棄されません)、login.phpにリダイレクトする代わりにロードされます(これは私のインデックスページになります)。

このコードで何が問題なのかよくわかりません。 session_unset()の前にsession_destroy()を書くと違いがありますか?どうすれば修正できますか?

[Firefoxであれば大丈夫です]:Firefoxを終了すると、セッションは自動的に破棄されますが、これは明らかですが、Chromeではありません。クロムはそれを破壊していません。どのように可能ですか?私は完全に私のコードをチェックしたが、私はクッキーに関連するコードラインを見つけることができませんでした。

もう1つの問題は、私が数分(20〜30と推測します)ログインしたときにセッションが自動的に破棄されることです。私はこれを間違ってコードを書いている可能性はありますか?それともデフォルトですか?

+0

あなたはセッションクッキーを使用していますか?はいの場合 - それらも削除する必要があります。 'setcookie(" YourCookie "、" "、time() - 3600);' – bugnumber9

+0

のように私は過去1ヶ月間作業しているので書きましたが覚えていません。しかし、チャンスは非常に少ないです。私はこのプロジェクトでは主に2ページを持っています。 1はログイン、2はホームです。それが書かれているとどこで見つけることができますか? – cybrain

+0

Chromeの開発ツール - >リソース - >クッキー – bugnumber9

答えて

1

ないあなたはクッキーを使用するかではないが、私は、これは それを解決すると思いますされているかどうかわから....

$queryseenrun=mysqli_query($conn4, $queryseen); 
session_unset(); 
    $_SESSION = array(); 
    // get session parameters 
    $params = session_get_cookie_params(); 
    //delete the actual cppkie 
    setcookie(session_name(),'', time() - 42000, $params["path"], $params["domain"], $params["secure"], $params["httponly"]); 
    // Destroy session 
    session_destroy(); 
    //redirect to the index.php 
    header("Location: login.php"); 
    exit(); 
+0

ねえ、私は問題がクロムだけであると思う。 Firefoxでは正常に動作しています。 Firefoxを終了すると、セッションは自動的に破棄されますが、これは明らかですが、Chromeではそうではありません。クロムはそれを破壊していません。どのように可能ですか?私は完全に私のコードをチェックしたが、私はクッキーに関連するコードラインを見つけることができませんでした。 – cybrain

+0

あなたのクロームブラウザで設定を確認 - >起動時に - >中止した場所がチェックされていないことを確認してください – PacMan

+0

チェックされていません。 – cybrain

1

解除

セッションは、単純に使用するためのセッションをクリアしますが、それはないですhttp://php.net/manual/en/function.session-unset.phpから破壊されても、それはまだユーザーのコンピュータに残っています。

は、以下のことを試してみてください。

session_start(); 
session_destroy(); 
$_SESSION = array(); 
header('Location: index.php'); 
+0

第2の答えに私のコメントを読んでください、先生、これはあなたがより良く理解するのに役立ちます。 – cybrain

関連する問題