2

我正在使用 $_SESSION 让我的用户在登录后保持登录状态。

回到首页的时候,一开始看起来好像已经登录了,但是刷新一次页面后,就不再登录了。

注意:我还在学习 PHP 编程,所以请不要介意我的大部分代码都相当笨拙。

索引.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?还有另一个我根本不知道的错误吗?

4

2 回答 2

1

出口;在 header('location:.....') 之后,您的问题将得到解决。

于 2013-08-21T22:52:26.907 回答
0

问题已解决。在 Index.php 中发现错误。在 if(isset($_SESSION['username'])) 之前设置变量 $UserOnline。谢谢你们的帮助

于 2013-08-22T00:19:12.950 回答