登录后如何打印用户信息?

vyu0f0g1  于 2021-10-10  发布在  Java
关注(0)|答案(1)|浏览(284)

我已经在我的网站上添加了一个登录系统,但是信息似乎没有正确地存储在会话中。当我试图打开目标页面时,我试图回显用户的id,但是我得到了错误:“试图访问null类型值上的数组偏移量”。从我所看到的,这不应该是空的,因为它是在我的login.php脚本中设置的。关于更多信息,我已经包括了注册、登录和功能脚本。任何帮助都将不胜感激。
login.php:

<?php

session_start();

require ("connection.php");
require ("functions.php");

if ($_SERVER['REQUEST_METHOD'] == "POST")
{

    if (isset($_POST['email']) || isset($_POST['password']))
    {
        $email = $_POST['email'];
        $password = $_POST['password'];

        if (!empty($email) && !empty($password))
        {

            $query = ("select * from users where email = '$email' and password = '$password' and organiser_yn = 'N' limit 1");
            $result = mysqli_query($con, $query);

            $query2 = ("select * from users where email = '$email' and password = '$password' and organiser_yn = 'Y' limit 1");
            $result2 = mysqli_query($con, $query2);

            if ($result)
            {
                if ($result && mysqli_num_rows($result) > 0)
                {
                    $user_data = mysqli_fetch_assoc($result);

                        $_SESSION['user_id'] = $user_data['user_id'];
                        header("Location: EventPlannerSignedIn.php");
                        die;

                } elseif ($result2 && mysqli_fetch_assoc($result2) > 0)
                {
                    $user_data2 = mysqli_fetch_assoc($result2);
                    $_SESSION['user_id'] = $user_data2['user_id'];
                    header("Location: EventPlannerOrganiser.php");
                    die;
                }

                else
                {
                    echo "Email or password is incorrect.";
                }
            }
        }
    }
}

?>

signup.php:

<?php 
session_start();

    include("connection.php");
    include("functions.php");

    if($_SERVER['REQUEST_METHOD'] == "POST")
    {
        if(isset($_POST['name']) || isset($_POST['email']) || isset($_POST['password']) ) 
        {
        $name = $_POST['name'];
        $email = $_POST['email'];
        $password = $_POST['password'];

        if(!empty($email) && !empty($password))
        {

            $user_id = random_num(20);
            $query = "insert into users (user_id,name,email,password) values ('$user_id','$name','$email','$password')";

            mysqli_query($con, $query);

            header("Location: login.php");
            die;
        }
        else
        {
            echo "The information you have entered is invalid.";
        }
    }
}
?>

目标页面

<?php

session_start();

include("connection.php");
include("functions.php");

$user_data2 = check_login($con);
?>

<!DOCTYPE html>
<html lang="en">
   <head>

   </head>
   <body>
      <?php echo $user_data2['user_id'];?>
   </body>
   </html>

功能:

<?php

function check_login($con)
{

    if(isset($_SESSION['user_id']))
    {

        $id = $_SESSION['user_id'];
        $query = "select * from users where user_id = '$id' limit 1";

        $result = mysqli_query($con,$query);
        if($result && mysqli_num_rows($result) > 0)
        {

            $user_data = mysqli_fetch_assoc($result);
            return $user_data;
        }
    }
    die;

}
?>
2exbekwf

2exbekwf1#

尝试

<body>
<?php echo $_SESSION['user_id']; ?>
</body>

因为您没有在$userdata2中存储任何内容,甚至没有初始化该变量、会话或实际数据库中的任何数据。

相关问题