技術資料

perlとPHPでのCookie操作—書き込みと読み込みの基本

2009.11.15

error この記事は最終更新日から15年以上が経過しています。

Cookie の出力

Cookie は HTTPヘッダに出力することで、アクセスしたユーザーのブラウザ毎に書き込むことができます。

Cookie を書き込む際の書式は、

name=value; expires=Sun, 15-Nov-2009 23:59:59 GMT; domain=www.abe-tatsuya.com; path=/cgi-bin/; secure

という感じです。

name
必須。任意の「name」に対する値「value」を指定します。
例) loginid=abetatsuya
expires
Cookie の有効期限を指定します。省略するとブラウザを閉じるまでの間が有効期限になります。
また、過去の時刻を指定すると、該当 Cookie を削除します。
domain
Cookie を有効にするドメイン名を指定します。省略可。
path
Cookie を有効にするパスを指定します。省略すると、Cookie を書き込んだファイルのあるパスとなります。
secure
指定すると、SSL での通信時のみ Cookie をやり取りします。

この情報を、Set-Cookieヘッダとして出力すれば良いので、 perl の CGI の場合には、

print qq|Set-Cookie: loginid=abetatsuya; |;
print qq|expires=Sun, 15-Nov-2009 23:59:59 GMT; |;
print qq|domain=www.abe-tatsuya.com; path=/cgi-bin/; secure\n|;
print qq|Content-type: text/html; chearset=UTF-8\n|;
print qq|\n|;
#-- 以下、ページを出力

という感じにすれば良いわけです。

PHP の場合は、その名の通り setcookie っていう関数が用意されてるので、非常に楽チンですね。

setcookie("loginid","abetatsuya",time,"/cgi-bin",
 "www.abe-tatsuya.com",true);

こんな感じで書けばOKです。
詳細はPHP: setcookie - Manual等を参照。

複数の Cookie を書き込みたい場合は、複数回 Set-Cookie ヘッダを出力すれば大丈夫です。

Cookie の読み込み

書き込んだ Cookie を読み込みたい場合は、環境変数 HTTP_COOKIE を参照します。

perl であれば $ENV{'HTTP_COOKIE'} 内に「name=value」という形式で入っています。
複数の値が指定されている場合は「; 」区切りで「name1=value1; name2=value2」のように入ります。

「; 」で split した後にさらに「=」で split して、$COOKIE{'name'} = value のような連想配列に入れると使い易いかと思います。

PHP の場合は、$_COOKIE['name'] という変数内に、そのまま指定した値が入ってきます。

PHPとPerlでファイルパーミッションを変更する方法(chmod関数)

2024.11.16

PHPとPerlには、ファイルのパーミッションを変更するためのchmod関数が標準で用意されています。この記事では、PHPとPerlそれぞれのchmod関数を使ったファイルパーミッション変更の基本的な使い方を紹介します。

Perl PHP

CodeIgniter3.xのセッション管理設定と実装例

2023.04.05

CodeIgniter3.xでのセッション管理について、設定方法から実装までを詳しく解説します。セッションドライバやクッキー設定をカスタマイズする方法、セッションの発行・取得・破棄までの基本的な操作をコード例を交えて説明します。

CodeIgniter Cookie PHP

URLエンコード・デコードの実装方法(Perl、PHP、JavaScript対応)

2009.12.02

URLに2バイト文字を含めるためのエンコード・デコード方法を、Perl、PHP、JavaScriptの3言語でまとめました。各言語のシンプルな関数を使った実装例を紹介し、文字列を正しく処理する方法を解説します。

JavaScript Perl PHP

perlとPHPで使える、フォーム入力のエラーチェックに役立つ正規表現集

2009.03.28

フォームからのデータ送信はWebアプリケーションの基礎ですが、ユーザーが入力する内容が想定通りであるかを確認するためのエラーチェックは重要です。この記事では、perlとPHPでフォームデータをバリデートするための正規表現を具体例とともに紹介します。

Perl PHP 正規表現

阿部辰也へのお仕事の依頼・お問い合わせ

お名前 *必須
会社名
メールアドレス *必須
電話番号
URL
お問い合わせのきっかけ
お問い合わせの内容 *必須
個人情報の取り扱いについて *必須 プライバシーポリシーをご確認いただき、同意いただける場合は「同意する」にチェックをしてください。

keyboard_double_arrow_up
TOP