>백엔드 개발 >PHP 튜토리얼 >계약 킬러 PHP 쿠키 범위 – 현재 페이지에서 쿠키를 사용하지 마십시오

계약 킬러 PHP 쿠키 범위 – 현재 페이지에서 쿠키를 사용하지 마십시오

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB원래의
2016-07-29 08:39:431081검색

로컬 테스트에서는 전혀 문제가 없었기 때문에 원격 서버(Publish 서버가 아닌, Publish 서버에서 직접 변경하지 않는 것이 좋습니다)로 ssh 접속하여 Breakpoint 테스트를 진행한 결과 최종적으로 이 함수는 생성자에서 로그인 확인을 호출합니다. 인증이 통과되지 않아서 뛰어내렸습니다.
프로그램을 통해 PHP 쿠키의 사용을 살펴보겠습니다. 아마도 위 문단을 읽은 후에도 여전히 궁금하실 것입니다. 이것과 쿠키 사이의 연관성은 무엇입니까?
MVC 구조에서 일반적으로 사용되는 로그인 확인에 대해 이야기해 보겠습니다.
컨트롤러의 생성자에는 로그인 확인이 필요한 모듈인지 여부에 따라 특별히 로그인을 확인하는 기능이 추가됩니다.
버그 프로그램: setcookie 이후 현재 페이지에서 로그인 확인을 거칩니다.
버그 원인: 현재 페이지에서는 이 페이지에 설정된 쿠키를 얻을 수 없습니다
프로그램으로 테스트해 보겠습니다.
여기 쿠키를 설정하는 기능이 있습니다. 지금은 사용 중입니다. 하하.

코드 복사 코드는 다음과 같습니다.


function dsetcookie($var, $value, $life = 0) {
전역 $_cookie_domain, $_cookie_path, $_timestamp, $_SERVER
setcookie($var, escape($value), $life ? $_timestamp $life : 0,
$_cookie_path, $_cookie_domain, $ _SERVER['SERVER_PORT '] == 443 ? 1 : 0)
}


그런 다음 다음 내용으로 test1.php를 만듭니다.

코드 복사 코드는 다음과 같습니다.


$td = date('d')
dsetcookie("testvar",$ td,30*24*60* 60);
print_r($_COOKIE);
?>


는 언제 빈 배열을 얻을 수 있나요? 이 $_COOKIE 변수를 처음 사용하는 경우는 어떻습니까?
이제 test1.php 프로그램을 약간 변경해 보겠습니다.

코드 복사 코드는 다음과 같습니다.

< ;? php
$td = date('d');
dsetcookie("testvar",$td,30*24*60*60)
print_r($_COOKIE);// 그렇지 않으면 헤더 경고가 보고됩니다.
$location = "test2.php"
header("Location: ".$location)?>
그런 다음 test2.php에 $_COOKIE를 표시하려면


코드를 복사하세요

코드는 다음과 같습니다. print_r ($_COOKIE)

?>



여기서 다음을 얻습니다:
배열
(

[testvar] =10
)
여기에서 이 쿠키 값을 얻어 사용할 수 있습니다.
왜요?
이것을 이해하실 수 있습니다. 현재 설정된 쿠키는 즉시 적용되지 않으며 다음 페이지까지 표시되지 않습니다.
이는 쿠키가 서버에서 클라이언트의 브라우저로 전달되는 페이지에 있기 때문입니다. 다음 페이지에서 브라우저가
클라이언트 컴퓨터에서 쿠키를 꺼내 서버로 다시 보낼 수 있는 이유를 설정합니다.

여기에 먼저 작성하세요:


다음 링크를 통해 COOKIE에 대해 자세히 알아볼 수 있습니다.

PHP COOKIE 및 해당 URL

Netscape의 공식 쿠키 원래 정의: http://www.netscape.com/newsref/std/cookie_spec.html

위 내용은 계약 킬러 PHP 쿠키의 범위를 소개합니다. 계약 킬러 콘텐츠를 포함하여 현재 페이지에서는 쿠키를 사용하지 마세요. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.