-1

我已经尝试过堆栈溢出中提供的解决方案来解决这个问题,但无法真正解决这个问题。

我正在研究其他人编写的代码。代码如下

$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

4 回答 4

3

您收到的错误是让您知道服务器超全局中没有这样PHP_AUTH_USER的密钥。这意味着基本 HTTP 身份验证(有时在 CGI 中使用或在 apache 等网络服务器配置中定义)不可用/启用。

PHP_AUTH_USER 未设置?

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

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

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

于 2012-06-26T15:05:20.263 回答
2

状态的PHP 文档$_SERVER['PHP_AUTH_USER']

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

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

我建议您阅读使用 PHP 的 HTTP 身份验证

于 2012-06-26T15:05:36.003 回答
0

您收到通知是因为您在引用它之前没有检查 $_SERVER["PHP_AUTH_USER"] 是否已设置。不过,这只是一个通知,因此并不那么重要。

于 2012-06-26T15:07:55.503 回答
-1

它准确地告诉您错误消息中的错误 ID。

$_SERVER["PHP_AUTH_USER"]不存在。

于 2012-06-26T15:04:42.400 回答