非常困惑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'];
?>
答案 0 :(得分:0)
我刚刚使用您提供的代码进行了测试,无法重现。用户名正确显示在两个页面上 - 即使我从其中一个目录中删除了.htaccess。
您运行的是哪个版本的Apache?如何配置PHP?哪个MPM工作者正在被利用?