初学者问个关于PHP+MYSQL的问题

代码示例展示了在网页头部菜单中,用户头像在首页可以正常显示,但在用户信息栏无法加载。问题可能出在获取和填充用户信息的AJAX请求上,尤其是头像字段。当用户已登录时,应当从服务器获取并显示用户头像。代码中包含JavaScript和PHP两部分,用于处理用户登录状态和信息查询。
摘要由CSDN通过智能技术生成

以下代码在首页的顶部菜单栏里 在首页用户头像可以正常显示 但是无法在用户信息栏里读取出来 其他字段都可以 就是头像无法加载 我只是在内网做着玩 困扰好几天

<!-- start: 用户登入状态 dropdown-menu -->

                        <li>

                            <div class="dropdown morphing scale-left user-profile mx-lg-3 mx-2">

                                <a class="nav-link dropdown-toggle rounded-circle after-none p-0" href="#" role="button" data-bs-toggle="dropdown">

                                    <img id="user-avatar" class="avatar img-thumbnail rounded-circle shadow" src="" alt="用户头像">

                                </a>

                                <div class="dropdown-menu border-0 rounded-4 shadow p-0">

                                    <div class="card border-0 w240">

                                        <div class="card-body border-bottom d-flex">

                                            <img id="user-avatar" class="avatar rounded-circle" src="" alt="用户头像">



                                            <div class="flex-fill ms-3">

                                                <h6 id="user-name" class="card-title mb-0"></h6>

                                                <span id="user-email" class="text-muted"></span>

                                            </div>

                                        </div>

                                        <div class="list-group m-2 mb-3">

                                            <!-- 添加登录和注册按钮的链接 -->

                                            <a class="list-group-item list-group-item-action border-0" href="login.html"><i class="w30 fa  bi-universal-access"></i>登录</a>

                                            <a class="list-group-item list-group-item-action border-0" href="register.html"><i class="w30 fa fa-user-plus"></i>注册</a>

                                        </div>

                                        <a href="logout.php" class="btn bg-secondary text-light text-uppercase rounded-0" style="display: none;">退出登入</a>

                                    </div>

                                </div>

                            </div>

                        </li>



                        <!-- JavaScript部分 -->

                        <script>

                            // 使用AJAX请求获取用户信息并填充到页面中

                            function getUserInfo() {

                                const xhr = new XMLHttpRequest();

                                xhr.open("GET", "get_user_info.php", true);

                                xhr.onreadystatechange = function() {

                                    if (xhr.readyState === XMLHttpRequest.DONE) {

                                        if (xhr.status === 200) {

                                            const response = JSON.parse(xhr.responseText);

                                            if (response.status === "not_logged_in") {

                                                // 用户未登录,显示默认头像和登录链接

                                                document.getElementById("user-avatar").src = "./assets/img/profile_av.png";

                                                document.getElementById("user-name").textContent = "Guest";

                                                document.getElementById("user-email").textContent = "guest@example.com";



                                                // 显示登录和注册按钮,隐藏退出登录按钮

                                                document.querySelector(".list-group").style.display = "block";

                                                document.querySelector(".btn").style.display = "none";

                                            } else if (response.status === "error") {

                                                // 错误处理

                                                console.error(response.message);

                                            } else {

                                                // 用户已登录,显示用户信息

                                                document.getElementById("user-avatar").src = response.avatar;

                                                document.getElementById("user-name").textContent = response.username;

                                                document.getElementById("user-email").textContent = response.email;



                                                // 显示用户头像和卡片,隐藏登录和注册按钮

                                                document.querySelector(".list-group").style.display = "none";

                                                document.querySelector(".btn").style.display = "block";

                                            }

                                        } else {

                                            // 请求失败,错误处理

                                            console.error("请求失败: " + xhr.status);

                                        }

                                    }

                                };

                                xhr.send();

                            }



                            // 页面加载时获取用户信息

                            document.addEventListener("DOMContentLoaded", function() {

                                getUserInfo();

                            });

                        </script>

get_user_info.php 代码

<?php

session_start();

$servername = "127.0.0.1";

$username = "root";

$password = "123456";

$database = "dataadee";



// 建立数据库连接

$conn = new mysqli($servername, $username, $password, $database);

if ($conn->connect_error) {

    die("数据库连接失败: " . $conn->connect_error);

}



// 检查用户登录状态

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

    $user_id = $_SESSION['user_id'];



    // 查询用户信息

    $sql = "SELECT * FROM users WHERE id = '$user_id'";

    $result = $conn->query($sql);



    if ($result->num_rows > 0) {

        $user_data = $result->fetch_assoc();

        echo json_encode($user_data);

    } else {

        // 用户不存在,或者其他错误处理

        echo json_encode(array('status' => 'error', 'message' => '用户不存在'));

    }

} else {

    // 用户未登录

    echo json_encode(array('status' => 'not_logged_in'));

}



$conn->close();

?>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值