服务器的Apache可能要以模块的方式解析PHP文件才可以

解决方案 »

  1.   

    我忘了说服务器上的不是apache是iis
      

  2.   

    PHP手册原文:
    PHP 的 HTTP 认证机制仅在 PHP 以 Apache 模块方式运行时才有效,因此该功能不适用于 CGI 版本。请认真查阅PHP手册
      

  3.   

    那如果要在iis下执行的话,需要怎么修改呢
      

  4.   

    一定要在IIS下执行的话,把php换成ASP吧,哈其实,你大可自己写个身份验证吧,为什么非得要用IE默认弹出的密码框哩~~~
      

  5.   

    手册语:
    同时请注意,在 PHP 4.3.3 之前,由于微软 IIS 的限制,HTTP 认证无法工作在 IIS 服务器的 CGI 模式下。为了能够使其在 PHP 4.3.3 以上版本能够工作,您需要编辑 IIS 的设置“目录安全”。点击“编辑”并且只选择“匿名访问”,其它所有的复选框都应该留空。 另一个限制,在您使用 IIS 的 ISAPI 模式的时候,您无法使用 PHP_AUTH_* 变量,而只能使用 HTTP_AUTHORIZATION。例如,考虑如下代码:list($user, $pw) = explode(':', base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));。 IIS 注意事项:: 要 HTTP 认证能够在 IIS 下工作, PHP 配置选项 cgi.rfc2616_headers 必须设置成 0(默认值)。