この質問には多くの重複がありますが、いくつか試してみましたが、回答はありませんでした。ここでPHPセッションはログアウト/設定解除されていません
はlogout.phpのための私のコードです:
<?php
session_start();
require './codefiles/dbhelper.php';
$dbh = new DbHelper();
$dbh->Execute('UPDATE surveyors SET LoggedIn=\'0\', SessionID=\'\' WHERE Username=\''.$_SESSION['username'].'\'');
session_unset();
session_abort();
session_destroy();
$_SESSION = array();
unset($_SESSION['username']);
unset($dbh);
header('location:index.php');
?>
しかし、セッション変数を除去することがあまりにも「頑固」です。セッション変数は削除されません。オブジェクト$ dbhは設定されていませんが、$ _SESSION ['username'];
私のSQLクエリでLoggedIn = 0
を設定しているにもかかわらず、別の関係のない問題は、データベースに1のままです。 LoggedIn
フィールドのタイプは「ビット」です。 SessionID
フィールドは空白に設定されています。
解決方法はありますか?
EDIT:それは不要だったとして
がecho $dbh->error
を削除しました。
EDIT 2:ホッサムMagdyにより示唆されるように
はsession_destroy()
を追加しました。
あなたは 'session_destroy();'を試してみましたか?http://php.net/manual/en/function.session-destroy.php? – Hossam
ああ、そうです。私が持っています。 –
私が間違っていれば私を訂正してください。セッションを中止すると、セッションを終了するように見えるので、ストレージへの書き込みができなくなります。そして、 'sessionHandlerInterface'を実装しているクラスで' session_set_save_handler() 'を使用するのを止めたのでしょうか? – frz3993