SESSION と COOKIE の違い:
セッションは、一意の SESSION_ID を受信した後、この ID に基づいて関連データを取得し、その情報をクライアントに渡します。 (ブラウザサーバー)
Cookie はすべての情報をテキスト形式でローカルファイルに保存し、クライアント (ブラウザ) によって管理および維持されます。
セッションデータはサーバー側、つまりリモートに保存されます。クライアントはデータを処理できません。Cookie はクライアントにローカルに保存されるため、セッションのセキュリティが高くなります。
PHP5 以降、セッションは $_SESSION[session_id] を通じてグローバル変数に設定されます。ページが SESSION セッションを開始すると、サーバー内で一意の ID を持つ SESSION が生成され、この SESSION は終了するまで有効になります。 Web ページが閉じられるか、ライフサイクルが終了すると、セッションはサーバーから自動的にログアウトされます。
セッションを作成するには、次の 4 つの手順が必要です。 ) セッションを開始します。 メソッドは 2 つあります: bool session_star(); boolean session_register(string name);
b) セッション変数が開始されると、すべてが保存されます。 $_SESSION 配列。配列 $_SESSION を使用してセッション変数を作成するのは非常に簡単です。変数を配列に追加するだけです。
c) セッションを使用します。
一般的な操作: session_id に対応する SESSION が存在するかどうかを確認します。存在しない場合は作成します。存在する場合は、$_SESSION[session_id] を使用します。
unset($_SESSION[session_id]);// セッションを 1 つ削除します。 > unset([$_SESSION]);//セッション全体を削除します。セッション関数全体が無効になり、復元できません。
$__SESSION=array() ;//全体を削除します。回復可能です。 ();// 現在のセッションを終了します。
SESSION のライフ サイクル:
1. コントロール セッションのライフ サイクル メソッド:
1. 前提条件:クライアントは COOKIE をサポートしています!
セッションを通じて完了しました。
void session_set_cookie_params(int lifetime[,string path][,string domain ][,bool secure]); ,string value] [,intexpired] [,string path] [,sting domain] [,secure]);
b>By Cookie が完了しました。
2. クライアントは COOKIE をサポートしていません。 > クライアントが Cookie をサポートしないと、ページ間で SESSION を渡すことができなくなります。解決策: a>。ログインする前にユーザーに Cookie を有効にするように求めます。
b> を使用して渡します。 SESSION_ID。
。php.ini ファイルで session.use_trans_sid=1 を設定するか、コンパイル時に -enable-trans-sid をオンにします。
を介して SESSION_ID を渡します。 >
サーバー上のセッション パフォーマンスの最適化:
サーバーでは、すべてのユーザー セッションが一時ディレクトリに保存されると、サーバーのセキュリティと効率が低下します。
解決策: SESSION をサーバー上のデータベースまたは一時ファイルに保存します。
一時ファイル:
文字列 session_save_path (文字列パス)
データベース:
セッションが一時ファイルに保存される場合、Web サイトがビューの数が多い場合、セッションのクエリ効率が非常に低くなります。
bool session_set_save_handler(string open, string close, string read, string destroy, string gc) / / 関数を使用して session_id をデータベースに保存します。
SESSION キャッシュ:
次のページの一部の情報をキャッシュします。クライアントによって指定されたフォルダーに保存されます。有効期限を設定することができます(初回アクセス時は保存されています) この有効期限内であれば、再度アクセスする際にキャッシュから直接コンテンツを読み込むことができるため、ページ閲覧の効率が向上します。 > String session_cache_limiter(string cache_limiter); // キャッシュ関数。
COOKIE の導入:
Cookie は、リモート クライアントがデータを保存し、ユーザーを追跡および識別するためのメカニズムです。これは、サーバーがローカル ユーザーのデータをテキスト ファイル形式で一時的に保存するテキスト ファイルです。 txt"
COOKIE 共通関数:
a) 訪問者に関する特定の情報を記録します。 b) ページ間で変数を渡します。 c) 次回の訪問の速度を向上させるために、ページのコンテンツを Cookie に保存します。
a) すべてのブラウザが Cookie をサポートしているわけではありません。 🎜>b) データはクリア テキストでローカルに保存されるため、機密情報や暗号化されていない情報には適していません。
c) さまざまな種類のブラウザでは、Cookie ファイルのサイズと数に制限があります。たとえば、Cookie ファイルは最大 300 個までです。各ドメイン名は最大 20 個の Cookie ファイルを保存できます。この数が表示を超えると、ランダムに削除されます。
bool setcookie(string name [,文字列値] [,int期限切れ] [,文字列パス] [,stingドメイン] [,secure]);
COOKIEの読み取り:
$_COOKIE[];
COOKIEの削除:
a)。 setcookie("id", "",time()-1);//値は空で、有効な時刻は現在時刻より小さいです。0 は COOKIE を直接削除することを意味します。
b)。クライアント ファイルで一時ストレージ Cookie を見つけます。
setcookie() 関数の後、Cookie がデータを取得できるようになる前に更新を実行する必要があります。
私の個人的な理解では、セッションと Cookie が送信されると考えています。ページが表示される前に、対応するデータを取得する必要があります。そのため、通常、http:// または https:// を取得するときに、setcookie() を実行する必要があります。 cookie はローカルにのみ保存されますが、アドレスはありません。cookie を取得します。そのため、値を取得できるように、サーバーに cookie をアドレス プロトコルに取得させてクライアントに送信させる必要があります。
上記の session_star()、setcookie() の直前に、HTML ページは出力されません... したがって、Cookie またはセッションが最初に認識されると、誰もそれを 2 番目に認識しようとはしません。