Auf meinem Server starte ich eine neue Sitzung, indem ich eine statische Klassenfunktion aufruft. Das Problem ist, dass die Sitzungs-ID nicht im Sitzungs-Cookie gespeichert wird, außerdem scheint kein Sitzungs-Cookie auf dem Client gespeichert zu sein (zB zeigt chrome kein Cookie für die Website an). Drucken $_COOKIE
Ergebnisse in array(0) { }
. Gleiches mit $_SESSION
.PHP session_start cookie speichert keine Sitzungs-ID
Hier ist die statische Klasse-Funktion, die eine neue Sitzung beginnt:
<?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();
}
}
?>
Und ganz oben auf jeder Seite i die Sitzung mit
Session::sec_session_start();
Zum Beispiel bin ab, wenn ich auf die am Login-Seite meiner Website und ausdrucken var_dump($_COOKIE)
es heißt array(0) { }
anstelle von array(2) { ["PHPSESSID"]=> string(26) "..." ["sec_session_id"]=> string(26) "..." }
.
Die php.ini sieht wie folgt aus php ini
Meine Website unterstützt 'https'. – Syles