session_destroy() をすぐに有効にできない、解決方法

WBOY
リリース: 2016-06-13 11:59:02
オリジナル
1161 人が閲覧しました

session_destroy() はすぐには有効になりません
HTML で を使用して PHP ページにリンクすると、PHP ページがセッションを破棄しますが、ページを開いたときはセッションがまだ存在します。 PHP ページを再度更新しています。このページには 2 つのステートメントのみがあります: $_SESSION = array();session_destroy(); session_start() が開かれました。
すみません、何が起こっているのですか

-----解決策---------
セッションは、ページ B で session_destroy(); を実行する前に自然に存在します。それ以外の場合は、session_destroy(); を実行する必要はありません。
ページ B に再度アクセスしたときにのみ、セッションが失われていることがわかります (リフレッシュなど) )
ユーザーにとって、session_destroy() は cookie
内のセッション ID をログアウトする命令を送信するだけであるためです------解決策------------- ----- --
a.php



b.php
<br /><?php<br />session_start();<br />$_SESSION = array();<br />session_destroy();<br />var_dump($_SESSION['name']);<br />?><br />
ログイン後にコピー

------解決策--------------------

引用:
引用: 引用:

その後、ページは実際には決して終了せず、もちろん現在のセッションは消えません。

connection_aborted() 文はクライアントが切断されているかどうかを確認できますが、その実行にはページにコンテンツを出力する必要があるため、ob_flush();flush();
問題は、これら 2 つが文はセッションを破棄させるページは正常に実行できません。つまり、セッションを破棄するには手動で更新する必要があります


それで、次のときにこのループを閉じる他の方法はありますか?クライアントが切断します。それともセッションを破棄するページを正常に実行する他の方法はありますか?
この問題は ob_flush();flush(); によって引き起こされますか?何をするか?

ユーザーが長期間ログインしない場合にオフラインにされるのを防ぐためにこれを行っています。他に方法はありますか?


ページは終了しておらず、現在のページのセッションはファイルに更新されていません。これが、session_destroy() がすぐには有効にならない理由です。
この問題を解決するには、session_destroy(); の後に session_write_close(); を追加します。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート