У меня есть процесс проверки, который имеет следующие этапы:
Я использую переменные сеанса PHP для хранения информации на этом пути, и я проверяю эти переменные сеанса на протяжении всего процесса покупки, когда пользователь продолжает свою покупку. У меня также есть код для остановки, чтобы пользователи могли сразу попасть на страницу подтверждения клиентов или оплаты, так как это означало бы, что они не получили цитату на странице результатов и не установили бы соответствующие переменные сеанса.
Проблема:
Кажется, пользователи, которые получают котировки на планшетах и смартфонах, делают много сравнения цен с другими веб-сайтами и оставляют наш сайт открытым на вкладке. Но поведение таких устройств отличается от настольных браузеров.
Кажется, что если вы оставите вкладку открытой, а затем перейдите в другое приложение или загрузите множество других веб-страниц, то при попытке вернуться к предыдущей вкладке устройство будет либо:
И есть проблема. Если кто-то находится на моей странице клиента или платежной странице, и URL-адрес получает новый эффект, сеанс, похоже, не существует, и мой код считает, что кто-то попадает на страницу в первый раз, что бросает приветственное сообщение об ошибке моим клиентам говоря, чтобы перезапустить их цитату.
Является ли моя система плохо разработанной? У кого-нибудь есть предложения, как я могу обойти это? Мне действительно нужен способ позволить клиентам сидеть на деталях оглавления клиента или на этапе оплаты, возможно, на пару часов, а затем сможет завершить процесс покупки.
Должен ли я использовать сеансы, файлы cookie и базу данных - или комбинацию?
Ваша проблема может быть надежно решена с помощью файлов cookie. PHP может хранить свою переменную сеанса в cookie и считывать все соответствующие параметры сеанса внутри значения, которое имеет cookie сеанса.
Поэтому вместо сеанса URL-адреса вы получаете сеанс cookie.
просто используйте session_start() в верхней части каждого из ваших php файлов или если у вас есть основной объект, который всегда загружается первым (например, index.php), поместите туда session_start().
Для получения дополнительной информации о механизме читайте http://www.onlamp.com/pub/a/php/excerpt/webdbapps_8/?page=2