私のサーバーでは、静的クラス関数を呼び出すことによって新しいセッションを開始しています。 問題は、セッションIDがセッションCookieに保存されていないことです。さらに、セッションCookieがクライアントに保存されていないようです(たとえば、chromeがWebサイトのCookieを表示しないなど)。 $_COOKIE
の結果がarray(0) { }
に出力されます。 $_SESSION
と同じです。PHP session_startクッキーはセッションIDを保存しません
<?php
class Session
{
private function __construct() { }
public static function sec_session_start()
{
$session_name = 'sec_session_id';
$secure = TRUE; // https only
$httponly = true; // javascript can't access session id
$cookieParams = session_get_cookie_params();
session_set_cookie_params($cookieParams['lifetime'],
'/',
'www.example-domain.de',
$secure,
$httponly);
session_name($session_name);
session_start();
session_regenerate_id();
}
}
?>
と私はでていたときに、すべてのページの上部に私は例えば
Session::sec_session_start();
とのセッションを始めています:ここで
は、新しいセッションを開始し、静的なクラスの関数であります私のウェブサイトのログインページでvar_dump($_COOKIE)
を印刷するとarray(2) { ["PHPSESSID"]=> string(26) "..." ["sec_session_id"]=> string(26) "..." }
の代わりにarray(0) { }
と表示されます。
PHP php ini
私のウェブサイトは 'https'をサポートしています。 – Syles