2016-09-08 5 views
0

쿠키 값을 변경하는 데 큰 문제가 있습니다. 쿠키를 설정하고 값을 설정하려면 buttom 함수가 있습니다 (존재한다면)/만들 수 있습니다 (존재하는 경우).PHP에서 쿠키 값이 변경되지 않습니다.

함수를 호출 할 때 세션 값이 변경되었지만 쿠키 데이터가 변경되지 않았습니다.

function setToken($time = 0) { 
    global $value; 
    if (!isset($_COOKIE["name"])) { 
    setcookie("name", $value, time() + $time); 
    } else { 
    $_COOKIE["name"] = $value; 
    } 
    $_SESSION["name"] = $value; 
} 

무엇이 잘못 되었나요 & & 어떻게해야합니까거야 ??? 수동에서

답변

0

:

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

업데이트 : 귀하의 코드는 나를 위해 작동합니다. 그러나 함수에 양의 정수를 부여해야합니다. setToken(). 그렇지 않으면 쿠키가 즉시 만료되고 표시되지 않습니다!

당신이 쿠키 값을 변경하려면 코드를 변경하려면 : 실제로 브라우저에서 쿠키를 설정하지 않는 $_COOKIE 지구로 지정

function setToken($time = 0) { 
    global $value; 
    if (!isset($_COOKIE["name"])) { 
    setcookie("name", $value, time() + $time); // inital set 
    } else { 
    setcookie("name", $value); // change value 
    } 
    $_SESSION["name"] = $value; 
} 
+0

페이지를 여러 번 읽은 후 확인했지만 일이 발생하지 않았으며 값이 첫 번째였습니다. –

+0

@ 모하마드 라하는 내 대답 –

+0

에 대한 업데이트를 추가하여 관심을 가져 주셔서 감사합니다. 나는 그것을 바꾸고 그 문제를 해결한다. 하지만 아직 변경된 쿠키가 없습니다 –

0

합니다. 항상 setcookie으로 전화하십시오.

또한 쿠키를 설정하기 전에 브라우저에 콘텐츠가 전송되지 않았는지 확인하십시오. 쿠키는 브라우저에 전송 된 헤더에 설정되므로 내용이 플러시되기 시작한 후에 설정할 수 없습니다.

+0

자세한 내용을 참조하십시오. –

관련 문제