www.hothosting.info
Free3.org |
Club.HosteGuide.com
previous pause next Hoster Highlights:
ninews2 - Home
首 页 业界新闻促销与打折信息选购指南主机评论主机课堂顶级主机商专区模板下载交流论坛

  当前位置:首页 » 主机课堂 » 应用经验 » 详细

收藏本站  
主机分类推荐
 
网站工具
  1. 主机性能报告
  2. 网站信息查询
  3. 网络服务商客户增减报告
  4. 网页排名查询
  5. WHOIS 查询
  6. IP地址查询
  7. 免费IP签名
HosteGuide
 

关于 PHP 程序出现怪异的空白页问题

本文由HosteGuide.com的资深工程师Leo原创,版权属HosteGuide.com所有,如需转载,请包含本文及版权声明的所有部分,以及本文的原始链接 http://cn.hosteguide.com/html/classroom/jingyan/php_blank_page,186.html

      我们在Hostmonster,Lunarpages 等Linux主机上安装一些PHP应用程序的时候,如dedecms  ecshop discuz 或其他的php程序,经常会遇到空白页面的问题,如果要解决这样的问题:

  首先,第一步要确定 php.ini 中的 error_display 配置选项是否设置为 On,如果不是就请马上改过来;然后,在程序中找到 error_reporting 函数,将其参数改为 E_ALL,如果没有找到该函数,就在 PHP 程序的第一行写入
 error_reporting(E_ALL);
现在,应该可以看到程序的错误提示,依据这些信息来判断程序的错误原因,通常都是一些常见错误,如果是那种情况就很好解决啦!例如:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/www/hosteguide.com/cms/php/inc_login.php:19) in /home/www/hosteguide.com/cms/php/server.php on line 3
这一类问题的原因是,你在程序中使用 session_start() 之前,已经有实际的 HTML 内容输出了,类似 echo 或 print 一条消息了,解决此类问题的办法是,将你的 session_start() 调到程序的第一行;如果这样还是不行,那么,就是属于如题所示的 PHP 程序问题。

  第一种情况,在你的程序中使用 session_start() 函数之前没有使用过 header() 函数,并且也没有任何的 HTML 输出,只是 include 了一些 PHP 文件,但在这些 PHP 文件中也没有 header() 函数以及任何的 HTML 输出;对于这种情况,你是否用光标键在 ?> 这个 PHP 代码结束语句后移动检查过呢?如果发现在 ?> 这个后面有空行或几个空格,删除这几个空行或空格,那么问题就解决了;如果你检查之后发现不是这个问题,那么,可能是因为你的 PHP 文件是 UTF8 编码的,其实是 UTF8 编码不是问题所在,问题出在 UTF8 文件最前面可能会有三字节 BOM(Byte Order Mark) 的签名,使用文本编辑器无法看到和编辑它,但是页面还是有输出的,当在 header、setcooke、session_start 等时会产生错误和警告,建议使用 UltraEdit、EmEditor 或者 dreamweaver 来清除它。

  第二种情况,这已经不属于 PHP 程序问题,但是对于菜鸟来说,并没有区别;这是属于 HTML 页面编码方面的问题,我曾经遇到过,当时也认为是程序出错了,很是头痛,在这里与大家分享一下经验。将 <meta http-equiv=content-type content="text/html; charset=UTF-8"> 调整到 <head> 后面,要紧挨着 <head> 后面,为什么会这样呢,这与 DOCTYPE 声明有关,即在你的模板中使用了
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
DOCTYPE 是 document type 的简写,主要用来说明你用的 XHTML 或者 HTML 是什么版本,浏览器根据你 DOCTYPE 定义的 DTD (文档类型定义)来解释页面代码,所以,如果你不注意设置了错误的 DOCTYPE,结果会让你大吃一惊。

不过,这同不同主机商对php设定的容错性相关,同样的程序,在hostmonster lunarpages 上出现了以上的问题,而在powweb上就是非常的正常。

相关文章
  1. 通过 Wget与ls的组合用文件清单批量下
  2. 在linux系统下用命令行修改时间日期的
  3. 国际域名过期后删除的流程
  4. 世界各域名过期与掉出时间大全(随时更
  5. 关于 PHP 程序出现怪异的空白页问题
  6. Centos Linux 服务器安装配置笔记
  7. 网线(双绞线)制作快速教程
  8. 接受国外客户信用卡付款的几种方法
您的观点
最新评论:
我们欢迎您对这篇文章进行评论,需审核,请自觉遵守互联网相关政策法规。 
发表评论:
评论内容
少于250字
用户名:    密码:
  匿名? 
注册 

IXWebHosting 4.95美金
2-16个独立IP地址,300G-无限存储空间,1-3个免费域名,Linux/Windows主机可选 仅4.95美金/月

 

国际域名注册仅 1.99美金
全球排名第一的Godaddy促销,购买任何非主机产品可用1.99美金/年 注册国际域名

 

StartLogic 抢客户特价
将网站转入StartLogic,可获得4.95美金/月的特价(原价5.95美金/月)

 
 
友情链接