PHP用户个人中心需实现信息展示、编辑、密码修改、头像上传及权限控制:通过session鉴权、预处理查询、掩码邮箱、表单校验、BCRYPT加密、图像处理及ID绑定确保安全与功能完整。

如果您正在构建一个PHP网站并需要实现用户个人中心页面,则该页面需涵盖用户信息展示、编辑、密码修改及头像上传等核心功能。以下是实现这些功能的具体步骤:
一、用户信息展示与读取
该功能用于从数据库中安全读取当前登录用户的资料,并在前端页面中清晰呈现,确保仅显示授权可见字段。
1、使用session验证用户是否已登录,若未登录则重定向至登录页。
2、通过预处理语句从users表中查询当前用户ID对应的数据,避免SQL注入。
立即学习“PHP免费学习笔记(深入)”;
3、将查询结果中的username、email、reg_time等字段赋值给模板变量。
4、在HTML中使用PHP echo输出用户名和注册时间,邮箱地址做部分掩码处理:user***@example.com。
二、用户资料编辑表单提交
该功能允许用户修改昵称、性别、个人简介等非敏感信息,所有输入需经后端校验后再更新数据库。
1、构建包含隐藏字段(如user_id)和文本输入框的POST表单,禁用浏览器自动填充。
2、接收POST数据后,使用trim()去除首尾空格,用htmlspecialchars()转义输出内容。
3、对昵称长度进行限制(2–16字符),对简介内容进行strip_tags()过滤HTML标签。
4、执行UPDATE语句更新users表中对应记录,成功后设置提示消息:资料更新成功。
三、密码修改逻辑实现
该功能要求用户输入原密码以验证身份,再输入新密码两次进行一致性比对,确保安全性。
1、表单中设置三个密码类型输入框:原密码、新密码、确认新密码。
2、使用password_verify()比对用户提交的原密码与数据库中存储的哈希值。
3、新密码需满足至少8位、含大小写字母和数字的组合规则,否则返回错误提示。
4、通过password_hash()生成BCRYPT哈希值,并更新password字段,旧密码哈希值立即失效:密码已安全更新。
四、头像上传与裁剪处理
该功能支持用户上传本地图片作为头像,并在服务器端完成格式校验、尺寸压缩与路径存储。
1、表单enctype属性设为multipart/form-data,限制文件类型为jpg、jpeg、png,大小不超过2MB。
2、使用getimagesize()验证上传文件是否为真实图像,拒绝伪装文件。
3、通过imagecreatefromxxx系列函数加载图像,统一缩放为200×200像素并保存为webp格式。
4、将新头像路径写入数据库avatar字段,旧头像文件从服务器删除,返回:头像已更新为最新版本。
五、登录态与权限隔离控制
该功能确保个人中心页面仅对已认证用户开放,并防止越权访问他人数据。
1、在页面顶部引入公共鉴权文件,检查$_SESSION['user_id']是否存在且不为空。
2、从URL参数或POST中提取请求的user_id,强制与当前登录用户ID比对,不一致则终止执行。
3、对敏感操作(如删除账户)增加二次确认token,存于session并在提交时校验时效性。
4、所有数据库查询均绑定当前用户ID,禁止出现WHERE id = ?以外的任意ID硬编码:当前仅可访问本人数据。











