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

登录功能报错求助:404未找到与403禁止访问问题排查

问题解决指南

先解决路径引发的404错误

表单action路径错误是导致404的核心原因:
在public/login.php中,原表单的action="/actions/login.php"指向服务器根目录下的actions文件夹,但实际处理文件位于public/actions/login.php。你需要将action路径修改为以下两种方式之一:

  • 相对路径(推荐,避免服务器根目录配置差异):
    <form method="post" action="actions/login.php">
    
  • 绝对路径(仅当服务器DocumentRoot为项目根目录时适用):
    <form method="post" action="/public/actions/login.php">
    

处理403访问禁止问题

路径修正后出现403,通常是权限或服务器配置限制导致,按以下步骤排查:

  1. 调整文件和目录权限
    • 将public/actions目录权限设置为755(所有者可读写执行,组和其他可读执行)
    • 将public/actions/login.php文件权限设置为644(所有者可读写,组和其他可读)
    • 确保服务器运行用户(如Apache的www-data、Nginx的nginx)对这些文件和目录拥有读取权限
  2. 排查服务器配置限制
    • 检查项目根目录或public目录下的.htaccess文件,确认是否存在限制actions目录访问的规则
    • 核实服务器虚拟主机配置,确保允许执行public/actions目录下的PHP文件

额外代码bug修复

你的代码中还有两处易引发后续问题的错误:

  1. 命名空间不一致
    public/login.php中使用use app\Hotel\User;,但public/actions/login.php中是use Hotel\User;,请统一命名空间,确保类能正确加载。
  2. Cookie过期时间逻辑错误
    setcookie('user_token', $token, time() *60 * 60 * 24 * 30, '/');中的time() * ...会导致时间戳溢出,Cookie会立即过期,应修改为:
    setcookie('user_token', $token, time() + 60 * 60 * 24 * 30, '/');
    

内容的提问来源于stack exchange,提问作者Blueteo Ta

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 03:17:06