PHP setrawcookie()関数
定義と使用法
setrawcookie()関数はcookie値をURLエンコードせず、HTTPcookieを送信します。
cookieはサーバーがブラウザに送信する変数です。cookieは通常、サーバーがユーザーのコンピュータに埋め込む小さなテキストファイルです。コンピュータがブラウザを通じてページをリクエストするたびに、このcookieが送信されます。
cookieの名前が同じ名前の変数に指定されます。例えば、送信されるcookieの名前が"name"の場合、自動的にcookieの値を含む$userという名前の変数が作成されます。
cookieに値を割り当てる必要があります。他のすべての出力が送信される前に。
成功した場合、この関数はtrueを返し、失敗した場合、falseを返します。
文法
setcookie(name,value,expire,path,domain,secure)
パラメータ | 説明 |
---|---|
name | 必須。cookieの名前を指定します。 |
value | 必須。cookieの値を指定します。 |
expire | オプション。cookieの有効期限を指定します。 |
path | オプション。cookieのサーバーパスを指定します。 |
domain | オプション。cookieのドメインを指定します。 |
secure | オプション。cookieを安全なHTTPS接続を通じて転送するかどうかを指定します。 |
ヒントと注意
注意:「user」名のcookieの値にアクセスするには、$HTTP_COOKIE_VARS["user"] または $_COOKIE["user"]を使用できます。
注意:setrawcookie() と setcookie() ほぼ完全に同じですが、クライアントに送信する際にcookie値を自動的にURLエンコードすることはありません。
インスタンス
例1
cookieの設定と送信:
<?php $value = "my cookie value"; // 簡単なcookieを送信 setrawcookie("TestCookie",$value); ?> <html> <body> ... ...
<?php $value = "my cookie value"; // 24時間後に失効するcookieを送信 setrawcookie("TestCookie",$value, time()+3600*24); ?> <html> <body> ... ...
例2
cookie値の検索方法の異なる方法:
<html> <body> <?php // 出力する個別のcookie echo $_COOKIE["TestCookie"]; echo "<br />"; echo $HTTP_COOKIE_VARS["TestCookie"]; echo "<br />"; // すべてのコッキーを出力 print_r($_COOKIE); ?> </body> </html>
出力:
my cookie value my cookie value Array ([TestCookie] => my cookie value)
例 3
// 有効期限を過去の日付/時間に設定することで、コッキーを削除します:
<?php // 有効期限を1時間前に設定 setrawcookie("TestCookie", "", time() - 3600); ?> <html> <body> ... ...
例 4
cookie配列を作成します:
<?php setrawcookie("cookie[three]","cookiethree"); setrawcookie("cookie[two]","cookietwo"); setrawcookie("cookie[one]","cookieone"); // コッキーを出力(ページリロード後) if (isset($_COOKIE["cookie"])) { foreach ($_COOKIE["cookie"] as $name => $value) { echo "\$name : \$value <br />"; } } ?> <html> <body> ... ...
出力:
three : cookiethree two : cookietwo one : cookieone