Intereting Posts
Как подключиться к трем таблицам в Codeigniter TableGateway с несколькими таблицами FROM Программно получить список всех способов доставки Как загрузить изображения в Codeigniter? Как добавить несколько переменных $ _POST и переменных? Как я могу получить список баз данных MySQL в PHP с помощью PDO? Можно ли ограничить, какие команды php может пройти через exec на уровне ОС? Отправить письмо по электронной почте в Codeignign с помощью Gmail Получить контрольную сумму MD5 для очень больших файлов Как получить время истечения срока действия cookie Как исправить тайм-аут соединения cURL SSL, который происходит только при первом вызове сценария PHP Как округлить до двух знаков после запятой? PHP / MySQL. Существует ли функция mysql для определения того, существует ли хотя бы 2 определенных слова по меньшей мере в одном поле строки mysql Заполнение другого выпадающего списка из базы данных на основе выбора выпадающего списка utf8_encode не дает правильного результата

CakePHP продолжает выходить из системы

Недавно я сделал три приложения Cake, и все трое поделились этой проблемой. Конфигурация в основном является запасом, и я использую это как параметры сеанса.

Configure::write('Session', array( 'defaults' => 'php', 'cookie' => 'test' )); 

После многих поисковых запросов все просто говорят, что уровень безопасности слишком высок, но я никогда не менял это значение, это:

 Configure::write('Security.level', 'medium'); 

Изменить : я также пытался с низкой степенью безопасности и без изменений.

Я использую только basic auth, чтобы проверить, зарегистрирован ли пользователь или нет.

После входа в файл cookie истечет три часа, а срок действия не обновляется до тех пор, пока я не войду в систему снова, это нормально?

Кажется, я вообще не реплицирую проблему, иногда я вхожу в систему, и следующий клик снова выйдет из системы, а в других случаях это будет длиться некоторое время.

Я использую Chrome в Windows 7, и на сайте нет AJAX.

Есть идеи? Благодарю.

Вы используете Ajax. Является ли проблема только в IE?

IE использует другую строку агента браузера для вызовов Ajax самому браузеру. Для дополнительной безопасности Cake проверяет агент браузера, и в случае IE думает, что другой браузер пытается захватить сеанс, поскольку агент отличается.

Вы можете отключить эту проверку с помощью:

 Configure::write('Session.checkAgent', false); 

После столкновения с той же проблемой я обнаружил, что это вызвано значением Session.cookieTimeout. Хотя сеанс php все еще действителен, дата истечения срока действия cookie сеанса не обновляется.

Теперь это моя конфигурация сеанса

 Configure::write('Session', array( 'defaults' => 'php', 'timeout' => 30, // The session will timeout after 30 minutes of inactivity 'cookieTimeout' => 1440, // The session cookie will live for at most 24 hours, this does not effect session timeouts 'checkAgent' => false, 'autoRegenerate' => true, // causes the session expiration time to reset on each page load )); 

проблема заключается в сеансах:

Сначала проверьте ur 'phpinfo ();'

проверьте, являются ли сеансы основаны на файлах.

если да, то пройти процесс.

создайте новый файл сценария (php), который содержит только этот код: <?php var_dump(session_save_path());?>

запустите его, если вы получите пустую или пустую строку, затем перейдите к этому процессу:

  1. сначала создайте каталог в корневой папке с именем «xyz» или что захотите.
  2. сделайте его доступным для записи, например, chmod 777 .
  3. перейдите к сценарию, в котором вы начинаете сеансы, и перед началом сеансов измените свой session_save_path на вновь созданный каталог. т.е.: session_save_path('pathToxyz');

и затем вы сделали.

если в случае, если сеансы установлены как память: настройка не требуется. они просто используют системную память. в этом случае вы бы никогда не столкнулись с этой проблемой.

Вы не единственный, у кого проблемы с сеансами CakePHP в браузере Chrome.

Pixelastic coder предлагает следующее исправление , цитата:

Просто создайте файл с именем session_custom.php в app/config/ , отбросьте в нем следующие строки:

 // Killing this config that was causing so much trouble with Chrome ini_set('session.referer_check', ''); // No session id in url ini_set('session.use_trans_sid', 0); // Using custom cookie name instead of PHPSESSID ini_set('session.name', Configure::read('Session.cookie')); // Cookie like time, depending on security level ini_set('session.cookie_lifetime', $this->cookieLifeTime); // Cookie path ini_set('session.cookie_path', $this->path); 

Затем установите Configure::write('Session.save', 'session_custom'); в вашем файле core.php .