2012-04-02 64 views
1

我管理CakePHP的1.1 CMS的網站,我們的主人剛剛升級PHP到5.3,導致一些錯誤,如:想要得到的CakePHP 1.1 PHP工作5.3

Notice: Undefined variable: banner_image in /home2/intiwara/cake/app/views/layouts/public_site.thtml on line 49 
Notice: Undefined variable: news_menu in /home2/intiwara/cake/app/views/articles/volunteer_animal_refuge.thtml on line 73 

我可以隱藏錯誤通過改變蛋糕/蛋糕/庫/的configure.php線133爲:

error_reporting(E_ERROR); 

但是仍然沒有找到變量和模型,因此頁面不呈現。

我意識到我需要升級到CakePHP 2.1,並且我發現每篇文章都討論了這一點。然而,我是這裏唯一的技術志願者,明天下午我只有幾個小時才能使網站正常工作,然後我在埃塞俄比亞農村工作了兩週的工作,所以我希望有一個'解決方法'的解決方案,我可以在此期間就位。 (主機沒有告訴我們這是即將發生..)

我不需要管理功能,我不介意隱藏錯誤 - 我只需要網站呈現。有什麼辦法可以欺騙PHP 5.3來「查看」這些變量?

謝謝巨大 克里斯

+2

升級CakePHP而不是抑制錯誤 – Baba 2012-04-02 21:03:52

+1

沒有任何人可以在沒有看到源代碼的情況下做什麼。這些變量不是來自CakePHP,而是來自您的應用程序。 – JJJ 2012-04-02 21:41:42

回答

0

如果你按照約定你可能有一些運氣,可以升級到1.3 withing的合理時間內,如果您有與CakePHP的體驗更上一層樓。從1.1到2.1 ......這不會那麼順利。

在不知道整個代碼和所有問題的情況下,很難說出任何內容,甚至不可能說如果嘗試解決修復困難或者適當升級到1.3更好。

如果這確實是關鍵任務中的一員,請私下聯繫我,我會爲您提供與可以完成任務的公司的聯繫。

+0

非常感謝大家 - 我相信你是對的。未定義的變量都是模型名稱,我只需要對數據庫數據的只讀訪問權限,所以我希望可能會有一個快速且不雅的解決方法來獲取我不知道的語法。 – Chris 2012-04-03 12:58:49

3

下面是我從1.1轉換到1.2的SVN評論。我沒有費心整理它們(除了奇怪的「ED:」),因爲我可能是最後一個從CakePHP 1.1升級的人,當我離開時我應該把燈熄滅。這些是在我已經完成了CakePHP站點附錄中詳細描述的標準'替換cake目錄'和'config'更新:http://book.cakephp.org/view/3/The-Manual#!/1.2/en/view/411/Migrating-from-CakePHP-1-1-to-1-2

我花了兩天的時間用我生鏽的PHP升級一個相當簡單的CMS,並且由於糟糕的文檔和錯綜複雜的框架引入,努力使我再次使用CakePHP。 (雖然我浪費了半天的時間,當時我的主機認爲我的一個模板文件是一個病毒,所以我阻止了每個IP地址。)

如果我發現了一個最大的時間段,錯誤代替html-> tagErrorMsg。相反,我將它們全部刪除,將錯誤放入1.2中的標準練習中,然後重新添加。 form-> input會自動顯示錯誤,但對於我來說,使用form-> select比form-> input('type'=>'select'..更容易,因爲將選項和參數從html->使用正則表達式選擇form-> input。

  1. HTML輔助遷移到表單輔助

  2. - > renderElement()需要改變 - >元素()

  3. - >刪除()需要改變 - >刪除( )

  4. generateList()需要被遷移到找到( '列表',陣列())

  5. VALID_EMAIL,VALID_NOT_EMPTY(和VAL ('rule'=> array('email')) 和 數組('rule'=> array('minLength',1)) -ED:這些後來更新爲包含default錯誤信息,但我想我需要沒有,如果我早知道約形式 - >錯誤(

  6. 改變 形式 - >輸入形式 - >文本形式 - >提交 形式 - >密碼 看在這裏代碼https://github.com/zeroasterisk/CakePHP-cake_up-shell/blob/master/cake_up.php獲得一些方便的詳細信息。

  7. 控制器相對在1.2這 - >重定向現在,所以我把初始的「/」,其中我沒有在1.1版本

  8. 形式 - >輸入(型號/屬性=>形狀配合>文本(Model.property html-> tagValue(Model/property => html-> value(Model.property html-> selectTag(Model/property => form-> select(Model.property $ form-> textarea ('Article.intro $ form-> labelTag('Article.body

  9. 現在在模型中指定的錯誤消息而不是模板文件 除了控制器生成的錯誤,例如添加用戶時重複的用戶名 - 這些設置與以前一樣,但只是使用echo $ username_error - ED顯示:ED:這也是一個錯誤 - 後來更改爲form-> error( 'model.field',$ custom_error,options eg css class) html-> labelTag => form-> label tagValue => value selectTag =>在幫助程序生成的HTML中選擇 ,使用句號作爲model.field分隔符而不是正斜線,例如HTML的「值,而不是HTML-(model.field)> tagValue(模型/場)

  10. 刪除SAN-> SQL和cleanUpFields 刪除缺省錯誤消息tagErrorMsg - ED:此我的驗證更新大部分是一個錯誤 - 我應該已經替換html-> tagErrorMsg w由於1.2的新錯誤,無法顯示在選項

  11. 創建model.saveString生成SQL INSERT語句似乎是工作的口音第i個形式 - >錯誤 刪除從形式 - 西班牙語選項語調>選擇(ED :我會在CakePHP的核心中生成一個爲模型生成INSERT stmnt的方法,允許我執行自動電子郵件備份)

  12. 使用集成form-> input方法顯示錯誤的另一種方法 - 更優雅,顯示錯誤和所有類型的HTML輸入控件,但用複雜定製參數數組替換特定調用的正則表達式太複雜/不可靠。

  13. 在控制器,替換模型 - >驗證(模型)與這 - >集(這 - >數據),那麼模型 - >驗證()

  14. 驗證: 添加形式 - >錯誤調用每輸入。 (ED:應使用正則表達式搜索並用form-> error替換html-> tagErrorMsg ..這將節省大量轉換工作)

  15. 自定義控制器生成的錯誤消息必須使模板中的字段名無效,form-> error中的字段必須與該字段名匹配,即使它不是模型字段名,例如password1和password2。