我在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」方法,儘管= \
你可以與我們分享你的'UsersController :: login()'方法嗎? – Jelmer
@Jelmer我剛剛更新了我的問題的方法,在此先感謝! –