PHPでセッション処理に関する私のサーバー(PHP 5.4.0、apache)で奇妙な問題が見つかりました。破棄/リセット後にPHPセッションが無効にならずに生きています
:そして、そのような何かをしてログイン手続きがありstatic function startSession()
{
$httponly = true;
$secure = true;
if (ini_set('session.use_only_cookies', 1) === FALSE) {
exit();
}
session_name("my_session");
$cookieParams = session_get_cookie_params();
session_set_cookie_params(
60*60,
$cookieParams["path"],
$cookieParams["domain"],
$secure,
$httponly
);
session_start();
}
:
私は次のコードが含まれていますし、私のアプリケーションで何かする前に必ず呼び出されたセッションを開始する機能を持っています
$_SESSION['key1] = 'some value';
session_regenerate_id(true);
そして最後にログアウト機能があります:
static function logout()
{
$_SESSION = array();
$params = session_get_cookie_params();
setcookie(
session_name(),
'',
time() - 42000,
$params["path"],
$params["domain"],
$params["secure"],
$params["httponly"]
);
return session_destroy();
}
今号へ: 私がログインすると次のことが起こります:
私は呼んで将来的にどういうわけかstartSession();
...
$_SESSION['key1'] = 'some_value';
...
:
logout();
session_destroy(); trueを返すと、$ _SESSIONはリセットされます。すべてうまい。
次に、セッションクッキーを再度送信してリクエストを再試行し、情報を要求し、セッションが再度アクティブになります。すべての情報がそこにある。
sess_:394B
私は、次のセッションの設定があります。私は、生成されたセッションファイルを参照することができ、サーバ上で
ini_set('session.hash_function', 'sha512');
ini_set('session.entropy_file', '/dev/urandom');
ini_set('session.entropy_length', 256);
ini_set('session.use_trans_sid', 0);
ini_set('session.use_only_cookies', 1);
ini_set('session.cookie_lifetime', 0);
ini_set('session.use_strict_mode', 1);
ini_set('session.cache_limiter', 'nocache');
私session_save_pathは()のどこかにあります/ var/www/html/sites/....
何が間違っているのですか?事前に
おかげで
デニス