2012-03-19 5 views
2

좋아요. 전 완전히 당황 스러워요. PHP 쿠키가 설정되어 있지 않습니다.

if ($password == $correct_password[0] && !isset($_COOKIE['user'])) { 
      setcookie("user", $email, time() + 3600); 
      var_dump(isset($_COOKIE['user'])); 
      echo "!"; 
     } 

그래서 그것은 이기에, setcookie라는 것을 의미하는 var_dumps을하고있어 :

여기 내 코드입니다. 그러나 그 직후의 라인 (설정되어 있는지 확인)은 설정되지 않았다고 말합니다!

누구든지이 문제를 지적 할 수 있으면 크게 감사하겠습니다. 감사합니다

답변

0

아직 정확한 답변을 찾지 못했지만 끝없는 테스트를 거친 후 시간이 지나면 무언가처럼 보입니다. 만료일을 실시간에 너무 가깝게 설정하면 어쩌면 등록하지 않거나 다른 것이 아닙니다. 시간을 더 늘릴 때 작동하는 것처럼 보였지만 무거운 테스트를 다시 시작하기 전에 휴식을 취하고 있습니다. 감사합니다

1

스크립트가 처음 시작될 때 $ _COOKIE이 (가) 채워지고로드되고 이 아닌이 스크립트의 수명 기간 동안 다시 업데이트됩니다. setcookie를 통해 쿠키를 설정하는 것은 NEXT 스크립트 실행시에만 $ _COOKIE에 표시됩니다.

이것은 $ _SESSION을 (를) 제외한 모든 슈퍼 글로블에 적용됩니다. 스크립트를 시작할 때 populated/initalized가되고 나서 PHP는 다시는 그들을 만지지 않습니다. $ _SESSION은 session_start() (또는 세션이 자동 시작으로 설정 됨)으로 호출 될 때 채워지며 스크립트의 수명 기간 내에 여러 번 수행 될 수 있습니다.

+0

나는이 scipt를 가지고있다. '페이지를 새로 고치면 여전히 쿠키가 설정되어 있지 않다는 메시지가 표시됩니다. – Raekye

1

PHP는 서버 측 언어입니다.

즉, 원하는대로 생성하고 클라이언트에 전달할 수 있습니다.
그게 전부입니다.
단일 요청에서 앞뒤가 없습니다.

1º you instruct the page 'A' to set a cookie 
2º client recieves page 'A' and sets the cookie 
3º client asks for page 'B' (sending the cookie) 
4º server can identify the cookie (only on page 'B') 

여기에있는 페이지는 서버 호출을 이해하는 간단한 방법으로 사용됩니다.
동일한 페이지를 두 번 요청할 수 있습니다.

+0

그래서 처음에는 쿠키를 설정하고 몸에는 쿠키 호출이있는 간단한 테스트 페이지를 만들었습니다. 따라서 페이지에 쿠키를 설정하라는 지시가 내려지면 페이지를 수신하고 쿠키를 설정합니다. 나중에 페이지에서 쿠키를 묻습니다 ... 이미 설정되어 있지 않아야합니까? ** 모든 것이로드 된 후 ** 쿠키를 설정합니까? 그러나 결과적으로 페이지를 새로 고치면 (쿠키가 이미 설정되어 있어야합니다) 여전히 쿠키 세트는 없다고 말합니다. – Raekye

+0

제 테스트 페이지는 다음과 같습니다.' '여러 번 새로 고친 후에도 여전히 쿠키 세트가 설정되어 있지 않지만 쿠키가 성공적으로 설정되었음을 알리는 메시지가 표시됩니다. 무슨 일 이니? – Raekye

0

setcookie()를 사용하면 값이 이고 다음에 시간이 저장됩니다. 값이 단지 인 Vardump를보고 싶다면 $ _COOKIE [ 'cookie_name'] = $ value;를 사용해야합니다.

관련 문제