php の Cookie は他のプログラムと何ら変わりません。Cookie は、ユーザーのログインやパスワードの記憶など、セキュリティ要件の低い一部のアプリケーションでよく使用されます。 phpクッキーの勉強メモ。
PHP setcookie() 関数は、HTTP Cookie をクライアントに送信します。 Cookie は、サーバーによってブラウザに送信される変数です。 Cookie は通常、サーバーがユーザーのコンピュータに埋め込む小さなテキスト ファイルです。この Cookie は、コンピュータがブラウザを通じてページを要求するたびに送信されます。 Cookie の名前は、同じ名前の変数として指定されます。たとえば、送信される Cookie の名前が「name」の場合、Cookie の値を含む $user という名前の変数が自動的に作成されます。
Cookie は、他の出力が送信される前に割り当てる必要があります。この関数は、成功した場合は true を返し、そうでない場合は false を返します。
1 setcookie(名前、値、有効期限、パス、ドメイン、安全)
•名前は必須です。クッキーの名前を指定します。
•値は必須です。 Cookieの値を指定します。
•expire オプション。 Cookieの有効期間を指定します。
•パスはオプションです。 Cookie のサーバー パスを指定します。
•ドメインはオプションです。 Cookieのドメイン名を指定します。
•secure オプション。 Cookie が安全な HTTPS 接続を介して送信されるかどうかを指定します。
「user」という名前の Cookie の値には、$HTTP_COOKIE_VARS["user"] または $_COOKIE["user"] を介してアクセスできます。 Cookie を送信すると、Cookie の値は自動的に URL エンコードされます。 URL デコードは受信時に行われます。これが必要ない場合は、代わりに setrawcookie() を使用できます。
例、PHPの設定とCookieの取得
コードは次のとおりです | コードをコピー |
setcookie('mycookie','value'); //関数プロトタイプ: int setcookie(文字列名, 文字列値, int期限切れ, 文字列パス, 文字列ドメイン, int secure) |
Cookieを削除する
(1) name パラメーターのみを指定して setcookie() を呼び出します。
(2) 有効期限を time() または time-1;
コードは次のとおりです | コードをコピー |
setcookie('mycookie'); または setcookie('mycookie','') または setcookie("mycookie",false);
//setcookie('mycookie','',time()-3600); |
コードをコピー | |
setcookie('mycookie','',time()-3600);
|
表現したい時、分、秒、月、日付、年を順番に mktime() に渡すだけです
mktime() は、1970 年 1 月 1 日からの合計秒数を返します。
Y2K 問題をシミュレーションする必要がある場合:
コードをコピー | |
$y2k = mktime(0,0,0,1,1,2000);
setcookie('名前','値',$y2k); |
コードは次のとおりです | コードをコピー |
$expire = time() + 86400 // 有効期間を 24 時間に設定します |
注:
Cookie を送信すると、Cookie の値は自動的に URL エンコードされます。 URL デコードは受信時に行われます。
これが必要ない場合は、代わりに setrawcookie() を使用できます。
例、ユーザーのログイン情報を保存するCookie
1. データベース接続設定ページ: connectvars.php
コードは次のとおりです | コードをコピー |
//データベースの場所 |
2. ログインページ: logIn.php
コードは次のとおりです | コードをコピー |
//データベースへの接続に関する関連情報を挿入します $error_msg = ""; if(!empty($user_username)&&!empty($user_password)){ & Lt;!-$ __Cookie ['user_id'] を使用すると、ユーザーがログインに失敗した場合、ログイン フォームが表示され、ユーザー名とパスワードを入力します-& gt; If(空($_COOKIE['user_id'])){ echo ' '.$error_msg.' ';?> |