Когда я добавляю что-то в корзину, сеанс можно увидеть сразу после этого. Однажды я перенаправлен в корзину просмотра. Сессия прошла.
Что странно, но если я снова добавлю что-то в корзину, она обновит правильное количество ... так что, очевидно, она все еще там.
Я не понимаю.
Я использую CakePHP 1.3. У меня есть контроллер под названием CartsController
с 2 представлениями add
и index
. В представлении add
ожидается добавление параметра id в корзину. Поэтому, когда вы переходите к carts/add/1
, он добавляет идентификатор продукта 1 в корзину ($ _SESSION), а затем перенаправляет вас в представление индекса (/carts).
Если вы просматриваете SESSION сразу после его добавления в функцию add () перед перенаправлением в представление индекса, в нем есть правильные значения. К тому времени, когда вы достигнете представления индекса, сеанс снова станет пустым (ну, у него есть значение Cake Config по умолчанию, но я ничего не добавил).
Это привело бы вас к мысли, что где-то посередине, когда он добавляется, и после того, как он перенаправляется, сеанс уничтожается. Но это не так, потому что если вы снова добавили товар в корзину и снова просмотрите его сразу после этого, он будет показывать большее количество (теперь 2 вместо 1, затем 3, затем 4 и т. Д.). Однако, если вы просматриваете сеанс где-то еще, его там нет.
Кто-нибудь вообще знает, что здесь может происходить?
Обновление
Я хотел бы добавить, он работает как задумано, когда вы в первый раз добавляете что-то в корзину в своем браузере, но если вы покинете сайт (по внешней ссылке) с чем-то в вашей корзине и вернетесь, ничего не произойдет в Ваша корзина, и ничто не может быть добавлено снова - тогда начнутся проблемы, описанные выше. Это происходит в Chrome, FF, IE.
Update2
Если вы хотите сами убедиться, шаги по воспроизведению
- Перейти к
http://216.119.150.158/john/products/1/simon-g-ring
- Нажмите, чтобы добавить в корзину
- Нажмите кнопку Google Checkout
- Нажмите на ссылку Изменить заказ , чтобы вернуться
предыдущая страница (не кнопка возврата)
Ваша корзина пуста, и вы ничего не можете добавить в корзину снова