PHP_AUTH_USER仅在某些帧中已知

时间:2010-04-28 13:48:42

标签: php authentication

非常困惑PHP_AUTH_USER。在我的网页中,我在每个目录中都有.htaccess文件,控制谁可以(并且不能)查看某些文件夹。为了进一步定制我希望在PHP代码中使用PHP_AUTH_USER的页面,即根据用户定制页面内容。

这似乎只能起作用。下面的代码片段希望能够证明我的问题。

主index.php创建一个框架页面,左上角有一个菜单结构,右上角是一些不可靠的东西,然后在底部框架中定制内容。在左上方,用户被正确显示,但在底部框架中,PHP_AUTH_USER似乎不再被设置(它返回空,并且当打印所有未列出的$ HTTP_SERVER_VARS时)。

Script.php位于不同的路径中,但它们都包含.htaccess文件,并且所有其他内容都正确显示。为什么它不知道PHP_AUTH_USER呢?

在chrome上运行php版本5.2.12。

的index.php

 <FRAMESET ROWS="35%, *">
 <FRAMESET COLS="25%, *">
 <FRAME SRC="Menu.php">
 <FRAME SRC="Something.php">
 </FRAMESET>
     <FRAME SRC="../OtherPath/Script.php?large=1" name="outputlisting">
   </FRAMESET>
</FRAMESET>

Menu.php

<ul>
<li>Reporting
<ul>
<li>Link1 <a href="../OtherPath/Script.php" target="outputlisting">All</a>, <a href="../OtherPath/Script.php?large=1"  target="outputlisting">Big</a>
</ul>
<?php
echo 'IP Address: ' . $_SERVER['REMOTE_ADDR'] . '<br />';
echo 'User: ' . $_SERVER['PHP_AUTH_USER'];
?>

的script.php

<?php 
echo 'User: ' . $_SERVER['PHP_AUTH_USER'];
?>

1 个答案:

答案 0 :(得分:0)

我刚刚使用您提供的代码进行了测试,无法重现。用户名正确显示在两个页面上 - 即使我从其中一个目录中删除了.htaccess。

您运行的是哪个版本的Apache?如何配置PHP?哪个MPM工作者正在被利用?