我有这个代码验证用户登录,它在localhost上工作正常但在远程服务器上不起作用。它只加载并保留在登录页面上。但是当用户名或密码错误时,它会很好地给出错误消息。
if($this->request->is('post')){
$data = $this->request->data;
$password = sha1($data['password']);
$email = $data['email'];
$authUser = $this->User->find('first', array('conditions' => array('User.email' =>
$email, 'User.password' => $password)));
if(count($authUser) > 0){
CakeSession::write('loggedInUser', $authUser['User']['id']);
CakeSession::write('loggedInName', $authUser['User']['first_name'].' '.$authUser['User']['last_name']);
CakeSession::write('verStatus', $authUser['User']['verified']);
if(null != CakeSession::read('loggedInUser')){
$this->redirect('/shop');
}
}else{
$loginError = 'Invalid username or password';
$this->set('invalid', $loginError);
}
}
任何人都可以知道发生了什么吗? 我的Cakephp版本是2.5.4
答案 0 :(得分:0)
尝试使用
$this->Session->write('loggedInName',$authUser['User']['first_name'].' '.$authUser['User']['last_name']);
对于session-> read,相同。
喜欢这个。并检查双方的PHP版本。
阅读This
同样清除缓存,临时文件夹,交换机core.php - >调试到2,然后再调到0。
答案 1 :(得分:0)
$this->Session->write('key','value');
我认为必须使用上面的语法。
答案 2 :(得分:0)
该问题可以来自文件会话存储专用服务器上的权限,为了跳过此问题,您可以将会话保存到数据库中,请按照下面的链接查看我的答案(关于配置会话并为其创建新表)。 Session Permission Denied on AWS after setting up Cake php. 希望它对你有所帮助。