0

オンラインで設定を追加/削除/編集できるゲーム サーバー用の小さな管理ページを作成しました。

すべて正常に動作しますが、セッションに問題があります。ログインに成功すると、セッション ID が作成されます

$_SESSION['adm_login'] = "okay";

同じプラットフォーム (同じ Web サーバー上) の別のページにアクセスすると、セッションが自動的に作成されます。これは、Web ページに正常にログインした場合にのみ発生します。

セッションIDが同じであるため、すべてが同じWebサーバー上にあるために、この問題が発生すると思います。

私は何をすべきか?セッション ID または ... を保存するデータベースにテーブルを作成する必要がありますか?

誰でも私に例、またはセッションphpのチュートリアルを教えてもらえますか.

ありがとうございました !

4

2 に答える 2

3

session.cookie_pathまたはなどの設定を使用session.cookie_domainして、セッション Cookie が必要なパスまたはドメインに対してのみ有効になるようにします。

たとえば、「プロジェクト」ごとに 1 つのフォルダーがある場合はsession.cookie_path、現在のプロジェクト フォルダーに設定します。これにより、ブラウザーはそのプロジェクトのセッション Cookie のみを送信し、他のプロジェクトのセッション Cookie は送信しません。ユーザーがアクセスするプロジェクトごとに、新しいセッションが生成されます。

于 2012-06-12T15:13:48.450 に答える
1

機能をチェックしてくださいsession_regenerate_id()。新しく生成されたセッション ID で現在のセッション ID を更新します。

一意のセッション ID を作成します。

session_start();
session_regenerate_id();
$_SESSION['adm_login'] = "okay";

一意のセッション ID を破棄:

session_unset();
session_destroy();
$_SESSION = array();

session_unset と session_destroy を記述する理由は、セッション Cookie を作成すると、サーバーとクライアント ブラウザーで作成され、サーバーからセッションを破棄すると、クライアント ブラウザーで作成された Cookie もクリアする必要があるためです。

于 2012-06-12T15:09:45.380 に答える