2

ユーザーがログインした後もログイン状態を維持するために $_SESSION を使用しています。

ホームページに戻ると、最初はログインしているように見えますが、ページを一度更新すると、ログインしなくなります。

注: 私はまだ PHP プログラミングを学んでいるので、私のコードのほとんどがかなり初心者であることを気にしないでください。

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 を正しく使用していませんか? 私が単に知らない別のエラーはありますか?

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 に答える