我已经尝试过针对此问题的堆栈溢出提供的解决方案,但无法真正解决此问题。
我正在处理其他人编写的代码。代码如下
$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
有人可以帮助我。
答案 0 :(得分:2)
您收到的错误是告知您服务器超全局中PHP_AUTH_USER
没有此类密钥。这意味着基本HTTP身份验证,有时在CGI中使用或在像apache这样的Web服务器配置中定义,不可用/启用。
请注意,错误级别是一个警告,因此除非您将错误级别设置为严格,否则它不会停止执行。
由于您说您正在处理其他人的代码,我想这意味着该代码最初旨在使用本机Web服务器身份验证,而不是使用数据库在代码中定义的身份验证模型。如果要在其他地方部署它,则需要找到替代方法,例如使用持久层创建自己的身份验证机制。
Apache下的HTTP身份验证文档: http://httpd.apache.org/docs/2.0/howto/auth.html
答案 1 :(得分:2)
['PHP_AUTH_USER']
的{{3}}州:
进行HTTP身份验证时,此变量设置为用户提供的用户名。
所以这告诉我的是,没有进行HTTP身份验证。
答案 2 :(得分:0)
它告诉您 完全 错误消息中的错误ID。
$_SERVER["PHP_AUTH_USER"]
不存在。
答案 3 :(得分:0)
您收到通知是因为在引用它之前未检查$ _SERVER [“PHP_AUTH_USER”]是否已设置。这只是一个通知,所以它并不重要。