CakeSession :: write()不在远程服务器上工作,但在localhost上工作正常

时间:2014-10-10 12:58:01

标签: php cakephp

我有这个代码验证用户登录,它在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

3 个答案:

答案 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. 希望它对你有所帮助。