我创建了一个简单的登录页面来访问应用程序。登录有时可以正常工作,但有时我会无法登录系统,因为会话数据将在最后一页丢失。
我拥有的文件 1)login.php,带有登录名和密码字段。
2)loginprocess.php - 将连接到数据库以检查是否存在用户名和密码,然后创建会话。
3)listing.php - 如果登录成功,这将是最后一页。
如果数据库中存在登录名和密码,则loginprocess.php页面将创建会话变量。然后它将重定向到最后一页。
$selectstring = "SELECT * FROM logintable WHERE username='".$loginname."' AND password='".$pass."'";
$result = mysql_query($selectstring);
//IF YES THEN GO TO MAIN
if(mysql_num_rows($result) > 0)
while($row = mysql_fetch_array($result))
{
//CREATE SESSION
session_start();
// Set session variables
$_SESSION["loginname"]= $loginname;
header("Location: listing.php");
exit;
}
else {
echo "ERROR";
header("Location: login.php?message=error");
exit;
}
在最后一页top.php的顶部,我将有一个脚本,如果会话变量为空,它将重定向。
session_start();
if (!isset($_SESSION['loginname']) && empty($_SESSION['loginname'])) {
header("Location: login.php");
}
我是否插入了session_start();在loginprocess.php上来不及?
答案 0 :(得分:1)
首先,将session_start();
移到文件顶部。
接下来,您需要在if
中执行OR而不是AND,因为登录名未设置或为空。