최근 웹사이트용 PHP 백엔드를 작성할 때 setcookie 함수가 항상 정상적으로 쿠키를 설정하지 못하는 것을 발견했습니다. var_dump()를 통해 함수의 반환 값이 false인 것을 발견했습니다. 설정에 실패했습니다. Google 검색 결과 setcookie 오류가 발생할 수 있음을 발견했습니다.
1. 브라우저가 쿠키를 비활성화했습니다. 확인할 필요가 없습니다. 비활성화되지 않은 것이 확실합니다.
2. PHP의 setcookie()를 사용하여 쿠키를 만드는 것은 PHP에서 세션을 여는 session_start()와 동일합니다. setcookie() 이전에는 HTTP 헤더 출력이 있을 수 없습니다. 코드를 확인해 보니 다음 코드
var_dump($qOpenId); setcookie('qOpenId',$openid,time() + 30 * 24 * 3600,'/');
가 var_dump($OpenId) 라인에 단호하게 코멘트를 달고 있는 것을 발견했고, 테스트에 성공했습니다.
개인적으로는 setcookie가 http 헤더에 내용을 직접 설정해야 한다고 생각하므로 앞에 헤더 출력이 없고 var_dump도 echo도 나올 수 없습니다.
관련 기사: