Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
 Аватар для Jasta
1516 / 573 / 137
Регистрация: 20.02.2016
Сообщений: 3,389

Куки ведут себя странно

17.02.2020, 16:31. Показов 703. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго всем времени суток! Делаю на сайте определение номера по ip. Значения номеров и города выводятся на фронт через cookie. Естественно есть возможность сменить город если он вдруг определился не верно. Это делается через ajax запрос к данному файлу:
PHP
1
2
3
4
5
6
7
8
9
10
include_once 'classes.php';
    require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
       CModule::IncludeModule("iblock");
if (!empty($_POST)) {
    $number = city_number::number($_POST['city']);
    setcookie('number', $number);
    setcookie('check', 1);
    print_r($_COOKIE);
        //echo $number;
    }
Если возвращать в качестве результата запроса куки (как сейчас сделано в коде), то в результате получим массив из старых куков (например у нас был город Астрахань, мы сменили на Томск, то в массиве в куках будет номер Астрахани, но если мы уже после этого выбрать снова Астрахань то получим куки с номером Томска, то есть куки выводятся с запозданием. Это норма?!?!).
Но если в функции после ajax запроса вывести, те куки что получены из кода выше, уже на через сам JS получить их, то там уже никаких изменений вообще не наблюдается. Как будто бы код выше ничего не отрабатывает. Но судя по массиву куков это не так, пусть и с запозданием но приходят изменённые куки. Короче подскажите что не так???!
P.S. Сайт на Битриксе может это в нём дело??!?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.02.2020, 16:31
Ответы с готовыми решениями:

SESSION странно себя ведет
Привет! Есть Форма авторизации, захожу отправкой POST, сохраняю данные в $_SESSION Если после обработки входа добавить header...

SQL в php странно себя ведет
$y = mysql_query("SELECT * FROM `itemsNal` WHERE `id_item` = ". $item . " and `color` = '$color_one' and `size` = '$size_one'"); вот...

Сортировка с использованием strnatcasecmp ведёт себя странно
Всем привет! Исходный массив: $array = array( 1.8, 1.52, 1.79, 1.59, 1.8,

3
Невнимательный
 Аватар для ft4l
3107 / 1283 / 358
Регистрация: 08.02.2013
Сообщений: 7,525
Записей в блоге: 2
17.02.2020, 17:49
Цитата Сообщение от Jasta Посмотреть сообщение
Это норма?!
Да, так и должно быть ... в $_COOKIE то что передано в заголовках запроса
а setcookie() добавляет данные к заголовкам ответа.
Есть возможность менять данные непосредственно в $_COOKIE , но это не будет значить что их передал браузер

Аjax получает новые заголовки в ответе, он должен-бы сохранить оттуда куки, но передавать их только при следующем запросе
0
 Аватар для Jasta
1516 / 573 / 137
Регистрация: 20.02.2016
Сообщений: 3,389
17.02.2020, 18:09  [ТС]
Цитата Сообщение от x_lab Посмотреть сообщение
Есть возможность менять данные непосредственно в $_COOKIE
А как это сделать??!? Формат вывода на фронте такой:
HTML5
1
2
<span class="header-address__inner-cur"><?php echo $_COOKIE['city']; ?></span>
<a href="tel:+7<?php echo $_COOKIE['number']; ?>"><?php echo $_COOKIE['number']; ?></a>
То есть я хочу чтобы через ajax поменялись данные значения в куках, чтобы потом при переходе между страницами, выбранные пользователем город и номер остались и брались от туда. Сейчас при обновлении страницы всё слетает
0
Невнимательный
 Аватар для ft4l
3107 / 1283 / 358
Регистрация: 08.02.2013
Сообщений: 7,525
Записей в блоге: 2
17.02.2020, 18:20
Цитата Сообщение от Jasta Посмотреть сообщение
как это сделать?
имел ввиду в случае типа с
PHP
1
2
setcookie('number', $number);
$_COOKIE['number']= $number;
Из Javascript никак не сделать, если не ошибаюсь document.cookie если не устанавливалось httponly
или какие-то Cookies.set Cookies.get в jQuery, плагины ещё какие-то....
Вообще не очень шарю в JS
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.02.2020, 18:20
Помогаю со студенческими работами здесь

Странно ведут себя видеокарты
Имеется две материнские платы: 1.Asrock 970 pro3 r2.0 2.NFORCE6M-A (V3.0) Так же имеются 3 видеокарты: 1.Radeon r7 370 4gb ...

Min max ведут себя странно
Привет всем, может кто объяснить что я не так делаю. x = &quot;2 3 4 5 6 5 4 -1424 -216 546&quot; x = x.split(' ') print(x) l...

Очень странно себя ведут колонки
Всем доброго времени суток! Извините, если такое уже было, не нашел. У меня такая проблема. Есть комп с материнкой Asus P5QL/EPU,...

Кулеры видеокарты странно себя ведут
Купил новую материнскую плату Gigabyte GA-970A-DS3P. Видеокарта в ней при старте начинает вращать кулеры, через пару секунд стопит и так по...

Циклы ведут себя как-то странно
#include &lt;iostream&gt; using namespace std; int main() { float A={1,2,3,4,5,6,7,8,9,10}; float MAX=0; int I; int sum=0; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru