2013-02-28 115 views
1

我是新來的蛋糕,我試圖讓事件保存後重定向的函數..它在其他代碼例如用戶,而不是在事件的..

功能並保存事件,它只是它不會重定向或使用本SETFLASH

這裏是我的事件控制器添加功能可按代碼:

public function add() { 
     if ($this->request->is('post')) { 
      $this->Event->create(); 
      if ($this->Event->save($this->request->data)) { 
       $this->Session->setFlash(__('The event has been saved')); 
       $this->redirect(array('action' => 'eventmanage')); 
      } else { 
       $this->Session->setFlash(__('The event could not be saved. Please, contact the administrator.')); 
      } 
     } 
    } 

任何幫助將非常感謝!

+1

最可能的原因是,您的應用程序之前輸出一些數據*重定向頭被髮送。如果您的文件包含utf-8 BOM等,請檢查'<?php'標記之前或'?>'結束標記之前是否有空格(您應該在php-only文件中刪除這些空格)。能夠通過檢查螢火蟲或Chrome網絡探測器內的響應來檢查此問題 – thaJeztah 2013-02-28 22:47:14

+0

謝謝,如果您希望整個「」是問題,您可以將其作爲答案張貼。 非常感謝! – iwj145 2013-03-01 19:46:25

+0

我發佈了它作爲答案,很高興我可以幫助! – thaJeztah 2013-03-01 21:09:17

回答

5

最可能的原因是您的應用程序在發送重定向標頭之前正在輸出一些數據。

檢查是否有您的<?php標籤前添加一個空格,或?>結束標記後(你應該反正只在PHP的文件中刪除的),或者如果你的文件中包含一個UTF-8 BOM等

您或許可以通過檢查螢火蟲或Chrome網絡探測器內的響應來檢查此問題

+0

謝謝,這節省了我的時間! – 2014-01-30 06:01:34

0

我只是想添加註釋,但還不能。

如果您想知道哪些文件正在輸出阻止重定向的數據,那麼您必須非常徹底。

在我的情況是一些如aparently inocent爲註釋(HTML註釋),我把在MODEL從哪個視圖,我想重定向(不那麼明顯的發現)。 這個未被重定向的空白頁面可能非常簡單,如換行空間就在<?php ?>之前,這兩者都很難找到,並且都會阻止重定向。

如果你有這個問題,希望我的提示可以幫助你。

0

用這個之前過濾功能

header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0"); // // HTTP/1.1 
    header("Pragma: no-cache");