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

PHP+MySQL用户笔记权限问题:仅显示当前登录用户的笔记

解决方向指引

1. 数据库调整

  • 检查你的笔记存储表(比如命名为notes),必须新增一个user_id字段,用来关联用户表(比如users)里的用户唯一主键ID(通常是users表的id字段)。
  • 后续存储笔记时,必须把当前登录用户的user_id和笔记内容一起存入notes表,不能只保存文本内容。

2. 存储笔记的代码修改

插入笔记的SQL语句要带上当前用户的ID(用户登录成功后,要把其ID存入$_SESSION['user_id']中):

INSERT INTO notes (content, user_id) VALUES ('用户输入的笔记内容', $_SESSION['user_id']);

重要提示:别直接把变量拼进SQL,要用预处理语句防注入,比如mysqli的写法:

$stmt = $conn->prepare("INSERT INTO notes (content, user_id) VALUES (?, ?)");
$stmt->bind_param("si", $note_content, $_SESSION['user_id']);
$stmt->execute();

3. 获取笔记的代码修改

查询笔记时必须加筛选条件,只提取当前登录用户的笔记:

SELECT * FROM notes WHERE user_id = $_SESSION['user_id'];

同样用预处理语句更安全:

$stmt = $conn->prepare("SELECT * FROM notes WHERE user_id = ?");
$stmt->bind_param("i", $_SESSION['user_id']);
$stmt->execute();
$result = $stmt->get_result();

4. 基础权限验证

  • 确保只有登录用户能访问笔记页面,每次加载笔记页面前,先检查$_SESSION['user_id']是否存在,不存在就跳转到登录页面。

内容的提问来源于stack exchange,提问作者Don'tFront

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 06:05:21