电脑安全

您当前的位置:主页 > 电脑安全 >

php header & http-网络编程

来源:[db:来源]标题:   函数    编辑:电脑技术全能网 时间:2019-09-19 18:29

原标题:php header & http-网络编程
   本文探讨的是怎样完全根绝warning: Cannot add header information - headers already sent in...... 这类使人莫明其妙的的过错。只有你写过PHP代码,信任都赶上过这个大多时间都使人莫明其妙的warning吧..明天咱们就来搞定它...............看了PHP手册,答复以下:新闻“Warning: Cannot send session cookie - headers already sent。。。”或许“Cannot add header information - headers already sent。。。”。函数 header(),setcookie() 和 session 函数须要在输入流中增添头信息。然而头信息只能在别的任何输入内容之前发送。在应用这些函数前不能有任何(如 HTML)的输入。函数 headers_sent() 可能检讨您的剧本能否曾经发送了头信息。请参阅“输入操纵函数”。意义是:不要在应用下面的函数前有任何笔墨,空行,回车,空格等。但。。。成绩是,这谜底并不使人中意。由于每每顺序在其余PHP情况下运转却畸形。起首:这过错是怎样发生的呢?让咱们来看看PHP是怎样处置HTTP header输入和主体输入的。PHP剧本开端履行时,它能够同时发送header(题目)信息和主体信息。 Header信息(来自 header() 或 SetCookie() 函数)并不会马上发送,相同,它被保留到一个列表中。 如许便可以同意你修正题目信息,包含缺省的题目(比方 Content-Type 题目)。然而,一旦剧本发送了任何非题目的输入(比方,应用 HTML 或 print() 挪用),那末PHP就必需先发送完全部的Header,而后停止 HTTP header。然后持续发送主体数据。从这时开端,任何增加或修正Header信息的试图都是不同意的,并会发奉上述的过错新闻之一。好!那咱们来处理它:笨方式:把过错忠告全不表现!掩耳盗铃之计,详细方式就不说了 ^_^#处理计划:1)实用于有权限编纂PHP。INI的人翻开php。ini文件(你招考比我清晰你的php。ini在那里),找到output_buffering =改成on或许任何数字。假如是IIS6,请必定改成ON,否则你的PHP效力会奇慢。2)应用虚构主机,不能编纂PHP。INI,怎样办?简略:在你的空间根名目下树立一个。htaccess文件,内容以下:AllowOverride AllPHP_FLAG output_buffering On可怜的情形是:仍是不可?全体网页都不能表现啦?那末,你能够打电话骂一通空间商,而后让他给你把apache的。htaccess AllowOverride翻开3)在PHP文件里处理ob_start()启用output buffering机制。 Output buffering支撑多档次 -- 比方,能够屡次挪用 ob_start() 函数。ob_end_flush()发送output buffer(输入缓冲)并禁用output buffering机制。ob_end_clean()肃清output buffer但不发送,并禁用output buffering。ob_get_contents()将以后的output buffer前往成一个字符串。同意你处置剧本收回的任何输入。道理:output_buffering被启用时,在剧本发送输入时,PHP并不发送HTTP header。相同,它将此输入经过管道(pipe)输出到静态增添的缓存中(只能在PHP 4。0中应用,它存在中心化的输入机制)。你依然能够修正/增加header,或许设置cookie,由于header现实上并没有发送。当全体剧本停止时,PHP将主动发送HTTP header到扫瞄器,而后再发送输入缓冲中的内容。//twoSession的任务方法 上面咱们来看一下Session是怎样任务的。不知你能否晓得经过Cookie来完成身份认证的吧。起首天生一个唯一无二的Cookie作为用户身份的标记,并在数据库中停止注册。而后经过用户通报来的Cookie和数据库中注册的Cookie停止对比以断定用户的身份

上一篇:动态URL静态化-网络编程

下一篇:没有了