错误一:

  Fatal error: “Uncaught exception 'Zend_Controller_Response_Exception' with message 'Cannot send headers; ”或者“You must call ... before any output has been sent to the browser; output started in ...”

  解决方案:

  修改php.ini的参数配置项

  output_buffering off 修改为output_buffering on

  其他的方法:

  把controller层里面的最后的 “?>”去掉就ok了

  不知道你的问题有没有解决,希望你没有应为这个放弃ZF。最近我也遇到同样的问题,找了半天原因,其实是utf-8的问题。解决方法,将所有相关文件保存成UTF8无BOM格式就行了。

  分析原因:

  根据我的经验,我根据你在redirect之前是不是有echo的输出了?在redirect之前请不要有任何的输出!

  看看官方说法:

  如果你看到错误信息,"Cannot modify header information - headers already sent" 或者 "You must call ... before any output has been sent to the browser; output started in ...",那么仔细检查最近的和这信息有关联的原因(函数或方法)。任何请求发送HTTP头的动作,象发送一个cookie,必须在发送正常的输出(非缓冲输出)之前完成,除非使用PHP的输出缓冲。

  经常使用output buffering就能足够防止这个问题,并帮助提高性能。例如,在php.ini里,"output_buffering = 65535"允许有64K的缓冲。即使输出缓冲在生产服务器上提高性能是一个良好的策略,仅仅依靠缓冲来解决"headers already sent"还是不够。应用程序一定不能超过缓冲的大小,否则无论什么时候输出发送(先于HTTP头)超过缓冲的大小,问题就会发生。

  作为选择,尝试重新安排应用程序逻辑,这样先于发送任何输出,动作处理头被执行。

  如果一个Zend_Session方法导致这个错误信息,仔细检查这个方法,并确保它的使用在应用程序中是必须的。例如,destroy() 缺省的用法也发送HTTP头来使客户端的会话cookie过期。如果这不是必须的,那么使用destroy(false),因为设置cookie的指令和HTTP头一起发送。

  作为选择,尝试重新安排应用程序逻辑,这样先于发送任何输出,动作处理头被执行。

  删除任何结束"?>"标记,如果它们出现在PHP源文件的末尾。它们是必须的,并且新行和其它在结束标记之后的最近的可见的空白字符可以触发输出给客户。

  错误二:

  Uncaught exception 'Zend_Db_Table_Row_Exception' with message 'Specified column "user_name" is not in the row'。

  解决办法

  注意字段大小写是否与数据库里一致,尽量保持一致。

  分析原因

  Zend的fetchAll查询出来的是一个Zend_Db_Table_Rowset,每一条RowSet是与数据库中的字段相对应的。它并没有将其完全封装成一个类似于Hibernate的Pojo。

  错误三:

  Zend生成的XML不能被解析。也就是在Ajax里面会产生错误。

  解决方案

ob_end_clean();

header("Content-Type: text/xml");
  如果还不行就在前面再加一条:

ob_end_flush();

ob_end_clean();

header("Content-Type: text/xml");
  分析原因

  仔细分析发现Zend Framework不知道在哪里提前输出了一些空格内容。

  开始以为是因为内容中间包含中文字符,因此可能是encoding方面的问题。但是无论encoding从utf-8改为gb2312还是iso之类,都没有任何改变,甚至更糟:中文成了乱码。在办公室的电脑测试,发现全部为英文也有这种错误。

  ob_end_clean()是出掉客户端缓冲,ob_end_flush()前面一个是刷新缓冲。这个空格估计是由于缓冲产生的。

