Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP会话变量未定义错误_Php_Session_Timeout - Fatal编程技术网

PHP会话变量未定义错误

PHP会话变量未定义错误,php,session,timeout,Php,Session,Timeout,我最近开发的一个管理网站遇到了一个非常令人沮丧的问题。我将错误处理设置为自己发送电子邮件,并在系统使用期间随机收到多条“错误:[8]未定义索引:用户名”消息。然而,我无法确定触发这些错误的确切行动。此外,当错误处理设置为echo时,这些消息不可见,并且站点的功能不受影响 在我看来,这个问题是由会话超时引起的,而站点没有正确处理这个问题。但是,当登录保留一段时间后刷新时,它确实会按照预期重定向到登录页面,不会出现错误 每页最上方包括: session_start(); 接下来是错误处理代码。随后

我最近开发的一个管理网站遇到了一个非常令人沮丧的问题。我将错误处理设置为自己发送电子邮件,并在系统使用期间随机收到多条“错误:[8]未定义索引:用户名”消息。然而,我无法确定触发这些错误的确切行动。此外,当错误处理设置为echo时,这些消息不可见,并且站点的功能不受影响

在我看来,这个问题是由会话超时引起的,而站点没有正确处理这个问题。但是,当登录保留一段时间后刷新时,它确实会按照预期重定向到登录页面,不会出现错误

每页最上方包括:

session_start();
接下来是错误处理代码。随后是安全代码,第一个检查是:

if(isset($_SESSION['loggedin']) and isset($_SESSION['username'])) {
如果失败,
session_destroy()并重定向到登录页面

我弄不明白为什么我仍然收到

> Error: [8] Undefined index: username'
当isset检查出现在每一页的页眉时发送电子邮件!这些错误的不规则性使我无法调试

如果您能深入了解问题所在,我们将不胜感激!
非常感谢:)

尝试添加到调试代码中。使调试电子邮件在文件输出时也向您发送调试回溯调用的输出。通过这种方式,您可以看到从最外层的脚本到发生错误的行的确切路径。

您得到的确切错误是什么,它指的是哪一行?该行中有什么代码?是否存在允许
$\u会话['username']
-使用代码位执行而不被会话检查器捕获的代码路径?可以是绕过会话检查的函数或include()/require()脚本。没有不包含这些头的代码可以自动运行。几乎所有的页面和函数都触发了这些错误,而不是一个。所有的标题和函数库都使用include()包含在每个页面的顶部。这个错误非常奇怪;这不是PHP错误。Nor“and”在PHP中是有效的运算符。好的,我将其改为&&。不过,这不会有什么不同,我会想…以前没有遇到过调试回溯,谢谢!我已经添加了它,如果我以后能收到145封错误邮件,我将发布更多信息,仍然无法进一步了解问题!debug_backtrace()只提供与$errfile相同的值。debug_backtrace()将向您返回一个数组。最简单的解决方案是通过print\r或var\u dump转储它的内容。如果你能为我们提供对你的问题的编辑输出,这可能会有所帮助。是的,这就是我正在做的,虽然数组只有一个索引,即文件名,但它没有帮助-而且几乎每个页面都会抛出这些错误。在没有看到代码的情况下,我可以为你提供更多建议。您唯一可以做的另一件事是将整个应用程序grep为$\u SESSION['username']或'username'或只是username,然后查看应用程序中的代码行。我仍然不知道是什么导致了这些错误,因为“>错误:[8]未定义的索引:username'”不是标准的PHP错误。我还注意到结尾有一句话。您是否可能在某处请求了$_[“username'”?我还要指出,未定义的索引在PHP中生成警告,而不是错误。