リクエストとレスポンスのアクティビティを正しく完了するには、Web ページに一時的または永続的にデータを保存する必要があります。 ほとんどすべての Web 開発言語には、クライアントとサーバーの情報を保存するためのセッションと Cookie があり、シームレスで安全なエクスペリエンスを提供します。 この記事では、PHP セッションと Cookie について詳しく説明します。
クッキーとセッションとは何ですか?
Cookie は、クライアントのコンピューターに保存される小さなファイルであり、 include ユーザーに関する情報、 要求、答え、およびサーバー。 それらはリクエストと一緒にサーバーに配信され、サーバーがユーザーを識別できるようにします。 ユーザーは自分でビルドすることもできます クッキー 後でアクセスできるようにデータを保存します。 セッションは、ログイン情報、アカウントの詳細、その他のフォーム エントリなど、訪問中の特定の訪問者に関連するデータを保存するオブジェクトです。
PHPでクッキーを作成する方法
PHPの setcookie()
メソッドを使用して、新しい Cookie を作成します。 PHP で Cookie を作成するための一般的な構文は次のとおりです。
setcookie(name, value, expire, path, domain, secure, httponly);
最初のパラメータ、 name
、が唯一必要なものです。 残りのパラメーターはオプションです。 クッキーを作成する例を次に示します。
setcookie("my_first_cookie","It contains a string");
Cookie とその値を取得する方法
PHP は Cookie を $_COOKIE に保存します 全体的な 変数。 Cookie とその値を取得するには、Cookie の名前をグローバル変数に指定するだけです。 グローバル変数を使用して Cookie を取得する例を次に示します。
$_COOKIE["my_first_cookie"] // will return "It contains a string"
クッキーを削除する方法は?
Cookie は、一定期間後に期限切れになるように構成できます。その後、Cookie はすぐに破棄されます。 有効期限が XNUMX 日の Cookie を生成する例を次に示します。 時間:
setcookie("my_first_cookie","It contains a string", time() + (86400), "/"); // 86400 = 1 day
Cookie の有効期限は秒単位でなければならないため、 時間() メソッドを使用して、現在の時刻を返し、86400 日の秒数 (XNUMX) を追加します。
クッキーを更新するには?
どちらも同じ セットクッキー() 関数を使用して Cookie を更新できます。 単純に呼び出す function Cookie の名前を使用して、新しい引数を設定します。 Cookie の有効期限を XNUMX 日に変更する例を次に示します。
setcookie("my_first_cookie","It contains a string", time() + (86400 * 2), "/"); // 86400 = 1 day
Cookie は自動的に URL エンコード リクエストで送信され、受信時にデコードされます。 setrawcookie() 関数を使用して、これを無効にすることができます。
有効期限を過去の日付に更新することで、Cookie を削除することもできます。 Cookie をすぐに削除する例を次に示します。
setcookie("my_first_cookie","", time() - 3600);
お使いのブラウザは Cookie を許可していますか?
ブラウザで Cookie が有効になっているかどうかを確認する簡単な方法は次のとおりです。
if(count($_COOKIE) > 0) {
echo "Cookies are enabled.";
} else {
echo "Cookies are disabled.";
}
PHP セッションについて
HTTP プロトコルは、Web ページでのユーザーのステータスを保持しません。 セッションズ 複数の Web ページ間で変数を永続化してアクセスするという課題を解決するために使用されます。 このパートでは、PHP セッションを使用して値を保存およびアクセスする方法を見ていきます。
セッションの開始
PHP では、セッションを使用します。 start() メソッドを使用してセッションを開始します。 このメソッドは、新しいセッションを開始するか、既存のセッションに戻ります。 出力がブラウザに送信される前に、この関数を呼び出す必要があることに注意してください。 そうしないと、エラーが発生します。 セッションを開始する方法の例を次に示します。
<?php
session_start();
データの保存
セッションを開始した後、$_SESSION グローバル変数を使用してセッションにデータを保存できます。 データはキーと値のペアとして保存されます。キーは 変数 名前と値は記録されるデータです。 セッション内のデータ ストレージの例を次に示します。
<?php
session_start();
$_SESSION['username'] = "JohnDoe";
データの取得
セッションからデータを取得するには、 $_SESSION
グローバル変数を呼び出して、取得するデータのキーにアクセスします。 セッションからデータを取得する例を次に示します。
<?php
session_start();
echo $_SESSION['username']; // will output "JohnDoe"
データの削除
セッションからデータを削除するには、削除するデータのキーを設定解除できます。 セッションからデータを削除する例を次に示します。
<?php
session_start();
unset($_SESSION['username']);
セッションの破棄
セッションを破棄するには、 session_destroy()
関数。 この関数は、セッションに保存されているすべてのデータを削除し、セッションを終了します。 セッションを破棄する例を次に示します。
<?php
session_start();
session_destroy();
Q&A
PHPでのCookieの目的は何ですか?
Cookie は、クライアントのコンピューターに保存される小さなファイルで、ユーザー、要求、応答、およびサーバーに関連する情報を含めることができます。 それらはリクエストとともにサーバーに送信され、サーバーがユーザーを識別できるようにします。
PHPでCookieを作成するにはどうすればよいですか?
PHPの setcookie()
メソッドを使用して、新しい Cookie を作成します。 最初のパラメータ、 name
、唯一の必須パラメーターであり、残りのパラメーターはオプションです。
PHPでCookieの値を取得するにはどうすればよいですか?
Cookie は、PHP の $_COOKIE グローバル変数に格納されます。 Cookie とその値を取得するには、Cookie の名前をグローバル変数に渡すだけです。
PHPでCookieを削除するにはどうすればよいですか?
Cookie の有効期限を設定できます。有効期限が過ぎると、Cookie は自動的に削除されます。 Cookie の有効期限を過去の日付に更新して、すぐに削除することもできます。
PHPでのセッションの目的は何ですか?
セッションは、複数の Web ページ間で値を保持してアクセスするために使用されます。
演習:
- セッションとクッキーの違いは何ですか?
- どのようにセッションを開始しますか?
- セッション変数をどのように設定しますか?
- セッションをどのように破棄しますか?
- どのようにクッキーを設定しますか?
- Cookie の値を取得するにはどうすればよいですか?
- クッキーの設定を解除するにはどうすればよいですか?
回答:
- セッションはサーバーにデータを保存する方法であり、Cookie はクライアントのコンピューターにデータを保存する方法です。 通常、セッションは認証と認可に使用され、Cookie はユーザー設定と追跡に使用されます。
- PHP でセッションを開始するには、session_start() 関数を使用します。
- PHP でセッション変数を設定するには、次のように $_SESSION スーパーグローバル配列を使用します。 $_SESSION['variable_name'] = 'value';
- PHP でセッションを破棄するには、session_destroy() 関数を使用します。
- PHP で Cookie を設定するには、次のように setcookie() 関数を使用します。 setcookie('cookie_name', 'value', time() + (86400 * 30), '/');
- PHP で Cookie の値を取得するには、次のように $_COOKIE スーパーグローバル配列を使用します。
- PHP で Cookie の設定を解除するには、次のように、過去の有効期限で setcookie() 関数を使用します。