ホームページ  >  記事  >  バックエンド開発  >  PHP の機能 セッション メカニズム 1 - Cookie の使用

PHP の機能 セッション メカニズム 1 - Cookie の使用

黄舟
黄舟オリジナル
2017-02-04 09:38:341281ブラウズ

PHP は HTTP Cookie を透過的にサポートします。 Cookie は、ユーザーを追跡および識別するためにリモート ブラウザーにデータを保存するメカニズムです。 Cookie は、setcookie() 関数または setrawcookie() 関数を使用して設定できます。 Cookie は HTTP ヘッダーの一部であるため、header() 関数の制限と同様に、他の情報がブラウザーに出力される前に setcookie() 関数を呼び出す必要があります。出力バッファリング関数を使用すると、すべての Cookie またはその他の HTTP ヘッダーが必要に応じて設定されるまで、スクリプトの出力を遅らせることができます。
例 #1 setcookie() の使用例

<?php  
$value = &#39;something from somewhere&#39;;  
//设置Cookie  
setcookie("TestCookie", $value);  
setcookie("TestCookie", $value, time()+3600); /* expire in 1 hour */  
setcookie("TestCookie", $value, time()+3600, "/~rasmus/", "example.com", 1);  
  
//删除Cookie  
setcookie ("TestCookie", "", time() - 3600);  
setcookie ("TestCookie", "", time() - 3600, "/~rasmus/", "example.com", 1);  
?>

variables_order に「C」が含まれている場合、クライアントから送信された Cookie は自動的に $_COOKIE 自動グローバル配列に組み込まれます。 Cookie 変数に複数の値を設定する場合は、Cookie 名の後に [] 記号を追加する必要があります。

<?php  
// set the cookies  
setcookie("cookie[three]", "cookiethree");  
setcookie("cookie[two]", "cookietwo");  
setcookie("cookie[one]", "cookieone");  
  
// after the page reloads, print them out  
if (isset($_COOKIE[&#39;cookie&#39;])) {  
    foreach ($_COOKIE[&#39;cookie&#39;] as $name => $value) {  
        $name = htmlspecialchars($name);  
        $value = htmlspecialchars($value);  
        echo "$name : $value <br />\n";  
    }  
}  
?>

register_globals の設定により、Cookie から通常の PHP 変数を作成することができます。ただし、このオプションは通常、セキュリティ上の理由からオフになっているため、この機能に依存することはお勧めできません。 PHP の以前のバージョンでは、track_vars 構成オプションがオンになっていると (このオプションは PHP 4.0.3 以降常にオンになっています)、$HTTP_COOKIE_VARS も設定されていました。

<?php  
// Print an individual cookie  
echo $_COOKIE["TestCookie"];  
echo $HTTP_COOKIE_VARS["TestCookie"];  
  
// Another way to debug/test is to view all cookies  
print_r($_COOKIE);  
?>

上記は、PHP 機能のセッション メカニズム 1 - Cookie の使用の内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。


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