2013-05-25 56 views
0

我在CakePHP上遇到這個奇怪的問題,當我嘗試登錄到本地管理我的網站(/ users/login)時,我輸入了我的用戶名和密碼並且工作正常 但是在我將它上傳到遠程服務器之後,相同的代碼,sambe數據庫將不允許用戶登錄,它說用戶名/密碼是無效的,但是經過幾個小時試圖弄清楚發生了什麼,我發現變量$請求從FormAuthenticate.php的身份驗證方法中基本上是空的,它的未來是這樣到遠程服務器:

object(CakeRequest) { 
    params => array(
     'plugin' => null, 
     'controller' => 'users', 
     'action' => 'login', 
     'named' => array(), 
     'pass' => array() 
    ) 
    data => array() 
    query => array() 
    url => 'users/login/' 
    base => '' 
    webroot => '/' 
    here => '/users/login/' 
} 

然而,在同一頁,在本地運行返回:

object(CakeRequest) { 
    params => array(
     'plugin' => null, 
     'controller' => 'users', 
     'action' => 'login', 
     'named' => array(), 
     'pass' => array() 
    ) 
    data => array(
     'User' => array(
      'password' => '*****', 
      'username' => 'admin' 
     ) 
    ) 
    query => array() 
    url => 'users/login/' 
    base => '' 
    webroot => '/' 
    here => '/users/login/' 
} 

我試圖找到任何可能會造成這一點,但仍然沒有運氣,我是新來CakePHP的,所以我可能失去了一些東西,謝謝!


更新#1,這是我的UserController中::登錄方法

public function login() { 
     $this->layout = 'default_admin'; 
     if ($this->request->is('post')) { 
      if ($this->Auth->login()) { 
       $this->redirect($this->Auth->redirect()); 
      } else { 
       $this->Session->setFlash(__('Invalid username or password, try again')); 
      } 
     } 
    } 

更新#2:我已經改變了從 「後」 的形式方法 「獲得」 採用開發商從Chrome的工具,然後在UserController :: login()我改爲: ... if($ this-> request-> is('get')){ ... 然後它工作,但我需要它使用「post」方法,儘管= \

+2

你可以與我們分享你的'UsersController :: login()'方法嗎? – Jelmer

+0

@Jelmer我剛剛更新了我的問題的方法,在此先感謝! –

回答

0

事實證明,服務器需要重新啓動。我已經包括了這兩條線來測試.htaccess文件的文件上傳組件:

php_value upload_max_filesize的9999999999M

php_value post_max_size要9999999999M

然後,它開始變得古怪,如上所述,所以我決定重新啓動服務器,並收到以下錯誤消息:

「PHP警告:POST內容長度爲XXX個字節exce EDS的-XXX字節未知在線0" 極限

Google上搜尋它,我看到它有一些東西需要與文件大小,所以我決定改變從值‘9999999999M’到‘’並重新啓動服務器,現在一切正常。

對不起這樣一個菜鳥的錯誤,我真的很陌生,PHP和Cake,我想我沒有必要重新啓動服務器,只要我上傳新文件。

+0

你正在上傳什麼類型的文件?因爲上傳文件時不必重新啓動服務器。至少,我從來沒有這樣做過。還是你在編輯php.ini文件? – Jelmer

+0

@Jelmer的確編輯了php.ini,這就是爲什麼我必須重啓服務器的原因嗎?我不知道那很感謝= D –

+1

是的。因爲Apache需要「重讀」文件。它不會,如果它沒有重新啓動:)也許重裝會做,但我不太確定。 – Jelmer