не устанавливает куку. и самое интересное если закоментировать нижний header то оно выводит bad bad bad а если не коментировать то почему то срабатывает редирект. хотя этот хедер должен ругатся на то что вывод уже был. <?php if (!isset($_GET["lang"])) {header("location: ../");} else { $lang = $_GET["lang"]; var_dump($lang); switch ($lang){ case "ru": if(!setcookie("lang", $lang,time()+3600)) {echo "немогу установить куку";break;} case "en": if(!setcookie("lang", $lang,time()+3600)){echo "немогу установить куку";break;} default : echo "bad bad bad"; } } header("location: ../"); ?>
Да, нужно убрать var_dump, и зачем вы печатаете "bad bad bad", выставляйте по умолчание, например, русский язык.
блин ребят не сетится кука. убрал var dump. смотрю даже в папке cookies там ее нет. . может в новом апаче или в php какая настройка нужна ? использую последний xampp. PHP: <?php if (!isset($_GET["lang"])) {header("location: ../");} else { $lang = $_GET["lang"]; switch ($lang){ case "ru": if(!setcookie("lang", $lang,time()+3600)) {echo "немогу установить куку";break;} case "en": if(!setcookie("lang", $lang,time()+3600)){echo "немогу установить куку";break;} default : echo "bad bad bad"; } } header("location: ../"); ?> вот файл котороый принимает. но он ведет себя так как будто кука не стоит. ( она и не ставится) PHP: <?php session_start(); include $_SERVER['DOCUMENT_ROOT']."/"."config"."/"."config.php"; if (!isset($_COOKIE['lang'])) { $smarty -> template_dir = 'templates'."/".'en'."/"; } else { $lang = $_COOKIE['lang']; switch ($lang) { case "en" :$smarty->template_dir = 'templates'."/".'en'."/";echo "en";break; case "ru" :$smarty->template_dir = 'templates'."/".'ru'."/";echo "ru";break; default : echo "wrong language"; } } $smarty -> display('index.tpl'); $smarty -> display("login_body.tpl"); ?> как куку заставить работать ? вот собственно сам html HTML: <body> <a href="puzles/lang.php?lang=ru">ru</a><br> <a href="puzles/lang.php?lang=en">en</a><br> </body>
Выполните такой скрипт и посмотрите выставляется ли кука PHP: <? setcookie("test", "test", time()+3600); ?> <script>alert(document.cookie);</script>
alert вывел HTML: Drupal.toolbar.collapsed=0; PHPSESSID=vmbas1sbu0nbdro6figd7tov95 куки test невидно в IE тоже не работает. блин народ помогите. не пойму сам почему кука не ставится.
если в файл который пишет куку вписать alert То он ее выводит и отлично видит. но когда переключаем страницу она исчезает. получается кука видна только для этой страницы.
все решил. чтобы куки были видны в других директориях надо было написать четвертый параметр. PHP: case "ru": if(!setcookie("lang", $lang,2*time(),"/")) {echo "немогу установить куку";break;}else break;