ホームページ  >  記事  >  バックエンド開発  >  セッションについて非常に単純な質問をしているのですが、どこかで行き詰まっているかもしれません。

セッションについて非常に単純な質問をしているのですが、どこかで行き詰まっているかもしれません。

WBOY
WBOYオリジナル
2016-06-23 13:34:42972ブラウズ

PHP は、ユーザーがログインしているかどうかを判断するためにセッション値を使用します。次のような例をよく見かけます:
フォームがあり、ユーザー名とパスワードを入力し、検証が成功した場合は PHP ページで検証します (つまり、データベースから検索して、ユーザー名とパスワードが一致するかどうかを確認します)、次のセッションインが生成されます
$_SESSION['username'] = 'csdn';
$_SESSION['pwd'] = ' pwd';


次に、他のページ $_SESSION[' username'] が空かどうかを判断します。そうでない場合は、ログインしていることを意味します。 。 。

そこで質問です: $_SESSION はサーバー上に存在しませんか?複数のユーザーがログインすると、$_SESSION['username'] が何度もリセットされませんか? サーバーはどのようにしてクライアントを正しく区別できるのでしょうか? ? ?

とても簡単なことだと思っていましたが、わかりませんでした。 。 。何かを誤解しているようです。指摘してください。
ありがとうございます


ディスカッション(解決策)への返信

$_SESSION は session_start 関数
によって生成され、$_SESSION の内容は受信した Cookie に基づいて session_start によって割り当てられます
。あなた

つまり、ユーザー A の $_SESSION とユーザー B の $_SESSION は両方とも $_SESSION ですが、内容は異なります

セッションには、異なるユーザーを識別するためにクライアントから渡される session_id が含まれます。したがって、この session_id は一意です。混乱を心配する必要はありません。

各通話は一意です...これは前述の session_id なので、ブラウザとサーバーが通話を確立するたびに、この ID は一意であり、サーバーは通話相手を特定します

。 seesion_id()に基づくデータと、$_SESSIONの値が異なります。


セッションには、さまざまなユーザーを識別するためにクライアントから渡される session_id があり、この session_id は一意であるため、作成者は混乱を心配する必要はありません。



これは確かに事実です、私は昨日それを自分で理解しました。 2 つのブラウザで試してみたところ、サーバーが 2 つの異なる ID を生成していることがわかりました。次に開いてみると、その内容は次の 2 つの変数であり、確かに sess_id によって区別されていました。私はそれを考え出した。 。 。
リーリー
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。