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