这些在做一个项目,其实有涉及到PHP,我在公司现在的web服务器(APACHE 2.X+PHP 4.3.X)上应用,却怎么也无法使用.提示如下一:"Warning: Cannot modify header information - headers already sent by (output started at /usr/local/apache/htdocs/macallow/authentication.inc: 1) in usr/local/apache/htdocs/macallow/checklogin.php on line 9"
这是一个很典型的问题。
a,首先确认php.ini的一些设定如:
session.auto_start = 1 // 0 为不自动打开,请设为1
session.save_path= /tmp //对此目录是否有写权限
b,如果上述都确认没问题,那么请检查authentication.inc这个文件:
开头,以?>
结尾,前和?>后不能有其他字符。具体到上面的例子,很明显,提示信息说authentication.inc的第一行就开始了html输出,这有可能是第一行的部分前面被加上的其他字符,比如空格一类的.---有些程序会使用设置一个HTTP头。由于HTTP头必须在html代码输出之前设置好,否则html代码已经开始往客户端发送了,HTTP也就已经发送过了,没法追回来重新设置了。
提示如下二:
"Warning: Cannot modify header information - headers already sent by (output started at /usr/local/apache/htdocs/macallow/authentication.inc: 26)in usr/local/apache/htdocs/macallow/checklogin.php on line 9"
在这里,因为authentication.inc的26行根本不是末行,最末行为?>,并确认无其他字符.所以应该检查其它,我检查也许多,终于从网上查到下面内容:
把php.ini中output_buffering = off改为output_buffering = on就行了。