2012-01-20 7 views
0

Недавно я получил реализацию корзины покупок, которая нуждается в исправлении.Замена сеанса Cookie

Объект корзины хранится в $_SESSION['cart']. Теперь возникает проблема, когда браузер закрыт, тележка потеряна, потому что сеансы не остаются активными после закрытия браузера.

Способ исправить это, чтобы сохранить объект корзины в файле cookie с более длительным сроком службы, а не сеансом.

Мой вопрос к вам, если вы знаете быстрое решение, или мне действительно нужно идти через все исходные файлы и заменять сеансы куки?

ответ

4

Сеанс обычно определяется файлом cookie и по умолчанию этот файл cookie удаляется после закрытия браузера. Поэтому, если вам нужно сделать сеанс, который будет длиться долго (или навсегда), вы должны настроить параметр session.cookie-lifetime для PHP-движка. Адрес the docs on that.

+0

Как я понимаю, 'session.cookie-lifetime' не может продлить время жизни сеанса за время существования браузера. – Dimme

+1

Документация говорит: _ Значение 0 означает «пока браузер не будет закрыт». По умолчанию 0._ Но это может быть больше 0. Вы можете разместить там несколько секунд в году, а неактивный сеанс будет длиться в течение года. – AlexZam

+0

, возможно, потребуется настроить GC maxtime для сеанса, иначе в противном случае очень мало шансов, что данные сеанса будут собраны в мусор, прежде чем файл cookie истечет. – CD001

1

Думаю, вам придется делать все изменения. К счастью, есть удобный инструмент поиска и замены (для Linux) под названием Regexxer, который предоставляет графический интерфейс для выполнения поиска и замены в нескольких файлах.

1

Я не уверен, что вы сможете хранить такие данные в cookie без использования serialize() и, возможно, base64_encode() & base64_decode. Что-то, о чем нужно помнить.

Смежные вопросы