PHP的session_start问题
问题描述:
所以我正在写一个简单的登录脚本,我遇到了一些问题。我能够创建与下面这个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");
}
?>
答
当然。你只需要投入,在页面的顶部,但低于在session_start(),是这样的:
if(isset($_SESSION['loggedIn']) && $_SESSION['loggedIn'] == 'true') {
# do something. maybe redirect and then exit?
}
另外,我建议把它们放在你的SQL之前使用session name和escaping the username and password。
在这里使用'session_name()'的任何理由? – zerkms
猜你不需要。只是一个管理命名空间的实用程序。 – Marshall