グローバル$_SESSION配列のセッション変数はスクリプト間で共有されていますか?$ _SESSION ['box']に値を配置したとしましょう。同時に実行されている別のスクリプトで、同じキーを持つ別の値を格納できますか?彼らは対立しますか?または、クライアントからのセッションIDに基づいて実際の変数値を管理しますか?
4 に答える
同じブラウザ呼び出しで同じセッション変数を設定する2ページがある場合、最後に処理された方が値を設定します。
同じ2ページにアクセスする2つの別々のブラウザ/ユーザーがいる場合、それらは一意の値を設定します。
セッションに保存されるデータは、クライアントごとに保存されます。IDは通常Cookieによって渡されます。
これは、2人のユーザーが同じセッションにアクセスすることはできないことを意味します。それはそれが存在する目的ではありません。
=>2人のユーザー/ブラウザ/クライアント=2つの異なるセッション=2つの異なる値。
同じuse/clientによって要求された2つのスクリプトについて質問し、ファイルベースのセッション(デフォルト)を使用している場合、そのユーザーのセッションファイルは最初に開始されたスクリプトによってロックされる必要があるため、2つのスクリプトはロックされません。同時にアクセスします。2つのスクリプトがセッションを同時に変更しようとすると、問題が発生する可能性があります。
=> 1人のユーザー、2つのリクエスト=1つが実行されます; 次に、2番目のものだけが実行されます; つまり、最初のデータセットによって設定されたデータが2番目のデータセットから表示されます。これは、最初のデータセットが終了した後にのみ実行されます。
私があなたを正しく理解しているなら、答えは後者です。セッション変数は、クライアントに割り当てられたセッションIDに従って管理されます。
「セッション」とは、ユーザー/ブラウザセッションを指します。新しいユーザー/ブラウザ、新しいセッション、新しい変数。
これはユーザーセッションごとに一意ですが、そのユーザーのセッション内でグローバルに使用できます。1つのスクリプトがそのキーで変数を設定し、同じユーザーによって実行されている2番目のスクリプトが同じキーで変数を設定すると、そのユーザーだけが上書きされます。