0

複数のユーザーが同時にログインすることに関して、セッションの保存について少し混乱しています...セッションキーは一意である必要がありますか、それとも値だけである必要がありますか? すべての $userIds が一意である場合、これは問題ありませんか?

//if the user logs in:
$_SESSION['loggedIn'] = $userId;

これをテストすると、別々の $userIds で同時に 2 人がログインしていて、データベースにデータを入力しようとすると、エラーが発生するようです。キーはランダムな # にする必要がありますか? この時点でセキュリティの心配はありません。

4

2 に答える 2

1

$_SESSION ベクトルは、PHP の [セッション管理] の一部です。

PHP でのセッション サポートは、後続のアクセス間で特定のデータを保持する方法で構成されています

基本的に、セッションごとに情報を保存し、同じセッションからの後続の呼び出しで同じ情報を取得できます。

各セッションには、独自のデータ セットがあります。

PHP は、Cookie または POST/GET パラメータを使用して各セッションを識別し、現在の呼び出しが既存のセッションの一部であるかどうかを判断し、以前の呼び出しで保存したデータを提供します。

session_start() は、GET または POST リクエストを介して渡された、または Cookie を介して渡されたセッション ID に基づいて、セッションを作成するか、現在のセッションを再開します。

詳細については、マニュアルの次のトピックを参照してください。

于 2012-12-07T02:28:09.133 に答える
0

$_SESSIONサーバー側に保存され、非アクティブ状態が短時間続くとセッションが終了する可能性があるため、ユーザーを追跡するのには適していません。可能であれば、Cookie を使用した方がよいでしょう。

ただし、特定の質問に対処するには、セッションはほとんど常に一意であるため、コードが機能するはずです。

于 2012-12-07T02:15:53.610 に答える