TECH I.S.

PHP Cookie


Cookieとは?

Cookieは、多くの場合、ユーザーを識別するために使用されます。 Cookieは、サーバーがユーザーのコンピューターに埋め込む小さなファイルです。同じコンピューターがブラウザーでページを要求するたびに、Cookieも送信されます。 PHPを使用すると、Cookie値の作成と取得の両方を行うことができます。


PHPでCookieを作成する

Cookieはsetcookie()関数。

構文

<div>setcookie(<em>name, value, expire, path, domain, secure, httponly</em>);</div>

*name*パラメータだけが必要です。他のすべてのパラメーターはオプションです。


PHP Cookieの作成/取得

次の例では、値が「John Doe」の「user」という名前のCookieを作成します。Cookieは30日(86400 *30)後に期限切れになります。 「/」は、CookieがWebサイト全体で使用できることを意味します (そうでない場合は、好みのディレクトリを選択してください)。

次に、Cookie「user」の値を取得します (グローバル変数 $_COOKIE を使用)。また、isset()関数を使用してCookieが設定されているかどうかを確認します。:

<?php $cookie_name = "user"; $cookie_value = "John Doe"; setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day ?> <html> <body> <?php if(!isset($_COOKIE[$cookie_name])) {   echo "Cookie named '" . $cookie_name . "' is not set!"; } else {   echo "Cookie '" . $cookie_name . "' is set!<br>";   echo "Value is: " . $_COOKIE[$cookie_name]; } ?> </body> </html>

注:setcookie()関数は <html> タグの前に表示する必要があります。

注:Cookieの値は、Cookieの送信時に自動的にURLエンコードされ、受信時に自動的にデコードされます(URLエンコードを防ぐには、変わりにsetrawcookie()を使用します)。


Cookie値を変更する

Cookieを変更するには、setcookie()関数:

<?php $cookie_name = "user"; $cookie_value = "Alex Porter"; setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); ?> <html> <body> <?php if(!isset($_COOKIE[$cookie_name])) {   echo "Cookie named '" . $cookie_name . "' is not set!"; } else {   echo "Cookie '" . $cookie_name . "' is set!<br>";   echo "Value is: " . $_COOKIE[$cookie_name]; } ?> </body> </html>

Cookieを削除する

Cookieを削除するには、過去の有効期限を指定してsetcookie()関数を使用します:

<?php // set the expiration date to one hour ago setcookie("user", "", time() - 3600); ?> <html> <body> <?php echo "Cookie 'user' is deleted."; ?> </body> </html>

Cookieが有効になっているかどうかを確認する

次の例では、Cookieが有効かどうかを確認する小さなスクリプトを作成します。まず、テストCookie を作成してみます。setcookie()$_COOKIE 配列変数をカウントします。

<?php setcookie("test_cookie", "test", time() + 3600, '/'); ?> <html> <body> <?php if(count($_COOKIE) > 0) {   echo "Cookies are enabled."; } else {   echo "Cookies are disabled."; } ?> </body> </html>

完全なPHPネットワーク リファレンス

ネットワーク機能の完全なリファレンスについては、PHP ネットワーク リファレンスを参照して下さい。



プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細