次のシナリオを検討してください。
- サーバーには、parent.php と child.php の 2 つのページがあります。
- parent.php は、極秘情報を含むセッションを設定します
- 次に、parent.php が Ajax 経由で child.php を呼び出し、受け取った情報を処理します。
謎: child.php は、parent.php が要求した情報を提供するために、parent.php と同じセッション状態を持っている必要があります。
これは可能ですか?
各スクリプトの先頭で呼び出しsession_start()
、両方のスクリプトが同じドメインにあり、セッション Cookie がサブディレクトリに限定されていない限り$_SESSION
、最初のリクエストで設定した変数は 2 番目のリクエストにも存在します。
セッションは通常、Cookie の設定と認識によって割り当てられます。GET 変数も使用されることがありますが、GET 変数は URL に表示されるため、セキュリティ上の脅威が高いと見なされます。
PHP は、既存のセッションをいつ再利用するかに関して、特定のレベルの厳密さに設定できます。たとえば、次のものをいじることができます。
デフォルト設定はそれほど厳密ではありません。
すべての条件が満たされると、session_start() が呼び出されると、PHP は既存のセッションを自動的に再利用します。