2011-09-20 45 views
0

所以我正在寫一個簡單的登錄腳本,我遇到了一些問題。我能夠創建與下面這個dashboard.php文件一起使用的login.php文件。讓我描述一下場景:用戶進入主頁面,即登錄頁面。輸入用戶名和密碼。如果輸入正確,用戶將看到輸出「儀表板成功」。如果輸入錯誤,它會將它們重定向到loginfailed.php。問題是瀏覽器不記得用戶已經登錄。如果我重新輸入此頁面,它將直接進入loginfailed.php。所以我在這裏提出的關於n00b的問題是......有沒有辦法讓瀏覽器記住用戶已經登錄?PHP的session_start問題

<?php 
session_start(); 
$username = $_POST['username']; 
$password = $_POST['password']; 

$username = stripslashes($username); 
$password = stripslashes($password); 

$dblink = mysql_connect("localhost", "root", ""); 
mysql_select_db("user",$dblink); 
$sql = "select * from members where username = '$username' and password = '$password'"; 
$result = mysql_query($sql) or die (mysql_error()); 

$count = 0; 

while ($line = mysql_fetch_assoc($result)) { 
    $count++; 
} 

if ($count == 1) { 
    $_SESSION['loggedIn'] = "true"; 
    echo "<a href='dashboard.php'>dashboard succesfull</a>"; 
} else { 
    $_SESSION['loggedIn'] = "false"; 
    header("Location: loginfailed.php"); 
} 

?> 

回答

1

當然。你只需要投入,在頁面的頂部,但低於在session_start(),是這樣的:

if(isset($_SESSION['loggedIn']) && $_SESSION['loggedIn'] == 'true') { 
    # do something. maybe redirect and then exit? 
} 

另外,我建議把它們放在你的SQL之前使用session nameescaping the username and password

+0

在這裏使用'session_name()'的任何理由? – zerkms

+0

猜你不需要。只是一個管理命名空間的實用程序。 – Marshall