![]() |
Автоизменение темы.
у меня на сайте например есть несколько тем, как сделать так чтобы они ставились случайно при каждом заходе на сайт, т.е. один вошел у него такая тема потом вошел друггой, а у него другая. Можно применять php, javascript.
|
Что Вы подразумеваете под словом "тема"? Строка? или графическое оформление?
проверю свою навыки телепатии и предположу что имеется ввиду графическое оформление. Мой вариант решения проблемы на PHP. 1. Создаем массив со всеми необходимыми нам элементами дизайна: $tpl['name_of_design_part'][id] = "путь к изображению"; name_of_design_part - название части дизана например menu_item,top,logo и т.д. и т.п. 2. в начале страницы запускаем генератор случайных чисел и выбираем id, записываем его в переменную $rid $rid=rand(0,max_ids) ; max_ids - максимальное количество дизайнов(т.е. кол-во элементов массива) 3. В дизайне каждую изменяемую картинку описываем ввиде: <img src=<?=$tpl['name_of_design_part'][$rid]?>> Полный "собранный" пример: HTML код:
<? |
XCodeR
Большое спасибо. всё верно поняли! |
А вот такой впорос:
Еслия это всё запихну в header.php, а при переходе пользвателя на другую страницу оформление может скорей всего смениться. Как сделать так чтобы оформление выбиралось только при заходе на сайт и не менялось пока пользователь не закроет блаузер? Мне кажеться что для это нужно каждому пользователю открывать сессию, в которой будет храниться текущая тема. |
Достаточно сохранять идентификатор темы в кукисах, сессия для этого - громоздкое оружие. Конечно имя темы в куках надо будет проверять с точки зрения безопасности.
|
Или открывать сессию или передавать Get параметр.
И первое и второе имеет свои недостатки… Можно просто ставить куки, но это почти та же сессия. |
Ладно, всё понятно, буду скорей всего делать через куку и придеться ее фильтровать!
|
Strange_V, э нет, "не таже" и не "почти". Для сессии кукис это по сути "транспорт". Сессия это именованная идентификатором область данных (в файловой системе, базе данных и т.д. в зависимости от обработчиков сессий) с одной общей чертой - область находится на стороне сервера. кукис же - на стороне клиента. В общем случаем в кукисах (если выбран этот способ хранения идентификатора сессии) хранится указатель на сессию.
В данном случае гораздо проще хранить строку или число идентификатора темы в кукисах, нежели хранить в них ссылку на сессию в которой хранится этот идентификатор. |
2Prisoner Полностью согласен.
Только нужно не забывать что куки в пользователя могут бить отключены... хотя это не смертельно (ну не будут у него рендом тем…) |
Будет у него рендом, только при открытии новой страници, будет новая тема, ну или при попаданиии еще раз на главную.
|
IMHO, это не правильно.
Я захожу на главную (куки откл.) мне рендомится тема, перехожу по какой-то ссылке (идентификатор не передается), а там другая тема… не красиво. По этому если куки отключены, лучше грузить тему по умолчанию. |
Тогда можно использовать сессию. Для каждого пользователя открыавать сессию и с помощью ее передовать индикатор темы. После закрытия блаузера сессия изчезает, если юзер зайдет еще раз на сайт он уже получит новую тему на данный сеанс. Вроде так можно.
|
Можно но...
Лично я сделел бы куками, а если отключены - грузил бы тему по умолчанию. (смена тем это же просто дополнительная фича...) |
А чем же так плохи сессии?
|
Ничем. Более того - они просто жизненно необходимы. Но не везде :). Вот скажите, Вы курите? Даже если и нет, то как часто вы видили, что сигарету поджигают с помощью паяльной лампы предварительно ее разогрев? Наверное не часто. Тормозящий момент тут - геморрои в возьне с оборудованием. В программировании все проще ввиду нематериальности мира как данности. Вот и получается, что порой такое напрограммируешь, что на утро единственное картина приходящая в голову при виде своего же кода это картина маслом и сыром "удаление гланд через заднепроходный канал автогеном" :). Но это все лирика. Ответом на Ваш вопрос будет одно слово - производительность. Ну быть может еще и логика. Зачем таскать от страницы к странице указатель на данные (идентификатор темы), каждый раз заставлять скрипт отрывать сессию по указателю пришедшему из броузера, лезть в файл сессии и уже там брать данные. Ведь достаточно в самой куке просто и надежно все хранить. Поверьте, если Вам вдруг повезет на человека который отключил все кукисы, то такому человеку тем более не нужны Ваши распростертые объятия в виде нескольких цветовых оформлений :).
|
Ладно понятно, псомотрим что там можно будет сделать.
|
Время: 02:56. |
Время: 02:56.
© OSzone.net 2001-