Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-用户未保持登录状态_Php - Fatal编程技术网

PHP-用户未保持登录状态

PHP-用户未保持登录状态,php,Php,我终于有勇气做一个用户登录系统了,谁知道要推迟多久。我唯一的问题是,当我提交登录表单时,它会重新加载页面,并显示我已登录,很好 但是,如果我重新加载页面或转到另一个页面并返回到原始页面,则会迫使我再次登录。有人能帮忙吗?在数据库连接之前,我在包含在所有其他页面文件中的基本文件中有一个session_start 然后,我为我的用户登录端编写了以下代码,正如我所说的,这是第一次使用,但在这之后,任何其他交互都会将我注销。有什么帮助吗 用于登录并创建会话的用户页 请注意,这不是一个实时的环境,所以安全

我终于有勇气做一个用户登录系统了,谁知道要推迟多久。我唯一的问题是,当我提交登录表单时,它会重新加载页面,并显示我已登录,很好

但是,如果我重新加载页面或转到另一个页面并返回到原始页面,则会迫使我再次登录。有人能帮忙吗?在数据库连接之前,我在包含在所有其他页面文件中的基本文件中有一个session_start

然后,我为我的用户登录端编写了以下代码,正如我所说的,这是第一次使用,但在这之后,任何其他交互都会将我注销。有什么帮助吗

用于登录并创建会话的用户页

请注意,这不是一个实时的环境,所以安全性现在被放在板凳上。然而,我知道我在未来需要一些安全措施


谢谢

请尝试在其中某处使用ifisset$\u会话['loggedin']和isset$\u会话['username']!空是不够的。另外,在打开“我发现了我的问题”之后,立即将错误报告添加到文件顶部。我不小心把评论放在了我的页面顶部。我正在保存它,以便以后需要注销时放置。这就是为什么我也实施了你的建议,它们效果更好。一如既往地感谢弗雷德:太好了,丹,很高兴听到你发现了问题。总是乐于助人,欢迎光临,干杯请删除您的问题
// Check if the user is logged in or not
if((!empty($_SESSION['loggedin'])) && (!empty($_SESSION['username']))) {

$loggedin = true; // The user IS logged in

} else {

if(isset($_POST['login'])) {
// The login form has been submitted

    if((empty($_POST['username'])) || (empty($_POST['password']))) {
    // If either username or password fields are blank

        $loginfail = true; // If the user could not be logged in

        if(empty($_POST['username'])) { $nousername = true; }

        if(empty($_POST['password'])) { $nopassword = true; }

    } else {
    // Username and password field were filled in okay

        $username = $_POST['username'];
        $password = $_POST['password'];

        $checklogin = mysqli_query($sql, "SELECT * FROM users WHERE username = '$username' AND password = '$password'") or die($checklogin . "<br/>" . mysqli_error($sql));

        if(mysqli_num_rows($checklogin) == 1) {
        // If the login details match up, log them in

            $loggedin = true; // The user IS NOT logged in

            $_SESSION['username'] = $username;
            $_SESSION['loggedin'] = 1;

        } else {
        // If the login details don't match up, don't login

            $loginfail = true; // If the user could not be logged in

        }

    }

}

}