2015-11-13 126 views
3

我正在重新編碼和更新我的CMS的過程中我已經在CI2,CI3和我的生活工作我無法讓我的重定向功能爲我工作在CI3上。CodeIgniter 3重定向功能不工作

在重新設計我的模型之外,我的代碼到目前爲止與我的CI2代碼相同。最初我懷疑我的佈局鉤子是罪魁禍首,但我已經完全禁用他,我仍然沒有得到任何地方。

public function login() 
{ 
    //var_dump(logged_in()); 
    //if (logged_in()) 
     redirect('/user/'); 
} 

以上是我的用戶控制器登錄功能的全部內容。我已經刪除了所有其他代碼,以查明這個問題。我甚至評論說if聲明認爲甚至可能由罪魁禍首。不。

我的logged_in()函數返回TRUE或FALSE,具體取決於我的用戶會話中設置的某些內容。這似乎運作良好。據我所知,我的配置設置看起來不錯。我有URI助手自動加載,並且其他URI助手方法正常工作。

現在是奇怪的部分。當我訪問/ user/login時,如果我在重定向(它返回true)之前取消註釋var_dump()並重新評論它,頁面不會更新,並且我有bool(true),則不僅我的頁面不會重定向我的屏幕不管。如果var_dump已註釋,我打開一個新標籤users/login它不會加載任何東西,它只是作爲一個新標籤掛起。

編輯:我忘了提及當我使用「刷新」標誌(redirect('/user/', 'refresh');)時,這只是將我帶到about:空白頁面。

編輯#2:我已經將CI3文件複製到一個新的「項目」,甚至是那些不會使用內置的Welcome_Message視圖/控制器組合重定向。

+0

有你遵循'CI3'的命名約定? –

+0

我的所有其他代碼功能(到目前爲止)都正確無誤,我無法根據命名約定看到重定向如何失效。 但是,我的'login'函數是'class User extends Front_Controller'的一部分,'Front_Controller'擴展了'MY_Controller'。 – MapleBeard

+0

'MY_Controller'在覈心? –

回答

4

通過大量的試驗和錯誤,我發現我的問題。當我執行var_dump(base_url)時,我發現我是$_SERVER['SERVER_ADDR'],並且由於我在本地工作,即:: 1。我學到的是base_url沒有像CI2那樣工作。 Sadpanda。

Base_url配置變量設置不正確。在config/config.php我的base_url是使用單引號設置的。允許CI3猜測協議,它將默認爲$_SERVER['SERVER_ADDR'],這將返回::1,因爲我在本地工作。此外,當我的變量設置爲​​,使用單引號完全相同的問題突然出現了有人使用自動SERVER_ADDR

當睡眠剝奪的一些奇蹟的,我在這裏嘗試許多不同的值,並在某些時候我從單一切換到雙引號。

因此找到了解決方案。

$config['base_url'] = "http://localhost/supersecretname";

+0

它的奇怪。它也適用於我。 – eNeMetcH

0

在重定向功能中添加base_url()

redirect(base_url().'user', 'refresh'); 
+0

沒有運氣那裏。仍然重定向到我訪問的前一頁... – MapleBeard