2011-09-20 65 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