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

如何用PHP在HTML页面展示已登录用户的专属信息

解决已登录用户个人信息展示的问题

嘿,我看你现在的代码是查询了所有用户的profile数据,但你需要的是当前已登录用户的姓名、技能和描述对吧?咱们一步步调整代码,实现更友好的展示效果:

第一步:精准查询当前登录用户的信息

你的现有SQL会返回所有用户的profile,这不是你要的。首先要利用session里的登录用户标识(比如$_SESSION['user_id'],这应该在session.php里已经初始化了),用预处理语句安全查询当前用户的数据:

<?php
include('session.php');
require 'config.php';

// 假设你的profile表通过user_id字段关联登录用户,根据你的实际表结构调整字段名
$sql = "SELECT firstname, lastname, skills, description FROM profile WHERE user_id = ?";
// 使用预处理语句避免SQL注入
$stmt = $conn->prepare($sql);
// 绑定参数:"i"表示参数是整数类型,如果user_id是字符串就用"s"
$stmt->bind_param("i", $_SESSION['user_id']);
$stmt->execute();
$result = $stmt->get_result();
$row = $result->fetch_assoc();
?>

第二步:用友好的HTML结构展示信息

不用表格的话,卡片式布局会更美观,同时记得用htmlspecialchars()转义输出内容,防止XSS攻击:

<!-- 在PHP代码之后添加这段HTML -->
<div style="border: 1px solid #ddd; padding: 20px; border-radius: 8px; max-width: 500px; margin: 20px auto;">
  <h3>我的个人信息</h3>
  <?php if ($result->num_rows > 0): ?>
    <p><strong>姓名:</strong><?php echo htmlspecialchars($row['firstname'] . ' ' . $row['lastname']); ?></p>
    <p><strong>技能:</strong><?php echo htmlspecialchars($row['skills']); ?></p>
    <p><strong>个人描述:</strong><?php echo htmlspecialchars($row['description']); ?></p>
  <?php else: ?>
    <p>你还未完善个人信息,<a href="edit-profile.php">点击这里补充</a>吧!</p>
  <?php endif; ?>
</div>

一些关键注意事项

  • 确认你的profile表和登录用户的关联字段正确(比如user_id),如果你的表用的是其他字段名(比如id),记得修改SQL里的WHERE条件。
  • 一定要用预处理语句和htmlspecialchars(),这能有效防止SQL注入和XSS攻击,提升网站安全性。
  • 如果session.php里存储的登录标识不是user_id,比如是username,那要把绑定参数的类型改成s(字符串),同时调整SQL的WHERE条件为username = ?。

内容的提问来源于stack exchange,提问作者James Wood

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:20:03