Cookie の場合、ユーザーがログインしているかどうかを確認したいと仮定すると、ユーザー名とパスワード (おそらく md5 暗号化文字列) を Cookie に保存し、ページがリクエストされるたびにそれを確認する必要があります。ユーザー名とパスワードがデータベースに保存されている場合、毎回データベース クエリを実行する必要があり、データベースに不要な負担がかかります。一つだけの検証はできないからです。なぜ?クライアントの Cookie 内の情報が変更される可能性があるためです。ユーザーがログインしているかどうかを示す $admin 変数を保存する場合、$admin が true の場合はログインしていることを意味し、false の場合はログインしていないことを意味します。初めて検証に合格した後、$admin等しい true は Cookie に保存され、次回検証する必要はありません。はい、そうですか?違います。誰かが true の値を持つ $admin 変数を偽造した場合、その人はすぐに管理者権限を取得することを意味するのではありませんか?非常に危険です。
セッションはサーバー側に保存されているため、リモート ユーザーはセッション ファイルの内容を変更できません。そのため、最初の検証に合格した後は、$admin 変数を保存するだけで済みます。後で、$admin 値を true に設定します。値が true でない場合は、ログイン インターフェイスに移動します。これにより、多くのデータベース操作が軽減されます。また、Cookie を検証するために毎回パスワードを渡すという危険性を軽減できます (SSL セキュリティ プロトコルを使用しない場合、セッション検証は 1 回だけ行う必要があります)。パスワードが md5 で暗号化されている場合でも、簡単に傍受できます。
もちろん、Session を使用することには、簡単な制御、ユーザー定義のストレージ (データベースに保存される) など、多くの利点があります。ここではこれ以上多くは言いません。
php.iniでSessionを設定する必要があるのでしょうか?誰もが php.ini を変更できるわけではないため、通常は必要ありません。セッションのデフォルトの保存パスは、後で説明するようにカスタマイズして独自のフォルダーに保存できます。
まずはセッションの作成方法を紹介します。本当に、とてもシンプルです。
セッションを開始し、$admin 変数を作成します: