今天用到一段别人的程序,运行时出错,提示:Warning: Cannot modify header information - headers already sent by....,打开文件,发现报错的那一行是setcookie()函数的一个设置,平常常用session,对cookie不老熟的,找资料,终于解决了。先说一下问题发生的原因啊:
1、使用setcookie必须在<html>标签之前;
2、使用setcookie之前,不可以使用echo输入内容;
3、直到网页被加载完后,cookie才会出现;
4、setcookie必须放到任何资料输出浏览器前,才送出;
就是因为上面这些原因,才导致了出错,所以解决办法是在输出内容之前,产生cookie,可以在程序的最上方加入函数 ob_start();
ob_start :打开输出缓冲区
函数格式:void ob_start(void)
说明:当缓冲区激活时,所有来自PHP程序的非文件头信息均不会发送,而是保存在内部缓冲区。为了输出缓冲区的内容,可以使用ob_end_flush()或flush()输出缓冲区的内容。