1

奇妙な問題があります。メインページにアクセスするユーザーごとにセッション変数を設定し、次のページにセッション変数が設定されている場合は表示されるものと表示されないものがあるWebページがあります。私が設定している変数は単なる「1」です。

 $_SESSION['user_id'] = $user_id;

すべてが単純で、すべてがうまく機能していますが、サーバーがセッション変数を保存しないこの1人のユーザーがいます。私の知る限り、たった一人の男。この動作の原因は何ですか?それが重要な場合、彼はMacを使用していますが、他のMacではWebサイトはうまく機能します。

ありがとう。

4

2 に答える 2

4

PHPを呼び出すと、変数セットsession_start()だけでCookieが設定されます。PHPSESSIDこの変数は、サーバー上のセッションデータでクライアントブラウザを識別するために使用されます。PHPSESSIDユーザーがCookieを無効にしている場合、 GETまたはPOSTを介してすべてのリクエストを行き来せずにセッションを使用することはできません。

于 2013-03-06T16:01:39.470 に答える
0

HTTPはステートレスプロトコルです。セッションがサーバー側のみである場合、どのようにしてユーザーを区別できるでしょうか。

[ HTTPはステートレスプロトコルです。つまり、HTTPリクエストはサーバーから応答され、誰がリクエストを送信したのか、どこから送信されたのかを忘れます。]

これが、CookieがセッションIDを保存している理由です。

つまり、ユーザーがCookieを無効にしている場合、PHPが自分でセッションを設定することを許可していません。これが背後にある理由です。

于 2013-03-06T16:04:00.263 に答える