У меня есть приложение для электронной коммерции cakephp (v 1.3), где клиенты могут добавлять вещи в корзину. Пока пользователь не существует, браузер или период ожидания сеанса не превышены, переменные сеанса, определяющие содержимое корзины, сохраняются. Но если они закрывают браузер (IE/Firefox), тележка становится пустой, поскольку файл cookie уничтожается. Как ни странно, у Chrome нет этой проблемы, которая является еще одной загадкой.Как сохранить файлы cookie даже после перезапуска браузера в приложении CakePHP
Я попытался изменить переменную Session.cookieTimeout в файле /app/config/core.php, но это не имеет никакого эффекта. Всякий раз, когда я вытаскиваю информацию о файлах cookie в средствах браузера dev, он показывает имя файла cookie «PHPSESSID», и срок действия продолжает показывать «когда сессия заканчивается».
Я также пытался переписать время истечения срока действия cookie в функции AppController beforeFilter() с $ this-> Cookie- $ time, но это не делало ничего, чтобы определить тайм-аут cookie сеанса.
Мое предположение - это некоторая установка, которая устанавливает тайм-аут cookie равным 0, который является настройкой по умолчанию для окончания сеанса, когда браузер закрывается.
Какие еще вещи я должен попытаться предотвратить уничтожение файлов cookie при закрытии браузера пользователем?
поэтому добавление вышеуказанных строк в файл php.ini должно устранить проблему или я должен все еще выполнить определение session.cookieTimeout в core.php? –
Да, вам нужно установить значение тайм-аута cookie сеанса на большее значение, чем значение по умолчанию. –
Я пробовал это, но ничего не менял. так получается, если я просто добавлю «session.cookie_lifetime = xxxx» к php5.ini и перезагрузите сервер, который работает !! Вопрос в том, есть ли какие-то неправильные или непредвиденные проблемы, которые возникают из-за этого? –