我最近开发的管理网站遇到了一个非常令人沮丧的问题。我有错误处理设置为自己发送电子邮件,随机我在系统正在使用时收到多个'错误:[8]未定义的索引:用户名'消息。但我无法确定触发这些错误的确切操作。此外,当错误处理设置为echo时,这些消息不可见,并且站点的功能不受影响。
在我看来,问题是由会话超时引起的,并且网站未正确处理此问题。但是,当登录保留一段时间后再刷新它确实会按预期重定向到登录页面而没有错误。
每页顶部都包含:
session_start();
接下来是错误处理代码。然后是第一次检查的安全代码:
if(isset($_SESSION['loggedin']) and isset($_SESSION['username'])) {
如果失败,则调用session_destroy();
并重定向到登录页面。
我无法理解为什么我仍然继续接收
> Error: [8] Undefined index: username'
当每个页面的标题中都有isset检查时发送电子邮件!这些错误的不规则性使我无法进行调试。
非常感谢您对可能存在的问题的任何见解! 非常感谢:)
答案 0 :(得分:2)
尝试添加到您的调试代码中。调试电子邮件也会在输出文件时向您发送debug_backtrace调用的输出。通过这种方式,您可以看到从最外层脚本到发生错误的行所需的确切路径。