在我的服務器上,我通過調用一個靜態類函數來開始一個新的會話。 問題是會話ID沒有被保存在會話cookie中,此外似乎沒有會話cookie被保存在客戶端(例如,chrome不顯示網站的cookie)。 打印出$_COOKIE
結果在array(0) { }
。與$_SESSION
相同。PHP session_start cookie不會保存會話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(0) { }
而不是array(2) { ["PHPSESSID"]=> string(26) "..." ["sec_session_id"]=> string(26) "..." }
。
的PHP INI如下所示 php ini
我的網站確實支持'https'。 – Syles