PHP框架學習錯誤總結

2022-06-06 23:54:11 字數 2118 閱讀 5619

錯誤一:

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()前面乙個是重新整理緩衝。這個空格估計是由於緩衝產生的。

QT 學習錯誤總結

1 cannot open file 可能是沒有關掉剛剛執行的視窗 2 dose not name a type 可能是沒有包含標頭檔案 3 視窗一閃而過 4 qt登入視窗呼叫主視窗一閃而過有關問題 www.myexception.cn 發布於 2012 11 1110 07 57 瀏覽 72次 q...

php學習總結,php學習部分總結

php apache 阿帕奇 php 直譯器 mysql 資料庫 php php檔案字尾就是.php 比如1.php 2.php php 要寫在 echo assss php 每一行的結束,必要有分號。變數建立變數的同時,必須要給變數乙個具體的值。a 1 常量const a 2 define a a...

集合框架學習總結

集合實際用來儲存物件 object 但需要注意的是,集合存放的實質上是物件的位址。接下來我們先來看一下集合框架圖,如下 同一顏色方框,我將它們視為同一級 首先由上圖確認一下它們的關係 collection 介面 set 介面 儲存元素特點 元素無序,元素不可以重複,與list集合體系本質區別就是無索...