2011-11-16 4 views
1

쿠키를 업데이트해야합니다. 나는 아약스를 통해 호출 된 PHP 파일에서 그렇게한다. 내가 $_COOKIE['items']는 이기에, setcookie 함수를 호출하기 전에였습니다 동일하다고 볼 수있는 이기에, setcookie 함수 후 print_r($_COOKIE['items'])를 작성하는 경우PHP 쿠키가 업데이트되지 않습니다.

setcookie('items['.$_POST['id'].']'); 

쿠키가 업데이트되지 않습니다, 사실이 코드입니다. 어떻게해야합니까?

+0

페이지에 쿠키를 retireieve하려면 페이지를 한 번 새로 고쳐야합니다. – Rafee

+1

'$ _POST [ 'id']'를 쿠키에 넣기 전에 이것을 지우셨습니까?'intval ($ _ POST [ 'id'])'는 먼 길을 갈 것입니다. – Geert

+0

가능한 [setcookie()] 직후 $ _COOKIE에 액세스 중 (http://stackoverflow.com/questions/3230133/accessing-cookie-immediately-after-setcookie) – outis

답변

3

동일한 인스턴스/페이지에서 쿠키를 설정하고 액세스 할 수 없습니다. 으로 설정 한 후 리디렉션 또는 새로 고침을 수행해야합니다.

는 또한,이 대신 같은 것을 수행해야합니다

setcookie("id","items['.{$_POST['id']}.']"); 
0

setcookie을 사용할 때 쿠키는 슈퍼 글로벌에 $_COOKIE에 추가되지 않습니다. 직접해야하거나 페이지를 새로 고침해야합니다. 또한 빈 값으로 쿠키를 설정하기 때문에 아무 것도 설정되지 않습니다.

0

당신은 키가 $_COOKIE에 액세스 할 수에 대한 값을 설정해야합니다 :

setcookie('items['.$_POST['id'].']', 'some_value'); 

Link to manual

0

php.net/manual/function.setcookie.php에서 :

a의 로딩하기 전까지는 작동되지 않는다

쿠키 페이지가 이면 쿠키가 표시되어야합니다. 쿠키가 성공적으로 으로 설정되었는지 테스트하려면 쿠키 이 만료되기 전에 다음 로딩 페이지에서 쿠키를 확인하십시오. 만료 시간은 만료 매개 변수를 통해 설정됩니다. 좋은 방법은 쿠키를 디버그하는 것입니다. 단순히 print_r ($ _ COOKIE);을 호출하는 것입니다.

쿠키는 PHP 스크립트 요청시 $_COOKIE을 통해 액세스 할 수 있습니다.

0

이것은 당신이 쿠키를 만들 때 함수 이기에, setcookie를 사용하여 쿠키

setcookie(name, value, expire, path, domain); 

을 설정하는 구문입니다, 을 수행해야합니다 세 개의 인수을 지정하십시오. 이 인수는 다음과 같습니다. 이름, 값, 만료 :

  1. 이름 : 쿠키의 이름입니다. 나중에이 이름을 사용하여 쿠키를 검색하므로 잊지 마십시오!
  2. 값 : 쿠키에 저장된 값입니다. 일반적인 값은 username (문자열)과 마지막 방문 (날짜)입니다.
  3. 만료 : 쿠키가 만료되어 삭제되는 날짜입니다. 이 만료 날짜를 설정하지 않으면 세션 쿠키로 취급되고 브라우저를 다시 시작할 때 제거됩니다.

참고 : - 쿠키가 업데이트되지 않고 다시 작성됩니다.

관련 문제