2012-03-20 23 views
1

誰かが自分のウェブサイトにログインすると、そのユーザーの情報だけを出力します。しかし、それは異なるユーザーを認識しないように見えるので、問題があります。私はウェブサイト上の2人のユーザーでログインした場合、最初のものは、ここで、各ページ別々のセッション

?php 
session_start(); 

require_once 'loginDetails.php'; 
$db_server = mysql_connect("$db_hostname", "$db_username", 
"$db_password"); 

if (!$db_server) die("Unable to connect to MySQL: " . mysql_error()); 

mysql_select_db($db_database) 
or die("Unable to select database: " . mysql_error()); 

if (isset($_SESSION['username'])) 
{ 
    $user = $_SESSION['username']; 
    $query = mysql_query("SELECT * FROM cssh_students_table WHERE StudentUserName = '$user'"); 
    $query1 = mysql_fetch_row($query); 
    $course = $query1[10]; 
    $year = $query1[6]; 
    $email = $query1[4]; 
    $loggedin = TRUE; 
} 
else 
{ 
$loggedin = FALSE; 
} 

if ($loggedin == FALSE) 
{ 
session_unset(); 
session_destroy(); 
header('Location: ../index.html'); 
} 
?> 
+0

問題は、おそらくロギングページが原因です。それを追加する必要があります。 –

+1

あなたのユーザ名が「O'Brien」のユーザはいらないでしょう。 –

+0

これを1つのブラウザでテストしていますか? PHPセッションはCookieを使用するため、ブラウザごとに1つのセッションしか持てません。 – flo

答えて

0

session_destroy()の開始時に私のコードは、あなたのセッションクッキーを殺すために保証されていないです...二番目になります。あなたの問題はおそらく、元のセッションCookieがまだ存在するためです。

このrelated question.

追加が(関係ありません)

SELECT *をやって、その後、整数インデックスを使用して結果にアクセスするデータベース構造の場合は最終的にあなたの問題いくつかの日が発生します悪い習慣です参照してください。かわった。 SELECT必要な項目を入力するか、mysql_fetch_assocを使用して名前で値にアクセスしてください。

0

これには多くの解決策があります。

私たちのために、私たちはそのようなことを開発する必要があります。開こうとするユーザーごとに、匿名のブラウザウィンドウを使用します。もう1つの解決策は、ログインするユーザーごとに異なるドメイン名を使用することです(DNSワイルドカードを使用)。

関連する問題