>백엔드 개발 >PHP 튜토리얼 >PHP에서 쿠키를 사용하여 두 번째 수준 도메인 이름에 액세스 가능한 작업을 구현하는 방법_php 팁

PHP에서 쿠키를 사용하여 두 번째 수준 도메인 이름에 액세스 가능한 작업을 구현하는 방법_php 팁

WBOY
WBOY원래의
2016-05-16 20:32:16965검색

이 기사의 예에서는 두 번째 수준 도메인 이름의 액세스 가능한 작업을 실현하기 위해 PHP에서 쿠키를 사용하는 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 방법은 다음과 같습니다.

쿠키는 일부 애플리케이션에서 매우 일반적으로 사용됩니다. 기본 도메인 이름에 바인딩된 쿠키에 동시에 액세스할 수 있어야 하는 다중 레벨 도메인 이름이 있다고 가정해 보겠습니다. 다음은 setcookie 사용 방법에 대한 자세한 소개입니다. 기본 도메인 이름에 성공적으로 액세스할 수 있는 보조 도메인 이름을 얻으려면 PHP에서 쿠키 값 방법을 사용하세요.

때때로 두 도메인 이름이 서로 다른 서버에 있을 수 있지만, 보조 도메인 이름이 기본 도메인 이름의 쿠키에 성공적으로 액세스할 수 있고 기본 도메인 이름이 보조 도메인 이름의 쿠키에 성공적으로 액세스할 수 있기를 바랍니다. www.jb51.net 및 blog.jb51.net

에 대한 쿠키에 액세스할 수 있기를 바랍니다.

다음은 여러분이 자주 듣게 될 글로벌 쿠키 설정 방법 3가지를 소개합니다.

첫 번째 예제 코드는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.
setcookie("jb51",$s,time() 3600*12 ,'/','*.jb51.net');

*번은 쿠키 설정에 실패했습니다

두 번째 예제 코드는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.
setcookie("jb51",$s,time() 3600*12 ,'/','.jb51.net');

ss.jb51.net에서 올바르게 읽을 수 있도록 글로벌 쿠키를 성공적으로 설정했습니다

세 번째 예제 코드는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.
setcookie("jb51",$s,time() 3600*12 ,'/','jb51.net');

글로벌 쿠키가 성공적으로 설정되었으며 ss.jb51.net에서 올바르게 읽을 수 있습니다

이 방법에 대한 이해는 jb51.net만 읽을 수 있다는 것입니다. FireFox에서는 테스트가 성공하고 IE에서는 테스트가 성공합니다.

코드 복사 코드는 다음과 같습니다.
setcookie("jb51",$s,time() 3600*12 ,'/','ss.jb51.net');

ss.jb51.net 도메인 이름 아래에서만 올바르게 읽을 수 있는 쿠키를 설정합니다. 인터넷에서 말하는 표준은 .jb51.net이며, *도 있습니다(아래 내용은 완전히 틀린 내용입니다). 좋은 PHP 추천 쿠키 작업 클래스는 쿠키를 설정하고, 쿠키를 얻고, 쿠키를 삭제할 수 있습니다.

코드 복사 코드는 다음과 같습니다.
/** 
* PHP 쿠키类 
* 클래스:PHP_COOKIE
*/ 
클래스 PHP_COOKIE  
{  
  var $_name  = "";  
  var $_val   = 배열();  
  var $_expires;  
  var $_dir   = '/';// 모든 디렉토리  
  var $_site  = ''; 
  함수 PHP_COOKIE($cname, $cexpires="", $cdir="/", $csite="")  
  {  
$this->_name=$cname; 
if($cexpires){  
  $this->_expires=$cexpires;  
}  
그렇지 않으면{  
  $this->_expires=time() 60*60*24*30*12; // ~12개월  

$this->_dir=$cdir;  
$this->_site=$csite;  
$this->_val=배열();  
$this->추출();  
  } 
  함수 추출($cname="")  
  {  
if(!isset($_COOKIE)){  
  글로벌 $_COOKIE;  
  $_COOKIE=$GLOBALS["HTTP_COOKIE_VARS"];  

if(emptyempty($cname) && isset($this)){  
  $cname=$this->_name;  
}  
 
if(!emptyempty($_COOKIE[$cname])){ 
  if(get_magic_quotes_gpc()){  
$_COOKIE[$cname]=슬래시 제거($_COOKIE[$cname]);  
  }  
  $arr=unserialize($_COOKIE[$cname]); 
  if($arr!==false && is_array($arr)){ 
foreach($arr as $var => $val){ 
  $_COOKIE[$var]=$val; 
  if(isset($GLOBALS["PHP_SELF"])){  
  $GLOBALS[$var]=$val;  
  }  
}  
  } 
  if(isset($this)) $this->_val=$arr; 
}  
// 전체局范围内移除쿠키  
unset($_COOKIE[$cname]);  
unset($GLOBALS[$cname]);  

함수 put($var, $value)  
{  
$_COOKIE[$var]=$값;  
$this->_val["$var"]=$value; 
if(isset($GLOBALS["PHP_SELF"])){  
  $GLOBALS[$var]=$값;  

if(emptyempty($value)){  
  unset($this->_val[$var]);  

  } 
  함수 클리어()  
  {  
$this->_val=배열();  
  } 
  함수 집합()  
  {  
if(emptyempty($this->_val)){  
  $cookie_val="";  
}   
그렇지 않으면 {  
  $cookie_val=serialize($this->_val);  
}  
 
if(strlen($cookie_val)>4*1024){  
  Trigger_error("$this->_name 쿠키가 최대 쿠키 크기에 대한 사양을 초과합니다.  일부 데이터가 손실될 수 있습니다.", E_USER_WARNING);  
}  
setcookie("$this->_name", $cookie_val, $this->_expires, $this->_dir, $this->_site);  
  }  
}  
?>

希望本文所述对大家的PHP程序设计有所帮助。

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