PHP未定义索引错误 - 无法解决

时间:2012-06-26 15:02:38

标签: php indexing undefined

我已经尝试过针对此问题的堆栈溢出提供的解决方案,但无法真正解决此问题。

我正在处理其他人编写的代码。代码如下

$web_user = $_SERVER["PHP_AUTH_USER"];
$file_name = $web_user.'_nefops_var_sel.tab';
$state['dumper_file_name'] = $file_name;
$long_file_name = '/tmp/'.$file_name;
$state['dumper_long_file_name'] = $long_file_name;
$handle = fopen($long_file_name,'w') or die("bad file open");
fwrite($handle,$labels);    
fclose($handle);

我得到的错误是 遇到PHP错误

  

严重程度:通知
  消息:未定义的索引:PHP_AUTH_USER
  文件名:models / export_data_model.php
  行号:26

有人可以帮助我。

4 个答案:

答案 0 :(得分:2)

您收到的错误是告知您服务器超全局中PHP_AUTH_USER没有此类密钥。这意味着基本HTTP身份验证,有时在CGI中使用或在像apache这样的Web服务器配置中定义,不可用/启用。

PHP_AUTH_USER not set?

请注意,错误级别是一个警告,因此除非您将错误级别设置为严格,否则它不会停止执行。

由于您说您正在处理其他人的代码,我想这意味着该代码最初旨在使用本机Web服务器身份验证,而不是使用数据库在代码中定义的身份验证模型。如果要在其他地方部署它,则需要找到替代方法,例如使用持久层创建自己的身份验证机制。

Apache下的HTTP身份验证文档: http://httpd.apache.org/docs/2.0/howto/auth.html

答案 1 :(得分:2)

['PHP_AUTH_USER']的{​​{3}}州:

  

进行HTTP身份验证时,此变量设置为用户提供的用户名。

所以这告诉我的是,没有进行HTTP身份验证。

我建议你阅读PHP documentation for $_SERVER

答案 2 :(得分:0)

它告诉您 完全 错误消息中的错误ID。

$_SERVER["PHP_AUTH_USER"]不存在。

答案 3 :(得分:0)

您收到通知是因为在引用它之前未检查$ _SERVER [“PHP_AUTH_USER”]是否已设置。这只是一个通知,所以它并不重要。