Php $request变量在post后为空
我在CakePHP上遇到了一个奇怪的问题,当我尝试在本地登录到我的网站管理(/users/login)时,我输入了用户名和密码,工作正常 但在我上传到远程服务器后,同样的代码,sambe数据库不允许用户登录,它说用户名/密码无效,但是在几个小时试图弄清楚发生了什么之后,我发现FormAuthenticate.php中的authenticate方法中的变量$request基本上是空的,它是这样进入远程服务器的:Php $request变量在post后为空,php,cakephp,cakephp-2.2,Php,Cakephp,Cakephp 2.2,我在CakePHP上遇到了一个奇怪的问题,当我尝试在本地登录到我的网站管理(/users/login)时,我输入了用户名和密码,工作正常 但在我上传到远程服务器后,同样的代码,sambe数据库不允许用户登录,它说用户名/密码无效,但是在几个小时试图弄清楚发生了什么之后,我发现FormAuthenticate.php中的authenticate方法中的变量$request基本上是空的,它是这样进入远程服务器的: object(CakeRequest) { params => arra
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()上更改为: ... 如果($this->request->is('get')){ ...
然后它工作了,但我需要它与“post”方法一起工作,虽然=\结果表明服务器需要重新启动。我包括了这两行代码来测试.htaccess文件上的fileupload组件: php_值上传_最大_文件大小99999m php_值post_最大尺寸99999m 然后它开始像上面所描述的那样行为怪异,因此我决定重新启动服务器,并收到以下错误消息: “PHP警告:第0行中XXX字节的POST内容长度超过了-XXX字节的限制” 在谷歌上搜索发现它与文件大小有关,所以我决定将值从“9999999999 m”更改为“2147483647”,然后重新启动服务器,现在一切正常
很抱歉犯了这样一个新手错误,我对PHP和Cake非常陌生,我想每次上传新文件时都不必重新启动服务器。你能分享你的
UsersController::login()吗
method with us?@Jelmer我刚刚用这个方法更新了我的问题,提前谢谢!你上传了什么样的文件?因为上传文件时你不必重新启动服务器。至少,我以前从来没有这样做过。或者你在编辑php.ini文件吗?@Jelmer确实我编辑了php.ini,这就是我为什么要这么做的原因必须重新启动服务器吗?我不知道,谢谢。因为Apache需要“重新读取”文件。如果没有重新启动,则不会:)也许重新加载可以,但我不太确定。