Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: куки

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
romanov89
Отправлено: 11 Августа, 2014 - 17:18:34
Post Id


Новичок


Покинул форум
Сообщений всего: 26
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




Здравствуйте, подскажите как правильно реализовать выбор региона на сайте, надо было сделать если пол-ль заходил на сайт и выбрал свой город , то при последующих заходах он будет перенаправлен на домен своего региона, я сделал так что город который он выбрал сохраняется в куки, т.е адрес сохраняется домена на который он будет послан хранится в куки , я устанавливаю куки в коде и после получаю куки он мне выдает другой адрес
PHP:
скопировать код в буфер обмена
  1.  
  2. $APPLICATION->set_cookie("redirect_to", "http://".$element["CODE"].".daikin-russia.su", time()+60*60*24*30*12*2);
  3. $redirect_to = $APPLICATION->get_cookie("redirect_to");
  4. // $redirect_to выдает другой адрес не тот который установил выше при помощи $APPLICATION->setcookie();
  5.  
 
 Top
Tyoma5891
Отправлено: 12 Августа, 2014 - 08:55:56
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 621
Дата рег-ции: Авг. 2013  


Помог: 5 раз(а)




а что и откуда приходит в $element["CODE"]
и вообще на куках не делают такое лучше на бд, потому как куки устанавливаются один раз и потом пользуемся , а у Вас процесс постоянно перезаписывающий куки
 
 Top
Ts.Saltan
Отправлено: 12 Августа, 2014 - 10:03:18
Post Id



Посетитель


Покинул форум
Сообщений всего: 384
Дата рег-ции: Дек. 2013  
Откуда: Belarus


Помог: 22 раз(а)




Tyoma5891 пишет:
и вообще на куках не делают такое лучше на бд

А если пользователь не зарегистрирован? Как раз таки лучше на куках.

romanov89, это особенность работы с куками. Если через php установить куки, то видны они будут только при последующем обращении к скрипту.

Попробуйте запустить скрипт, потом обновить страницу.

PHP:
скопировать код в буфер обмена
  1.  
  2. if(!isset($_COOKIE["test"])){
  3.  setcookie("test","asd");
  4. }
  5.  
  6. var_dump($_COOKIE);
  7.  
 
 Top
romanov
Отправлено: 12 Августа, 2014 - 10:13:23
Post Id


Гость


Покинул форум
Сообщений всего: 112
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)




В БД тут хранить не получится у нас без регистрации , $element["CODE"], это символьный код раздела ( города ) из БД.

Короче куки привязывались к доменам и механизм работал неправильно надо было указать в параметре функции главный домен сайта
 
 Top
esterio
Отправлено: 12 Августа, 2014 - 10:55:43
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




указиваем домен не главный а .domain.com (тоесть точка в начале). что означает доступ до кукы ка с главного домена так и с всех поддоменов. в куке лучше не хранить редирект, а код который находиться в переменной $element["CODE"]. тогда просто проверяем этот код з поддоменом на который зашел пользователь и если они отличаються, то делаем редирект. Теперь обьясн юпочему так: так больше контроля ибо вы знаете конкретно который регион выбрал пользователь, а делать редирект или что-то другое можно прямо в скрипте не заморачиваясь. еще если пользователь залогинился или имеет сессию на основоном домене, то он должен ее иметь на всех поддоменах
 
 Top
romanov
Отправлено: 12 Августа, 2014 - 11:05:39
Post Id


Гость


Покинул форум
Сообщений всего: 112
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)




esterio , спасибо за совет с .domain.com, у меня такой же алгоритм с редиректом, только у меня $element["CODE"] доступен когда пользователь город выбрал.
Редирект происходит так

PHP:
скопировать код в буфер обмена
  1.  
  2. $redirect_to = $APPLICATION->get_cookie("redirect_to");
  3. if ( !empty($redirect_to ) && "http://".$_SERVER["HTTP_HOST"] != $redirect_to && empty($_REQUEST["city_id"]) ){
  4.         LocalRedirect($redirect_to);
  5. }
  6.  


Плюс пока не дают мне вам поставить, просто респект
(Добавление)
Вопрос еще такой, у меня есть база с городами, если информацию по городам которую надо вывести на сайте хранить тоже в куки это нормально ?
 
 Top
esterio
Отправлено: 12 Августа, 2014 - 11:45:00
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




нет, кукы ограничены в размере. вы забьете все кукы инфой о регионах. плюс ко всему они будут нагружать канал связи, так ка будут присутствувать в кажом запросе в заголовках.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Хранение данных, их вывод и обработка »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB