Cakephp один пользователь получает сеанс другого пользователя

Я занимаюсь разработкой с использованием CakePHP 2.5.6, и у меня возникла проблема с доступом пользователей к информации других пользователей.

Когда пользователь (скажем, Пользователь1) регистрирует и заполняет некоторые необязательные поля в своем профиле, и с того же IP-адреса другой пользователь (Пользователь2) регистрируется / входит в систему, не заполнив необязательную информацию, тогда Пользователь2 увидит необязательный Пользователь1 информация (поля, оставленные пустыми). Кажется, это не имеет значения, если пользователь1 нажимает кнопку выхода или нет. Я храню некоторую первичную межсайтовую информацию в сеансе, такую ​​как имя пользователя, адрес электронной почты, изображение профиля и т. Д.

В core.php у меня есть очень простые настройки, как

Configure::write('Session', array(
'defaults' => 'cake',
'checkAgent' => true,
));
Configure::write('Security.level', 'low');

Логины проходят через UsersController.php, который имеет отдельный вид, как

public function login() {
// Destroy old users' data just in case
$this->Session->destroy();
$this->Cookie->delete('rememberMe');

//if already logged-in, redirect
if (AuthComponent::user('id')) {
if (isset($this->request->data['User']['rememberMe'])) {
if ($this->request->data['User']['rememberMe'] == "on") {
unset($this->request->data['User']['rememberMe']);
$cookieTime = "12 months";
$this->request->data['User']['password'] = Security::hash($this->request->data['User']['password']);
$this->Cookie->write('rememberMe', $this->request->data['User'], true, $cookieTime);
}
}

$id = AuthComponent::user('id');
$this->User->id = $id;
$this->Session->write('Config.language', $this->User->field("language"));
Configure::write('Config.language', $this->User->field("language"));

$this->redirect(array('controller' => 'dashboard', 'action' => 'index'));
}
// if we get the post information, try to authenticate
else if ($this->request->is('post')) {
$user = $this->User->findByUsername($this->request->data['User']['username']);
$this->Session->write('Config.language', $user['User']['language']);
Configure::write('Config.language', $user['User']['language']);

if ($user['User']['connected'] == null) {
$this->Session->setFlash(__('Unverified user, please check your email and verify your account'), 'flash_error');
} else {
if ($user['User']['tries'] <= 7 && $this->Auth->login()) {
if (isset($this->request->data['User']['rememberMe']) && $this->request->data['User']['rememberMe'] == "on") {
unset($this->request->data['User']['rememberMe']);
$cookieTime = "12 months";
$this->request->data['User']['password'] = Security::hash($this->request->data['User']['password']);
$this->Cookie->write('rememberMe', $this->request->data['User'], true, $cookieTime);
}

$this->redirect($this->Auth->redirectUrl());
} else {
$this->Session->setFlash(__('Invalid username or password'), 'flash_error');
}
}
}

и выходы из системы должны просто уничтожить все

public function logout() {
$this->Session->destroy();
$this->Cookie->delete('rememberMe');
$this->redirect($this->Auth->logout());
}

Теперь мой вопрос — это то, что я могу изменить / исправить в CakePHP, или это нужно изменить в php.ini или в настройках сервера? Что может быть причиной?

Спасибо за любую помощь и советы!

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector