2017-11-17 23 views
0

제 서버에서 정적 클래스 함수를 호출하여 새 세션을 시작합니다. 문제는 세션 ID가 세션 쿠키에 저장되지 않고 클라이언트에 세션 쿠키가 저장되어 있지 않은 것입니다 (예 : 크롬이 웹 사이트의 쿠키를 표시하지 않음). $_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) { }이 표시됩니다. 당신은 어떤 세션 기능을하기 전에 첫 번째 줄 session_start이 있어야이 php ini

답변

-1

을 다음과 같이

는 PHP의 INI 보인다.