ホームページ  >  記事  >  バックエンド開発  >  PHP_PHP チュートリアルで Cookie を使用してセカンダリ ドメイン名のアクセシビリティを実装する方法の例

PHP_PHP チュートリアルで Cookie を使用してセカンダリ ドメイン名のアクセシビリティを実装する方法の例

WBOY
WBOYオリジナル
2016-07-13 16:57:36858ブラウズ

Cookie は一部のアプリケーションで非常に一般的に使用されており、メインのドメイン名にバインドされている Cookie に同時にアクセスできる必要があります。PHP で setcookie を使用する方法を紹介します。セカンダリ ドメイン名がメイン ドメイン名の Cookie 値に正常にアクセスできることを確認します。

2 つのドメイン名が異なるサーバー上に存在する場合もありますが、セカンダリ ドメイン名がプライマリ ドメイン名の Cookie に正常にアクセスでき、プライマリ ドメイン名がセカンダリ ドメイン名の Cookie に正常にアクセスできることを願っています。たとえば、bbs.hzhuti.com は www.hzhuti.com と blog.hzhuti.com の Cookie へのアクセスを望んでいます
よく聞くグローバルCookieの設定方法を3つご紹介します

コードは次のとおりです コードをコピー

setcookie("hzhuti",$s,time()+3600*12,'/','*.hzhuti.com');

* 番号は Cookie を正常に設定できません

コードは次のとおりです コードをコピー

setcookie("hzhuti",$s,time()+3600*12,'/','.hzhuti.com');

グローバル Cookie が正常に設定され、ss.hzhuti.com で正しく読み取れるようになりました

コードは次のとおりです コードをコピー

setcookie("hzhuti",$s,time()+3600*12,'/','hzhuti.com');

グローバル Cookie が正常に設定され、ss.hzhuti.com で正しく読み取れるようになりました

このようにして、Yue Xiaosheng は、hzhuti.com だけがそれを読むことができることを理解しました。 Yue Xiaosheng は FireFox でのテストに成功しました。 IEで成功しました

コードは次のとおりです コードをコピー

setcookie("hzhuti",$s,time()+3600*12,'/','ss.hzhuti.com');

ss.hzhuti.com ドメイン名でのみ正しく読み取れる Cookie を設定します

インターネット上の標準的なステートメントは .hzhuti.com です。

*の記述もあります(この記述は完全に間違っています…)

以下は、Cookie の設定、Cookie の取得、Cookie の削除を行うことができる、優れた PHP Cookie 操作クラスを推奨します。

http://www.bkjia.com/PHPjc/631507.html
コードは次のとおりです コードをコピー

/**
* 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=array(); $this->抽出(); }


関数抽出($cname="")
{
if(!isset($_COOKIE)){
グローバル $_COOKIE

$_COOKIE=$GLOBALS["HTTP_COOKIE_VARS"]

}

if(empty($cname) && isset($this)){
$cname=$this->_name
}

if(!empty($_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;

}
// Cookie をグローバルに削除します
unset($_COOKIE[$cname]); unset($GLOBALS[$cname]); }

関数 put($var, $value)

{

$_COOKIE[$var]=$value
$this->_val["$var"]=$value;

if(isset($GLOBALS["PHP_SELF"])){
$GLOBALS[$var]=$値

}


if(空($値)){
unset($this->_val[$var]); }

}


関数clear()
{

$this->_val=array(); }


関数set()
{

if(empty($this->_val)){

$cookie_val=""; }

他 {

$cookie_val=serialize($this->_val); }

if(strlen($cookie_val)>4*1024){
trigger_error("Cookie $this->_name が最大 Cookie サイズの仕様を超えています。一部のデータが失われる可能性があります", E_USER_WARNING); }

setcookie("$this->_name", $cookie_val, $this->_expires, $this->_dir, $this->_site); }

}
?>










http://www.bkjia.com/PHPjc/631507.html

www.bkjia.com

tru​​e
技術記事 Cookie は一部のアプリケーションで非常に一般的に使用されており、メイン ドメイン名にバインドされている Cookie に同時にアクセスできる必要があるマルチレベル ドメイン名を持っています。setcookie を使用してセカンダリ ドメイン名を実装する方法を紹介します。 PHP のドメイン名...

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。