2009-06-26 9 views
0

ログインすると、新しいセッションが生成されます。セッションが生成されたログインを後でどのように知ることができますか?ユーザーへのセッションのマッピング

私はセッション値を取得していますが、セッションがどのユーザーであるかをどのように知っており、そのページにリダイレクトするのですか?

答えて

2

ユーザーがログインしているときに(新規)セッションを作成したくない場合。すべてのページでセッションを作成/再開します。

ここではいくつかの例を基本に分けて説明します。

login.php

<?php 
session_start(); 
if ($_POST['user'] == 'john' && $_POST['pwd'] == 'password') { 
    $_SESSION['loggedIn'] = true; 
    $_SESSION['firstname'] = 'John'; 
} 
?> 

admin.php

<?php 
session_start(); 
if (!isset($_SESSION['loggedIn']) || !$_SESSION['loggedIn']) { 
    header('location: login.php'); 
    exit(); 
} 

echo 'Hello ' . $_SESSION['firstname'] . '!'; 
?> 
  • ユーザーの訪問は
  • session_start()は新しいセッションを作成admin.php。すべてのデータ($ _SESSION)はサーバーに格納されます。セッションのIDを持つ新しいクッキーがクライアント側に格納されます。
  • ユーザーが順番にlogin.phpにリダイレクトされtrue
  • session_start()への$_SESSION['loggedIn']キーセットは、ユーザーがフォームと認証しを提出するブラウザ
  • によって送られたクッキーによるセッションを復活させていないがあります。配列$_SESSIONの中にはこれがあります。
  • ユーザーはadmin.phpに戻り、ページにアクセスできるようになりました。
関連する問題