PHP框架学习错误总结的更多相关文章

  1. Spring.Net框架学习错误集锦1

    最近IoC框架非常火热,所以就学习了非常流行的IOC框架之一spring.NET,遇到如下问题: Error creating context 'spring.root': Could not loa ...

  2. hibernate框架学习错误集锦-org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.MANUAL)

    最近学习ssh框架,总是出现这问题,后查证是没有开启事务. 如果采用注解方式,直接在业务层加@Transactional 并引入import org.springframework.transacti ...

  3. 2013 最新的 play web framework 版本 1.2.3 框架学习文档整理

    Play framework框架学习文档 Play framework框架学习文档 1 一.什么是Playframework 3 二.playframework框架的优点 4 三.Play Frame ...

  4. 各种demo——CI框架学习

    各种demo——CI框架学习   寒假学习一下CI框架,请各位多多指教! 一.CI的HelloWorld! 注意:CI禁止直接通过文件目录来访问控制器. ./application/controlle ...

  5. phalcon(费尔康)框架学习笔记

    phalcon(费尔康)框架学习笔记 http://www.qixing318.com/article/phalcon-framework-to-study-notes.html 目录结构   pha ...

  6. 够快网盘支持与iOS-ASIHTTPRequest框架学习

    够快网盘支持与iOS-ASIHTTPRequest框架学习 前段时间在公司的产品中支持了够快网盘,用于云盘存储. 在这个过程中,学习到了很多新的知识,也遇到了很多问题,在此记录一下. 首先就够快的AP ...

  7. Spring框架学习1

    AnonymouL 兴之所至,心之所安;尽其在我,顺其自然 新随笔 管理   Spring框架学习(一)   阅读目录 一. spring概述 核心容器: Spring 上下文: Spring AOP ...

  8. JavaSE中Collection集合框架学习笔记(3)——遍历对象的Iterator和收集对象后的排序

    前言:暑期应该开始了,因为小区对面的小学这两天早上都没有像以往那样一到七八点钟就人声喧闹.车水马龙. 前两篇文章介绍了Collection框架的主要接口和常用类,例如List.Set.Queue,和A ...

  9. ABP 框架学习-01篇

    从来没有自己写过太多的技术性文章,博客里面的文章都是拷贝别人的东西,做一个笔记功能给自己用的.最近觉得应该写点自己的学习博客 https://aspnetboilerplate.com/ ABP框架, ...

随机推荐

  1. BZOJ 1565 植物大战僵尸(最大权闭合图)

    题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1565 题意:植物大战僵尸,一个n*m的格子,每 个格子里有一个植物,每个植物有两个属性: ...

  2. c#中struct和class的区别 详细[转]

    转自:http://blog.csdn.net/justlovepro/archive/2007/11/02/1863734.aspx 有这么几点不同: 1.struct 是值类型,class是对象类 ...

  3. Topic Model

    Topic Model 标签(空格分隔): 机器学习 \(\Gamma\)函数 \(\Gamma\)函数可以看做是阶乘在实数域上的推广,即: \(\Gamma(x) = \int_{0}^{+\inf ...

  4. SQL触发器,数据库

    触发器类型有两种: 1.AFTER(FOR)触发器 在动作执行之后触发(增删改执行完成后,触发器中的代码再执行),不能为视图指定for触发器,只能为表指定该触发器. 2.instead of触发器 可 ...

  5. Creating HTML table with vertically oriented text as table header 表头文字方向

    AS an old question, this is more like info or reminder about vertical margin or padding in % that ta ...

  6. JPG 批量压缩、 PNG32、PNG24转PNG 透明批量压缩工具 【JPNG】 支持多级目录

    说在最前,压缩不一定是最好的,仅仅是为了方便自己工作需要.主要是手机端图片 算法说明:JPG压缩使用的是  adobe 的 JPGEncoder+ AIR的JPEGEncoderOptions (注 ...

  7. [转载] 每周推荐阅读 BFQ:实现IO的隔离共享与高吞吐访问

    磁盘IO和网络IO隔离与共享是混部应用中基本需求,从早些年的BVC到现在的Matrix,以及Galaxy,或者未来的BS/Mint混部都遇到类似的问题:由于无法有效实现IO级的隔离(包括吞吐隔离.延时 ...

  8. js打印出对象的方法

    var description = ""; for (var i in order) { var property = order[i]; description += i + & ...

  9. JavaWeb学习总结(十)--JDBC之MySQL大数据

    一.基本概念 大数据也称之为LOB(Large Objects),LOB又分为:clob和blob,clob用于存储大文本,blob用于存储二进制数据,例如图像.声音.二进制文等. 但是,在mysql ...

  10. python中模块sys与os的一些常用方法

    sys模块提供了访问或操作与python解释器相关方法与对象. 我们就列举出常用到的知识,以后,随着学习,不断补充. 几个常用到的动态对象: sys.argv,这是一个列表,它包含了所有传递给脚本的命 ...