Caot modify header information出错的原因_PHP技巧_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

Caot modify header information出错的原因

作者:黑客防线网安PHP教程基地 来源:黑客防线网安PHP教程基地 浏览次数:0

黑客防线网安网讯:  WebjxCom提示:Cannotmodifyheaderinformation-headersalreadysentby出错的原因.    <?php    ob_start();    setcookie("username","宋岩宾",time()+3600);    echo"t...
  WebjxCom提示:Cannotmodifyheaderinformation-headersalreadysentby出错的原因.
  
  <?php
  
  ob_start();
  
  setcookie("username","宋岩宾",time()+3600);
  
  echo"theusernameis:".$HTTP_COOKIE_VARS["username"]." ";
  
  echo"theusernameis:".$_COOKIE["username"]." ";
  
  print_r($_COOKIE);
  
  ?>
  
  Warning:Cannotmodifyheaderinformation-headersalreadysentby出错的原因
  
  我在php程序的头部加了
  
  header("cache-control:no-cache,must-revalidate");
  
  之后页面就出现上面的错误看了N个资料也没有结果今天偶尔发现原来是我的php.ini里面的配置出了问题,在C:windows下找到php.ini文件
  
  output_buffering默认为off的我现在把它设为4096就OK了。
  
  用于解决显示提示错误,不能按(日期+导出文件数)为文件名的错误信息.
  
  setcookie函数必須在任何資料輸出至浏览器前,就先送出
  
  基於上面這些限制,所以執行setcookie()函數時,常會碰到"Undefinedindex"、"Cannotmodifyheaderinformation-headersalreadysentby"…等問題,解決"Cannotmodifyheaderinformation-headersalreadysentby"這個錯誤的方法是在產生cookie前,先延緩資料輸出至瀏覽器,因此,您可以在程式的最前方加上ob_start();這個函數。
  
  ob_start()函数用于打开缓冲区,比如header()函数之前如果就有输出,包括回车空格换行都会有"Headerhadallreadysendby"的错误,这时可以先用ob_start()打开缓冲区PHP代码的数据块和echo()输出都会进入缓冲区而不会立刻输出.当然打开缓冲区的作用很多,只要发挥你的想象.可以总结以下四点:
  
  1.用于header()之前
  
  ob_start();//打开缓冲区
  
  echo"Hellon";//输出
  
  header("location:index.php");//把浏览器重定向到index.php
  
  ob_end_flush();//输出全部内容到浏览器
  
  ?>
  
  2.phpinfo()函数可获取客户端和服务器端的信息,但要保存客户端信息用缓冲区的方法是最好的选择.
  
  ob_start();//打开缓冲区
  
  phpinfo();//使用phpinfo函数
  
  $info=ob_get_contents();//得到缓冲区的内容并且赋值给$info
  
  $file=fopen('info.txt','w');//打开文件info.txt
  
  fwrite($file,$info);//写入信息到info.txt
  
  fclose($file);//关闭文件info.txt
  
  ?>
  
  3.静态页面技术
  
  ob_start();//打开缓冲区
  
  ?>
  
  php页面的全部输出
  
  $content=ob_get_contents();//取得php页面输出的全部内容
  
  $fp=fopen("output00001.html","w");//创建一个文件,并打开,准备写入
  
  fwrite($fp,$content);//把php页面的内容全部写入output00001.html,然后……
  
  fclose($fp);
  
  ?>
  
  4.输出代码
  
  Functionrun_code($code){
  
  If($code){
  
  ob_start();
  
  eval($code);
  
  $contents=ob_get_contents();
  
  ob_end_clean();
  
  }else{
  
  echo"错误!没有输出";
  
  exit();
  
  }
  
  return$contents;
  
  }
  
  
    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-17476-1.html
网站维护教程更新时间:2012-09-21 05:19:40  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer