刷新页面时PHP会话重置


PHP session resets when i refresh page

嗨,当涉及到PHP时,我是一个傻瓜,但我正在制作一个页面,登录后你可以进入主页,但当我在主页登录并刷新页面时,我就会注销。

这是我登录的代码。`

session_start();
require('connect.php');
if (isset($_POST['username']) and isset($_POST['password'])){
     $username = $_POST['username'];
     $password = $_POST['password'];

     $query = "SELECT * FROM `user` WHERE username='$username' and password='$password'"; 
     $result = mysqli_query($connection, $query) or die(mysqli_error($connection));
     $count = mysqli_num_rows($result);
if ($count == 1){
    $_SESSION['username'] = $username;
     header("Location: index.php");
    }else{
        echo "Invalid Login Credentials.";

和我的index.php 的代码

<?php 
require'connect.php';
session_start();

if (!isset($_SESSION['username'])){
echo" not logged in";

}else {
    echo "logged in";
}   
?>

您的登录页面有:

session_start();
require('connect.php');

而你的主页有:

require'connect.php';
session_start();

尽量保持一致。来自手册:

"要使用基于cookie的会话,在向浏览器输出任何内容之前,必须调用session_start()。"

请确保在两个页面中都首先调用session_start()。确保你没有任何空白或任何其他东西被首先输出。例如:

更正:

<?php
session_start();

不正确:

// white space above PHP tag
<?php
session_start();

这应该能解决你的问题。

看起来像是一个小问题,因为这里没有涉及太多php代码。尝试在没有的情况下运行此代码

require('connect.php');

如果它仍然没有得到解决,我建议您检查connect.php文件中的代码。