2013-07-02 1 views
0

내 로그인 스크립트를 확인 확인하면서 - 이것은이 broswer에서 쿠키를 저장예기치 않은 행동 쿠키

if($pass == $hash) setcookie("cookiename",$cookieVal);

. 이 문제는 없습니다. 나는 그것을 직접 확인했다.

그러나 다른 페이지에서 쿠키가 있는지 확인하면 false를 반환합니다.

if(isSet($_COOKIE['cookiename'])) echo "Cookie is set"; else echo "Not set";

위의 코드 인쇄는이 broswer 창에서 "설정되지 않음". 내가 echo $_COOKIE['cookiename'];하려고하면

또한,의 OUPUT는 공지 사항 오류를하다 : 정의되지 않은 인덱스 : 나는 그것을 볼 수 있지만 내가 확인할 때 제시, 분명히 브라우저 (파이어 폭스)가 쿠키를 식별 할 수

을 cookiename 내이 broswer의 옵션 탭! 나중에 Chrome과 IE에서도 동일한 문제가 발생했습니다.

내가 뭘 잘못하고 있니?

업데이트 : 로그인 확인 스크립트 끝에 if(isSet($_COOKIE['cookiename'])) echo "Set";을 추가하면 내 쿠키가 감지되었습니다 ("설정"이 인쇄되었습니다)! 하지만 다른 페이지에서는 발견되지 않습니다.

+2

'isset()'호출로 '정의되지 않은 색인'이 보이지 않을 것입니다. 다른 무엇인가 잘못되었습니다 ... –

+0

쿠키가 되돌아 오지 않을 수있는 다른 이유 - 도메인 이름이 다릅니다 - 경로를 지정하지 않았으므로 Firefox에서 쿠키 경로를 확인하십시오. –

+0

두 URL을 함께 공유 할 수 있습니까? (쿠키가 설정되는 곳과 다시 읽혀지는 곳)에서 기본 경로가 쿠키가 두 번째 페이지로 보내지는 것을 막을 것으로 의심됩니다. – complex857

답변

1

기본적으로 쿠키는 지정된 경로에서만 사용할 수 있습니다. Firebug/Chrome에 Path 열이 표시되어 경로가 표시됩니다. 전체 도메인 (하위 도메인 제외)에서 쿠키를 액세스 가능하게 만들려면

+0

예. 효과가 있습니다. 고마워. 하지만 쿠키가 세션 기간 동안 만 설정되도록하려면 내 세 번째 매개 변수 (시간)는 무엇입니까? – gdebojyoti

+1

@gdebojyoti 괜찮습니다! setCookie 문서에서 :'0으로 설정하거나 생략하면 세션이 끝날 때 (브라우저가 닫힐 때) 쿠키가 만료됩니다. '- http://php.net/setcookie – Webnet

+0

그냥 나 자신도 마찬가지입니다. 'setcookie ("cookiename", $ cookieVal, 0, '/');'어쨌든 고마워. :-) 모든 것이 잘되었습니다. 쿠키 문제가 해결되었습니다. – gdebojyoti

관련 문제