За последние 24 часа нас посетили 21796 программистов и 1662 робота. Сейчас ищут 869 программистов ...

COOKIE

Тема в разделе "Прочие вопросы по PHP", создана пользователем zhenia3003, 11 авг 2014.

  1. zhenia3003

    zhenia3003 Активный пользователь

    С нами с:
    20 авг 2012
    Сообщения:
    184
    Симпатии:
    3
    Почему после установки куки изменения не вступают в силу?? приходиться командой header("Refresh:0"); перезагружать страницу чтобы увидеть работу куки. КАк исправить????
    Код (Text):
    1.  
    2. <?php
    3. if (isset($_POST['selct'])) {  
    4. setcookie('cityname',$_POST['selct']);
    5. header("Refresh:0");
    6. }
    7. if(isset($_COOKIE['cityname'])){
    8. $cityname = $_COOKIE['cityname'];
    9. }else{
    10. $cityname = "1";
    11. }
    12. ?>
    13. <form method="post">
    14. <select name="selct" onChange="this.form.submit()">
    15. <option value="1" <?=$_COOKIE['cityname'] == "1" ? "selected" : ""?>>1</option>
    16. <option value="2" <?=$_COOKIE['cityname'] == "2" ? "selected" : ""?>>2</option>
    17. </select>
    18. </form>
     
  2. Хыиуду

    Хыиуду Активный пользователь

    С нами с:
    3 июн 2014
    Сообщения:
    618
    Симпатии:
    5
    Данные считываются в массив $_COOKIE при открытии страницы. Поэтому передавайте в $cityname непосредственно данные из POST
     
  3. zhenia3003

    zhenia3003 Активный пользователь

    С нами с:
    20 авг 2012
    Сообщения:
    184
    Симпатии:
    3
    $cityname = $_COOKIE['cityname']; заменить этим $cityname = $_POST['selct']; ??? получиться , я уйду со страницы и придется заново обращаться к форме

    Добавлено спустя 4 минуты 40 секунд:
    $_COOKIE['cityname'] = $_POST["selct"]; вот так надо?
     
  4. Хыиуду

    Хыиуду Активный пользователь

    С нами с:
    3 июн 2014
    Сообщения:
    618
    Симпатии:
    5
    Код (Text):
    1.  
    2. if (isset($_POST['selct'])) {
    3.   setcookie('cityname',$_POST['selct']);
    4.   $cityname = $_POST['selct'];
    5. }
    6. elseif(isset($_COOKIE['cityname'])){
    7.    $cityname = $_COOKIE['cityname'];
    8. }
    9. else {
    10.   $cityname = "1";
    11. }
     
  5. zhenia3003

    zhenia3003 Активный пользователь

    С нами с:
    20 авг 2012
    Сообщения:
    184
    Симпатии:
    3
    Спасибо! Ваш вариант работает!... а этот код ошибочный? (он тоже работает)
    Код (Text):
    1.  
    2. <?php
    3. if (isset($_POST['selct'])) {  
    4. setcookie('cityname',$_POST['selct']);
    5. $_COOKIE['cityname'] = $_POST["selct"];
    6.  
    7. }
    8. if(isset($_COOKIE['cityname'])){
    9. $cityname = $_COOKIE['cityname'];
    10. }else{
    11. $cityname = "1";
    12. }
    13. ?>
     
  6. Хыиуду

    Хыиуду Активный пользователь

    С нами с:
    3 июн 2014
    Сообщения:
    618
    Симпатии:
    5
    Нет, не ошибочный. Если вы в дальнейшем планируете обращаться к $_COOKIE['cityname'], он даже лучше, если только к $cityname - они примерно равнозначны.