2017-11-17 7 views
0

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

Antwort

-1

Sie haben session_start als erste Zeile vor jeder Sitzung Funktionen haben müssen.