2012-03-20 67 views
1

當有人在我的網站上登錄時,它會輸出僅供該用戶使用的信息等。但是有一個問題,因爲它似乎不承認不同的用戶。如果我登錄兩個用戶在網站上,第一個會成爲第二個......這是我在每個頁面單獨會話

?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

該問題更可能是由於日誌記錄頁面。你應該添加它。 – 2012-03-20 18:30:42

+1

希望你完全沒有一個用戶名是'O'Brien'的用戶。 – 2012-03-20 18:32:13

+0

你是在一個瀏覽器中測試這個嗎? PHP會話使用Cookie,因此每個瀏覽器只能有一個會話。 – flo 2012-03-20 18:33:50

回答

0

session_destroy()的起始碼不能保證殺死你的會話cookie。您的問題可能是因爲您的原始會話Cookie仍然存在。

看到這個related question.

其他(不相關)

做一個SELECT *,然後訪問使用整數索引的結果是不好的做法,最終將導致你的問題有一天當數據庫結構改變。 SELECT您需要的項目,或使用mysql_fetch_assoc並按名稱訪問值。

0

可以有很多解決方案。

對於我們來說,我們需要在開發中做這樣的事情。對於我們想要打開的每個用戶,我們使用匿名瀏覽器窗口。另一種解決方案可能是爲每個想要登錄的用戶使用不同的域名(使用dns通配符)。