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関数を使ったファイルパーミッション変更の基本的な使い方を紹介します。
CodeIgniter3.xのセッション管理設定と実装例
2023.04.05
CodeIgniter3.xでのセッション管理について、設定方法から実装までを詳しく解説します。セッションドライバやクッキー設定をカスタマイズする方法、セッションの発行・取得・破棄までの基本的な操作をコード例を交えて説明します。
URLエンコード・デコードの実装方法(Perl、PHP、JavaScript対応)
2009.12.02
URLに2バイト文字を含めるためのエンコード・デコード方法を、Perl、PHP、JavaScriptの3言語でまとめました。各言語のシンプルな関数を使った実装例を紹介し、文字列を正しく処理する方法を解説します。
perlとPHPで使える、フォーム入力のエラーチェックに役立つ正規表現集
2009.03.28
フォームからのデータ送信はWebアプリケーションの基礎ですが、ユーザーが入力する内容が想定通りであるかを確認するためのエラーチェックは重要です。この記事では、perlとPHPでフォームデータをバリデートするための正規表現を具体例とともに紹介します。