我在CakePHP上面临这个奇怪的问题,当我尝试在本地登录我的网站管理(/ users / login)时,我输入我的用户名和密码,工作得很好 但是在我将它上传到远程服务器后,相同的代码,sambe数据库将不允许用户登录,它说用户名/密码无效,但几个小时后试图弄清楚发生了什么我发现FormAuthenticate.php中身份验证方法中的变量 $ request 基本上是空的,它会像这样进入远程服务器:
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 :: login方法
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中的开发人员工具将表单方法从“post”更改为“get”,然后在UserController :: login()上将其更改为: ... if($ this-> request-> is('get')){ ... 然后它工作,但我需要它使用“post”方法虽然= \
答案 0 :(得分:0)
事实证明服务器需要重启。我已经包含这两行来测试.htaccess文件中的fileupload组件:
php_value upload_max_filesize 9999999999M
php_value post_max_size 9999999999M
然后它开始表现得很奇怪,如上所述,所以我决定重启服务器,我收到以下错误信息:
“PHP警告:POST内容长度为XXX字节超过第0行未知中-XXX字节的限制”
谷歌搜索它我看到它与文件大小有关所以我决定将值从“ 9999999999M ”更改为“ 2147483647 ”并重新启动服务器和所有内容现在工作得很好。
很抱歉这样一个菜鸟错误,我是PHP和Cake的新手,我想我上传新文件时无需重启服务器。