[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Смена города на сайте
MailRes
Всем привет!

Думал тут на тему: "Как сделать, чтобы пользователь зайдя на сайт мог выбрать свой город, и затем каждый раз когда заходил на сайт, то город оставался прежним?"

И похоже сессии мне в помощь, которые нужно засунуть в index.php (сайт на Joomla) и играться с ними, верно?
Игорь_Vasinsky
записать в куки этот город.



_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
MailRes
ну и сессии юзать? чтоб когда со страницы на страницу ходишь - город не меняется
killer8080
Цитата (MailRes @ 29.01.2013 - 13:57)
ну и сессии юзать? чтоб когда со страницы на страницу ходишь - город не меняется

почитай о куках
MailRes
Ну ведь пользователь может же не принимать куки?
Тогда у него не будет сохраняться город. А с помощью сессий город не будет меняться при переходе с одной страницы на другую, верно?

killer8080, или всё равно читать?)))
killer8080
Цитата (MailRes @ 29.01.2013 - 14:31)
killer8080, или всё равно читать?)))

все равно читай smile.gif . Сессии передают идентификатор через куки, это их основной транспорт. Можно конечно использовать use_trans_sid, но там есть свои подводные камни.
MailRes
А ссылочки на хорошую статью нет?)))
Ну кроме ссылки на поисковик, там то и я найду)))
MailRes
Хотя не надо)) Спс.
Парочку прочитал + на википедии ещё почитаю.
Спасибо, теперь понятно в каком направлении двигаться))
MailRes
А как проверить, есть ли записанные куки у пользователя на компе?
Или это некорректный вопрос?

----
Всё нашел, буду пробовать))
MailRes
А как, например, получить значение выбранного города.
Т.е. заходит пользователь на сайт, видит, что установлен по умолчанию "Город1".
Он выбирает "Город2". У него обновляется страница и он видит на страницах теперь всегда "Город2".

Т.е чтобы заменить город, нужно будет прочитать текущую URL + добавить в неё параметр?
Например: перешли на страницу "domain.ru/index.php?page=1"
Скрипт прочитал текущий URL и на слово "Город2" повесил ссылку "domain.ru/index.php?page=1&city=gorod2"
Так что ли?

И в начало файла index.php засунуть:
1) Получить $_GET['city'];
2) Записать эту переменную в куки
3) Обрезать "хвост" ссылки (т.е. "&city=gorod2") и скормить ссылку браузеру
Так?

Или как-то можно всё проще делать?

P.S. какие минусы есть у этого кода, чтобы получить URL?
$url = "http://".$_SERVER["HTTP_HOST"].$_SERVER['REQUEST_URI'];
MailRes
Так и сделал, как описал выше.

Я так понял, когда используешь функцию setcookie('name', 'abc'),
то получить значение $_COOKIE['name'] можно будет только после повторного вызова скрипта, правильно?

Т.е. если в одном файле написать:

setcookie('name', 'abc');
echo $_COOKIE['name'];


То на экран выведется значение, когда этот файл запустишь 2й раз на сервере, верно?
killer8080
MailRes
куки можно менять и на клиентской стороне
echo '<pre>'.print_r($_COOKIE, 1).'<pre>'; 
?>
<select onchange="document.cookie='city='+this.value; location.reload();">
<
option<?=(isset($_COOKIE['city']) && $_COOKIE['city'] == 'Moscow') ? ' selected="selected"' : ''?>>Moscow</option>
<
option<?=(isset($_COOKIE['city']) && $_COOKIE['city'] == 'Kiev') ? ' selected="selected"' : ''?>>Kiev</option>
<
option<?=(isset($_COOKIE['city']) && $_COOKIE['city'] == 'London') ? ' selected="selected"' : ''?>>London</option>
</
select>
Valick
MailRes, если пользователь не зарегистрирован, то храните информацию в куках.Если зарегистрирован, то можно это хранить в базе данных.


_____________
Стимулятор ~yoomoney - 41001303250491
MailRes
С куками, вроде, разобрался))
Заработало, спс
Я изначально копал про сохранение инфы в БД, делал небольшой раздел для себя (в целях экспериментах). А про куки - как раз то что надо)) Всё получилось.
Спс. smile.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.