Корзина

У меня действительно странное поведение класса корзины CodeIgniter. Я установил таблицу ci_session в моей базе данных и уже изменил sess_use_database на TRUE.

Что происходит, так это то, что когда я добавляю элементы в корзину для покупок, все в порядке: я вижу, что общий счетчик предметов растет и все. Когда я перехожу на страницу моей корзины, я впервые вижу все мои предметы там, где они должны быть. Я также предоставил кнопку «Удалить элемент» и кнопку «Пустая корзина». Странные вещи происходят здесь: когда я нажимаю, чтобы удалить элемент, страница обновляется (из-за перенаправления, я думаю), но элемент все еще там! Затем, если я вручную обновляю страницу корзины, я вижу, что тот же самый элемент, который я удалил, исчез. Это похоже на то, что когда я использую перенаправление, я получаю кеш страницы, а не фактическую страницу со свежей информацией об этом.

В любом случае, вот некоторые ссылки:

Попробуйте добавить некоторые элементы с этой страницы: http://www.pantanishoes.it/Niko/index.php/store/linea/urban. Нажав на большую темную кнопку внизу описания каждого элемента.

Затем попробуйте пойти в Каррелло в меню сверху и попытаться удалить некоторые предметы или Svuota (что делает простой destroy ()) и посмотреть, что произойдет! Любая помощь будет принята с благодарностью! Спасибо, совет!

Вот какой код в Корзине.

function add() { $item = $this->store_model->get_item($this->input->post('id')); $data = array( 'id' => $this->input->post('id'), 'name' => $item->modello, 'qty' => $this->input->post('qty'), 'price' => $item->prezzo, 'options' => array( 'taglia' => $this->input->post('taglia'), 'linea' => $item->linea, 'modello' => $item->modello, 'foto' => $item->foto1 ) ); $this->cart->insert($data); $linea = str_replace(' ', '-', $item->linea); redirect('/store/linea/' . $linea . '/', 'location'); } function remove() { $rowid = $this->uri->segment(3); $data = array( 'rowid' => $rowid, 'qty' => 0 ); $this->cart->update($data); redirect('cart'); } function destroy() { $this->cart->destroy(); redirect('cart'); } 

На локальном хосте все отлично работало! Когда я загрузил веб-сайт на сервер, у него возникли такие проблемы. Действительно действительно странно! Есть ли какая-то конфигурация, которую я пропускаю?

Chrome говорит: URL-адрес запроса: http://www.pantanishoes.it/Niko/index.php/cart/remove/fb1b4a9869de6f24aa620e2307192d93 Метод запроса: Код состояния GET: 302 Временно перемещен (из кеша)

Solutions Collecting From Web of "Корзина"

Хорошо, парни. Поэтому я, наконец, исправил эту небольшую ошибку благодаря помощи моего друга, который некоторое время использовал CI. Как некоторые из вас догадались, это проблема с кешем. Единственное, что вам нужно сделать, это заставить PHP-заголовки так:

 header( 'Expires: Sat, 26 Jul 1997 05:00:00 GMT' ); header( 'Last-Modified: ' . gmdate( 'D, d MYH:i:s' ) . ' GMT' ); header( 'Cache-Control: no-store, no-cache, must-revalidate' ); header( 'Cache-Control: post-check=0, pre-check=0', false ); header( 'Pragma: no-cache' ); 

Вы можете сделать частную функцию в своем контроллере, чтобы она не была доступна извне и вызывала ее в ваших методах относительного добавления, удаления и уничтожения. Частная функция должна выглядеть примерно так:

 private function _set_headers() { header( 'Expires: Sat, 26 Jul 1997 05:00:00 GMT' ); header( 'Last-Modified: ' . gmdate( 'D, d MYH:i(worry)' ) . ' GMT' ); header( 'Cache-Control: no-store, no-cache, must-revalidate' ); header( 'Cache-Control: post-check=0, pre-check=0', false ); header( 'Pragma: no-cache' ); } 

И вы называете это внутри других функций:

 $this->_set_headers(); 

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

Спасибо вам всем!

я бы посоветовал вам попробовать следующее:

 redirect('/store/linea/' . $linea . '/', 'refresh'); 

вместо

  redirect('/store/linea/' . $linea . '/', 'location'); 

кажется, ваша страница остается кешированной после перенаправления

Spero che funzioni