За последние 24 часа нас посетили 36569 программистов и 7751 робот. Сейчас ищут 1886 программистов ...

Помощь по передаче куков

Тема в разделе "PHP для новичков", создана пользователем JonyFront, 14 сен 2016.

  1. JonyFront

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

    С нами с:
    5 июн 2016
    Сообщения:
    143
    Симпатии:
    1
    Всем привет! Очень нуждаюсь в вашей помощи ибо зашел в тупик и не могу найти причину...Есть код, который записывает выбор select в куки и выводит на экран результат, но он записывает свой результат на разных страницах, а мне нужно чтобы выбор был 1 на все страницы сайта, подскажите пожалуйста как решить проблему...Заранее спасибо! Вот код:
    PHP:
    1. if(isset($_POST['select'])) {
    2.     setcookie("select",(int)$_POST['select'], time()+3600); //Записать куку
    3. }
    4.  
    5. $select = array(
    6.     1=>'',
    7.     2=>'',
    8.     3=>'',
    9.     4=>''
    10. );
    11.  
    12. $cityname = array(
    13.     1=>'kiev',
    14.     2=>'kharkov',
    15.     1=>'dnepr',
    16.     2=>'poltava'
    17. );
    18.  
    19. $option = isset($_POST['select']) ? (int)$_POST['select'] : (isset($_COOKIE["select"]) ? (int)$_COOKIE["select"] : 1);
    20. $select[$option] = 'selected';
    21. $cityname = $cityname[$option];
    22.  
    23. $gelsel = <<<HTML
    24.  
    25. <form method="post" style="display:inline-block; vertical-align:top; overflow:hidden;margin: 0;
    26. box-shadow: 0 3px 4px rgba(0, 0, 0, .1);
    27. border: 1px solid #ccc;
    28. float: right;">
    29. <select class="citychange" name="select" multiple  onchange="this.form.submit()">
    30. <option value="1" {$select[1]}>Киев</option>
    31. <option value="2" {$select[2]}>Харьков</option>
    32. <option value="3" {$select[3]}>Днепропетровск</option>
    33. <option value="4" {$select[4]}>Полтава</option>
    34. </select>
    35. </form>
    36. <style>
    37. .citychange { padding:10px; margin:-5px -20px -5px -5px;border: none;text-align: center;}
    38. </style>
    39. HTML;
    40. $tpl->set ( '{gorselect}', $gelsel );
    41.     $seloption = $option;
    42. if($seloption == "1"){
    43.     $gelselect = "Киев";
    44.     $gotourl = "kiev";
    45. }
    46. if(isset($_POST['select'])) {
    47.     $seloption = $option;
    48. if($seloption == "1"){
    49.     $gelselect = "Киев";
    50.     $gotourl = "kiev";
    51. }
    52.     Header("Location: $gotourl");
    53. }
    54.  
    55.     $seloption = $option;
    56. if($seloption == "2"){
    57.     $gelselect = "Харьков";
    58.     $gotourl = "kharkov";
    59. }
    60. if(isset($_POST['select'])) {
    61.     $seloption = $option;
    62. if($seloption == "2"){
    63.     $gelselect = "Харьков";
    64.     $gotourl = "kharkov";
    65. }
    66.     Header("Location: $gotourl");
    67. }
    68.  
    69. echo $gelselect;
    После выбора select города идет запоминание и переход на url города, и вывод текущего выбранного города
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.213
    Симпатии:
    1.711
    Адрес:
    Молдова, г.Кишинёв
    http://php.net/manual/ru/function.setcookie

    Попробуй $path указать, корень / и $domain если не поможет
     
    JonyFront нравится это.
  3. JonyFront

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

    С нами с:
    5 июн 2016
    Сообщения:
    143
    Симпатии:
    1
    Поставил так , но теперь вообще не записывает...
    PHP:
    1.   $domain = "site.ru";
    2.   setcookie("select",(int)$_POST['select'], time()+3600, '/', $domain); //Записать куку
     
  4. JonyFront

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

    С нами с:
    5 июн 2016
    Сообщения:
    143
    Симпатии:
    1
    Задал без $domain и заработало, спасибо!