Как правильно установить безвременные кукиз

VANHALEN

Новичок
Доброго всем!
Устанавливаю стиль просмотра каталога через кукиз
Код:
if (isset($_POST['theme']) && $_POST['theme'] != $_COOKIE['theme'])
    {
        setcookie("theme",$_POST['theme'],0x6FFFFFFF, "/");
        $_COOKIE['theme'] = $_POST['theme'];
    }       
    elseif (!isset($_COOKIE['theme']))
    {
        setcookie("theme","tiles",0x6FFFFFFF, "/");
        $_COOKIE['theme'] = 'tiles';
    }
При первом захоже на сайт, устанавливается тема по умолчанию. Потом начинается цирк, когда выбираешь тему вручную. После выбора темы и перехода на другую страницу, а потом назад на ту же где была выбрана тема, файрфокс и хром блокируют загрузку страницы. Один говорит: "документ просрочен", другой просит подтвердить повторную отправку формы. Знаю, что я не один такой и браузеры при переходе назад после отправки любой формы переспрашивают, но можно ли как то избежать этой ситуации не сбрасывая тему? Видел что многие интернет магазины, которы пользуются разными видами каталогов, устанавливают тему только до закрытия страницы, но это вроде не очень справедливо и главное не спасает от проблемы.
 

ksnk

прохожий
Но в любом случае, после обработки POST надо всегда перенаправлять браузер на какую-нибудь страницу, пусть ту же самую, но уже без данных формы, чтобы при обновлении страницы они не записывались повторно. Например:
header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
exit;
 

VANHALEN

Новичок
О да... Так гораздо понятнее. Не совсем конечно красивый вариант 2 раза перезагружать одну и ту же страницу, но если других вариантов нет, то вполне терпимо. Теперь только подумать куда и правильно засунуть перенаправление. А главное, что браузерам постарше, или опере по барабану, она не ругается. И да... СПАСИБО!
 
Последнее редактирование:

grigori

( ͡° ͜ʖ ͡°)
Команда форума
редирект - не загрузка страницы, ты их даже не замечал каждый раз когда нажимал кнопку "Ответить" на старой версии форума
 

AnrDaemon

Продвинутый новичок
О да... Так гораздо понятнее. Не совсем конечно красивый вариант 2 раза перезагружать одну и ту же страницу, но если других вариантов нет, то вполне терпимо. Теперь только подумать куда и правильно засунуть перенаправление. А главное, что браузерам постарше, или опере по барабану, она не ругается. И да... СПАСИБО!
exit; видел? У тебя передаётся страница без контента, что именно ты собрался грузить два раза? (Хотя конечно так делать не очень корректно, ты всё таки с людьми общаешься.)
 

VANHALEN

Новичок
exit; видел? У тебя передаётся страница без контента, что именно ты собрался грузить два раза?
Попутал немного с другой ситуацией
Код:
setcookie("theme",$_POST['theme'],0x6FFFFFFF, "/");
$_COOKIE['theme'] = $_POST['theme'];
header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
exit;
Всё шикарно! Ещё раз сердечная всем благодарность!
Не сказал бы что я прямо таки программист (у меня немного другие задачи), поэтому некоторых нюансов могу не знать.

P.S. Интересно, а по какой причине другие магазины хранят такие вещи как вид каталога, только до закрытия браузера, а то и вовсе до перехода в следущую категорию?
 
Последнее редактирование:
Сверху