我希望有人能帮助我。我正在尝试在用户成功登录后将用户重定向回索引页面。我只能看到一个白色的空白屏幕,没有错误。
感谢您的帮助
<?php
include('includes/functions.php');
session_start();
if(isset($_POST['login'])) {
if(isset($_POST['username'])) {
if(isset($_POST['password'])) {
$username = $_POST['username'];
$query = mysqli_query($link,"SELECT * FROM users_cust WHERE username = $username") or die(mysql_error());
$user = mysql_fetch_array($query);
if(md5($_POST['password']) == $user['password']) {
echo("Login Successful!");
$_SESSION['user'] = $user['username'];
header("Location:/index.php") or die(mysql_error());
} else {
echo("Please check your login details");
include('login.php');
}
} else {
echo("Please check your password");
include('login.php');
}
} else {
echo("Please check your username");
include('login.php');
}
} else {
echo("Please check that you filled out the login form");
include('login.php');
}
?>
和我的主登录页面像这样
<?php
session_start();
if(isset($_SESSION['user'])){
header("Location:index.php");
} else {?>
<html>
<head>
<title> Login Area
</title>
</head>
<body>
<form action="dologin.php" method="post">
<label for="username">Username:</label>
<input type="text" name="username">
<label for="password">Password:</label>
<input type="password" name="password">
<input type="submit" name="login" value="submit">
</form>
</body>
</html>
<?php } ?>
您没有名为"user"的会话,因此此会话将不断返回任何值,我相信它需要更新到此。
if(isset($_SESSION['username'])){
编辑:
或者,您可以创建一个名为"LoggedIN"的新会话,在第一页的代码中添加这段代码。
$_SESSION['LoggedIN'] = true;
这将低于您之前的会话
然后在第二页上,您可以简单地输入:
if (isset($_SESSION['LoggedIN']) && $_SESSION['LoggedIN'] == true) {
header("Location:index.php");
}
在你的第一页上,你有$_SESSION['用户名'],而在另一页上是$_SESSION['user']。
决定使用其中之一,它应该可以工作。
只需尝试标头("位置:索引.php"(;
而不是 header("Location:/index.php"( 或 die(mysql_error(((; 退出((;
在第二页上检查 $_SESSION["用户名"] 而不是 $_SESSION["用户"]
我在您的第一页中没有看到$_SESSION['user']
,我认为您需要将其更改为$_SESSION['username']
,这应该很好!
作为旁注,我一直认为使用 javascript 进行验证是最好的!
$query = mysqli_query($link,"SELECT * FROM users_cust WHERE username = $username") or die(mysql_error());
查询部分是否应如下所示:
...WHERE username = '$username'"