我正在使用$ _SESSION让我的用户在登录后登录。
当他们返回主页时,他们最初似乎已登录,但刷新页面一次后,他们就不再登录了。
注意:我还在学习PHP编程,所以请不要介意我的大多数代码都是相当的,noobish。
Index.php代码:
<?php
session_start();
$UserOnline = "Guest";
if (isset($_SESSION['username'])) {
$UserOnline = $_SESSION['username'];
}
echo $UserOnline;
?>
Login.php代码:
<?php
session_start();
$username = $_POST['username'];
$password = $_POST['password'];
if (empty($username)) {
$InvalidLogin = "Please submit a username";
$_SESSION['IL'] = $InvalidLogin;
header ('Location: http://localhost/practice/index.php');
exit;
} elseif (empty($username)) {
$InvalidLogin = "Please submit a password";
$_SESSION['IL'] = $InvalidLogin;
header ('Location: http://localhost/practice/index.php');
exit;
}
require 'required/connect.php';
$result = mysqli_query($con, "SELECT * FROM users WHERE username='$username'");
$row = mysqli_fetch_array($result);
if ($password == $row['password']) {
$_SESSION['username'] = $username;
echo "Successful Login!";
echo "<br>";
echo "<a href='index.php'>Return to HomePage?</a>";
} else {
$InvalidLogin = "Your info didn't match ours!";
$_SESSION['IL'] = $InvalidLogin;
header ('Location: http://localhost/practice/index.php');
exit;
}
?>
我已经在login.php页面上测试过,如果用户在那里的会话中,我总是得到正确的返回值。问题是我在Index.php页面刷新一次后,用户不再在会话中。
有什么我忘了,或者我没有正确使用$ _SESSION?还有其他一些我根本不知道的错误吗?
答案 0 :(得分:1)
在标题('location:.....')之后加退出; ,您的问题就会得到解决。
答案 1 :(得分:0)
问题已解决。在Index.php中发现错误。在if(isset($ _ SESSION ['username']))之前设置Variable $ UserOnline。感谢帮助人员