Почему после установки куки изменения не вступают в силу?? приходиться командой header("Refresh:0"); перезагружать страницу чтобы увидеть работу куки. КАк исправить???? Код (Text): <?php if (isset($_POST['selct'])) { setcookie('cityname',$_POST['selct']); header("Refresh:0"); } if(isset($_COOKIE['cityname'])){ $cityname = $_COOKIE['cityname']; }else{ $cityname = "1"; } ?> <form method="post"> <select name="selct" onChange="this.form.submit()"> <option value="1" <?=$_COOKIE['cityname'] == "1" ? "selected" : ""?>>1</option> <option value="2" <?=$_COOKIE['cityname'] == "2" ? "selected" : ""?>>2</option> </select> </form>
Данные считываются в массив $_COOKIE при открытии страницы. Поэтому передавайте в $cityname непосредственно данные из POST
$cityname = $_COOKIE['cityname']; заменить этим $cityname = $_POST['selct']; ??? получиться , я уйду со страницы и придется заново обращаться к форме Добавлено спустя 4 минуты 40 секунд: $_COOKIE['cityname'] = $_POST["selct"]; вот так надо?
Код (Text): if (isset($_POST['selct'])) { setcookie('cityname',$_POST['selct']); $cityname = $_POST['selct']; } elseif(isset($_COOKIE['cityname'])){ $cityname = $_COOKIE['cityname']; } else { $cityname = "1"; }
Спасибо! Ваш вариант работает!... а этот код ошибочный? (он тоже работает) Код (Text): <?php if (isset($_POST['selct'])) { setcookie('cityname',$_POST['selct']); $_COOKIE['cityname'] = $_POST["selct"]; } if(isset($_COOKIE['cityname'])){ $cityname = $_COOKIE['cityname']; }else{ $cityname = "1"; } ?>
Нет, не ошибочный. Если вы в дальнейшем планируете обращаться к $_COOKIE['cityname'], он даже лучше, если только к $cityname - они примерно равнозначны.