2014-10-10 3 views
0

У меня есть этот код, который аутентифицирует пользователя для входа в систему и отлично работает на localhost, но на удаленном сервере не работает. Он загружается и остается на странице входа. Но когда имя пользователя или пароль ошибочны, оно дает сообщение об ошибке.CakeSession :: write() Не работает на удаленном сервере, но работает нормально на 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

Почему вы не используете компоненты 'Auth' и' Session'? Не пытайтесь изобретать велосипед. – ndm

ответ

0

Попробуйте использовать

$this->Session->write('loggedInName',$authUser['User']['first_name'].' '.$authUser['User']['last_name']); 

же для session-> читать.

Нравится это. И проверьте версию PHP с обеих сторон.

Read This

Также очистить кэш, временную папку, переключитесь core.php -> отлаживать 2, затем снова 0.

+0

Это все еще делает то же самое. Я только что попробовал. Я думаю, здесь главное, что сессия не установлена. – Michel

+0

php version ???? –

+0

Где-то вдоль линии СЕЗОНЫ УНИЧТОЖЕНЫ ИЛИ УНИЧТОЖЕНЫ в вашем коде –

0
$this->Session->write('key','value'); 

Я думаю, что выше синтаксис должен быть использован.

+0

Это все равно делает то же самое. Я только что попробовал. Я думаю, здесь главное, что сессия не установлена. – Michel

0

Эта проблема может быть из хранилища файлов, хранящего разрешения на выделенном сервере, для того, чтобы пропустить эту проблему, вы можете сохранить сеанс в базе данных, пожалуйста, следуйте приведенной ниже ссылке и посмотрите на мой ответ (о настройке сеанса и создании для него новой таблицы) , Session Permission Denied on AWS after setting up Cake php. Надеюсь, это будет полезно для вас.