You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据登录用户在HTML中展示对应JSON数据

只展示当前登录用户的JSON数据解决方案

嘿,你已经搞定了用户数据存储到JSON的核心功能,现在就差筛选出当前登录用户的对应记录对吧?这事儿不难,我给你一步步说怎么实现:

核心思路

我们需要先从会话中拿到当前登录用户的邮箱,然后读取JSON文件,过滤掉不匹配的条目,只保留该用户的记录。

具体实现代码(修改你的json-2.php)

<?php
// 首先启动会话——必须在任何输出之前调用,不然拿不到会话数据
session_start();

// 先检查用户是否已登录,避免未登录时出错
if (!isset($_SESSION['user_email'])) {
    echo "请先完成登录哦";
    exit;
}
// 把当前登录用户的邮箱存到变量里(注意:这里的session键要和你登录时存的一致,比如你登录时用的是$_SESSION['email'],就改成对应的)
$currentUserEmail = $_SESSION['user_email'];

// 读取JSON文件并解析成PHP数组
$jsonFilePath = 'event_data.json';
$jsonContent = file_get_contents($jsonFilePath);
$allEvents = json_decode($jsonContent, true);

// 过滤出当前用户的事件记录
$userSpecificEvents = [];
foreach ($allEvents as $eventItem) {
    // 检查当前条目是否以用户邮箱为键
    if (array_key_exists($currentUserEmail, $eventItem)) {
        $userSpecificEvents[] = $eventItem;
    }
}

// 这里可以根据你的需求输出数据:
// 如果要返回JSON格式给前端,就用下面的代码
header('Content-Type: application/json');
echo json_encode($userSpecificEvents);

// 如果要在页面上展示成HTML列表,就换成这段:
/*
echo "<h3>你的事件记录</h3>";
echo "<ul>";
foreach ($userSpecificEvents as $event) {
    echo "<li>" . $event[$currentUserEmail] . "</li>";
}
echo "</ul>";
*/
?>

注意事项

  • 确认会话变量的名称:登录时你把用户邮箱存在$_SESSION的哪个键里,就要对应修改代码里的$_SESSION['user_email'],比如如果是$_SESSION['logged_in_email'],就改成这个。
  • 你的event_data.json里有_empty_的条目,这个过滤逻辑会自动跳过这些无关记录。
  • 如果JSON文件读取失败(比如文件不存在或权限问题),可以加个错误判断:比如if (!$jsonContent) { echo "无法读取数据文件"; exit; }

内容的提问来源于stack exchange,提问作者Vrishty Garg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:02:40