제 서버에서 정적 클래스 함수를 호출하여 새 세션을 시작합니다. 문제는 세션 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
내 웹 사이트는'https'를 지원합니다. – Syles