header()的问题

unimer 2002-07-31 10:11:20
想弹出验证框
php代码如下,是php手册上的
<?php
Header("WWW-Authenticate: Basic realm=\"aaaa\"");
Header("HTTP/1.0 401 Unauthorized");
?>
运行后提示 500 Internal Server Error
,查看log,里面是

[error] [client 127.0.0.1] malformed header
from script. Bad header=HTTP/1.0 401 Unauthorized:
c:/apache/php/php.exe

应该如何解决?
...全文
11 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
可乐加水 2002-07-31

http验证必须在模块方式下才支持,我刚开始也犯了这样的错误
如果是apache的话可以这样
LoadModule php4_module d:/php4/sapi/php4apache.dll
AddModule mod_php4.c
回复
LeeMaRS 2002-07-31
Apache自己有默认的错误document这个不用我们担心。
楼主的问题主要是用的是CGI方式安装的PHP(原来打错了),不支持HTTP验证的缘故。
回复
_Shakespeare 2002-07-31
另外你的apache的 .htaccess 文件得有401这个错误的document。因为你想看的这个错误是有apache来提供的
如果你用php来提供,那么这个apche是不起作用的。它不会检查你想看的error,如果想看404(或者其他)的错误,那么apache只是标记一下你相应的错误(有时候这个错误是你写的文件)

所以,如果想看到404等错误你自己必须写一些html文件

多看一下http://www.w3.org/Protocols/rfc2616/rfc2616会有大收获


浅妄薄见,望与斟酌
回复
_Shakespeare 2002-07-31
首先确定你的php版本,如果是php3,那么
Header("HTTP/1.0 401 Unauthorized");是非法的
应该是header("Status: 404 Not Found");
另外如果你是IIS而不是apache的话用header('Status: 401.5 Unauthorized');也不能用http/
根据提示没有说你的第一条语句有错误
如果还不可以
用header("Location: HTTP/1.0 400 Bad Request");看看的你http是否工作---应该是工作的--根据你说的
回复
LeeMaRS 2002-07-31
请改用模块方式安装Apache.
将原来httpd.conf中安装PHP的语句去掉后,加上:
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3
AddType application/x-httpd-php .php4
AddType application/x-httpd-php-source .phps
LoadModule php4_module "x:/server/program/php/sapi/php4apache.dll"

最后一个改成你自己的路径.
回复
发动态
发帖子
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
社区公告
暂无公告