내 사이트의 개별 디렉토리에 별도의 쿠키를 저장해야합니다. 이 방법을 수행 할 수있는 방법에 대한 여러 기사를 읽었지만 나에게 적합한 솔루션을 얻을 수 없었습니다. I는 각 페이지 (COOKIE_PATH = '/city_dir/'
)에 이들 라인 중 하나를 수행하고 :다른 경로에 대해 다른 세션 쿠키
session_set_cookie_params($lifetimeSeconds, COOKIE_PATH);
또는
session_save_path(COOKIE_PATH);
의해 따랐다
if (isset($_COOKIE['PHPSESSID'])){
$data = $_COOKIE['PHPSESSID'];
$timeout = time() + $lifetimeSeconds;
session_start();
setcookie('PHPSESSID', $data, $timeout);
}
else {
session_start();
}
session_regenerate_id(true);
(session_set_cookie_params
)이 올바른 용액 같았 첫번째 행 하지만 그 행을 사용하면 Chrome 웹 개발자 도구 목록에 쿠키가 전혀 표시되지 않으며 사이트에 로그인 할 수 없습니다.
두 번째 줄은 정확한 해결책처럼 들리지는 않습니다 (저장 경로가 아닌 쿠키 경로를 처리해야하는 것으로 보이지만). 페이지가 처음으로로드되면 경로 "/"에 대한 쿠키가 표시됩니다. 페이지를 새로 고치면 해당 쿠키는 그대로 유지되며 경로는 COOKIE_PATH
에 대한 쿠키가 나열됩니다. 불행히도 여전히 로그인 할 수 없습니다. 주말 내내 많은 변형을 검색해 보았지만 아무 것도 할 수 없었습니다. 내가 뭘 놓치고 있니? PHP 버전 5.3.18을 사용하고 있습니다.
[session_save_path()] (http://php.net/session_save_path)는 쿠키와 아무 관련이 없습니다. stuff가 저장되는 서버 디렉토리를 설정합니다. 사실,'session_set_cookie_params()'다음에 코드의 관련성을 이해할 수 없습니다. 문제는 대부분 다음과 같습니다 : 1)'COOKIE_PATH'에 잘못된 경로가 포함되어 있습니다 (명확하게 말하지 않지만 선행 슬래시를 생략 할 것을 제안합니다) 2) 사이트 루트에 세션을 사용 중입니다 –
'session_set_cookie_params' 작동해야합니다. 나는 당신이 묘사하는 것과 정확히 똑같은 일을한다. 가정을 다시 확인하십시오. 세션이 시작 되었습니까? 서버에서 세션이 생성되는 것을 보시겠습니까? 세션 쿠키를 가져 옵니까? – Halcyon
부모 경로에 대해 세션 쿠키가있는 경우 브라우저에서 이상한 동작이 나타날 수 있습니다. 그들은 틀린 과자를 보낼 것이다. 쿠키를 삭제하여이 문제와 관련이 없는지 확인하십시오. – Halcyon