знатокам php, нужен код |
Здравствуйте, гость ( Вход | Регистрация )
знатокам php, нужен код |
Гость_watewatick_* |
May 23 2008, 23:33
Сообщение
#1
|
Guests |
Доброй ночи всем!
Есть сайт и скины для него. Нужно сделать так, чтобы пользователь мог выбирать скин или возвращать прежний всего одним кликом (по ссылке). Например: скин1 храниться в /im/ скин2 храниться в /im/ns/ Немного поясню: по умолчанию всегда скин1, если пользователь желает сменить скин, то он кликает по ссылке, то есть выбирает скин2 (причём автосохранение), если пользователь желает вернуть прежний скин, то он снова кликает по той же ссылке, то есть возвращает скин1. Когда пользователь снова возвращается на сайт, то его ожидает автосохранённый скин. Надеюсь, что понятно выразился, пожалуйста, помогите написать код или хотя бы направьте в нужное русло! |
|
|
May 23 2008, 23:40
Сообщение
#2
|
|
Пользователь Группа: Posters Сообщений: 65 Регистрация: 5.5.2006 Из: xUSSR Пользователь №: 512 |
... или хотя бы направьте в нужное русло! устанавливай cookie в значении которого хранится выбранный пользователем скин. если кукис не установлены то скин по умолчанию используй, иначе используй выбранный -------------------- |
|
|
May 24 2008, 06:54
Сообщение
#3
|
|
Супер постер Группа: Local moder Сообщений: 558 Регистрация: 15.9.2006 Из: Новочебоксарск Пользователь №: 1,788 |
Код <?php
$skins_array = array('skin1', 'skin2', 'skin3', 'skin4'); $skin = 'skin1'; if ( isset($_COOKIE['skin'] ) { if ( in_array($_COOKIE['skin'], $skins_array ) $skin = $_COOKIE['skin']; } if ( isset($_GET['skin'] ) { if ( in_array($_GET['skin'], $skins_array ) { setcookie('skin', $_GET['skin']); } } ?> |
|
|
Гость_watewatick_* |
May 24 2008, 12:19
Сообщение
#4
|
Guests |
У меня вот что получается, значит ссылочка //<A href="?style=new&s=one">СменитьСкин</A>
if (isset($style)) { if($s=='null') { $path_dir_style=""; setcookie('s','one',time()+(24*60*60*365)); unset($style); } else { $path_dir_style="/ns"; setcookie('s','null',time()+(24*60*60*365)); unset($style); } } else { if(isset($s)) { if( $s=='null' ) { $path_dir_style="/ns"; } else { $path_dir_style=""; } } else { $path_dir_style=""; } } ВРоде так работает, но мне кажется, что я уж сильно завернул - есть ли более легкие пути? Кстати, недостаток в этом - кеш страниц. Если кто-нить знает сайтики в простой интерпретации - наглядный пример тому, то, пожалуста, сообщите! |
|
|
May 24 2008, 14:02
Сообщение
#5
|
|
плахой мальчик Группа: Posters Сообщений: 178 Регистрация: 3.3.2008 Из: Че6. ЮЗР-URM@RbI Пользователь №: 15,495 |
Доброй ночи всем! Есть сайт и скины для него. Нужно сделать так, чтобы пользователь мог выбирать скин или возвращать прежний всего одним кликом (по ссылке). Например: скин1 храниться в /im/ скин2 храниться в /im/ns/ Немного поясню: по умолчанию всегда скин1, если пользователь желает сменить скин, то он кликает по ссылке, то есть выбирает скин2 (причём автосохранение), если пользователь желает вернуть прежний скин, то он снова кликает по той же ссылке, то есть возвращает скин1. Когда пользователь снова возвращается на сайт, то его ожидает автосохранённый скин. Надеюсь, что понятно выразился, пожалуйста, помогите написать код или хотя бы направьте в нужное русло! устанавливай cookie в значении которого хранится выбранный пользователем скин. если кукис не установлены то скин по умолчанию используй, иначе используй выбранный -------------------- |
|
|
May 24 2008, 16:28
Сообщение
#6
|
|
Супер постер Группа: Local moder Сообщений: 558 Регистрация: 15.9.2006 Из: Новочебоксарск Пользователь №: 1,788 |
Я тебе простой пример написал, зачем ты так извратился в своем коде?
|
|
|
May 24 2008, 16:54
Сообщение
#7
|
|
Пользователь Группа: Posters Сообщений: 65 Регистрация: 5.5.2006 Из: xUSSR Пользователь №: 512 |
устанавливай cookie в значении которого хранится выбранный пользователем скин. если кукис не установлены то скин по умолчанию используй, иначе используй выбранный эээ гениально.. -------------------- |
|
|
Гость_watewatick_* |
May 24 2008, 18:49
Сообщение
#8
|
Guests |
устанавливай cookie в значении которого хранится выбранный пользователем скин. если кукис не установлены то скин по умолчанию используй, иначе используй выбранный Сначало у меня было две сслыки <A href="?style=new&s=one"> и <A href="?style=new&s=null">, но мне показалось что две ссылки на одной странице это много. Поэтому код был изменён, а алгоритм остался. Твой код неплох, но в твоём коде я вижу лишь идею, но не вижу как бы её довести до конца, повторяясь, что скины (каскадная таблица+графические изображения) находятся в /im/ и /im/ns/ соответственно. |
|
|
May 25 2008, 15:08
Сообщение
#9
|
|
Супер постер Группа: Local moder Сообщений: 558 Регистрация: 15.9.2006 Из: Новочебоксарск Пользователь №: 1,788 |
Можно не ссылками, а выпадающим списком тоже самое сделать, как на этом форуме например.
То предложение... мой алгоритм... чего в коде непонятно?! |
|
|
Гость_watewatick_* |
May 25 2008, 16:19
Сообщение
#10
|
Guests |
Можно не ссылками, а выпадающим списком тоже самое сделать, как на этом форуме например. То предложение... мой алгоритм... чего в коде непонятно?! Нет....., выпадающий список мне ни как не вписывается...!!! Только одна ссылка. Вот как бы довести твою идею до конца, напомню каждый скин в своей директории.....то есть мне нужн0 чтобы пн $path_dir_style принимала значение либо "/ns/" (скин2), либо " " (скин1 - по умолчанию) -и еще кеш страниц как бы избежать.......??? (напрягает) |
|
|
May 28 2008, 20:33
Сообщение
#11
|
|
Пользователь Группа: Posters Сообщений: 95 Регистрация: 8.11.2007 Пользователь №: 11,378 |
и еще кеш страниц как бы избежать.......??? (напрягает) Запрет кэширования посредством PHP Для этого надо использовать в начале сценария следующие команды: Код Header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); //Дата в прошлом Header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 Header("Pragma: no-cache"); // HTTP/1.1 Header("Last-Modified: ".gmdate("D, d M Y H:i:s")."GMT"); Для полного запрета кэширования приходиться всегда посылать 4 указанных заголовка, и ни один пропустить нельзя - в противном случае не сработает либо браузер, либо Proxy-сервер. -------------------- ƒãtàl êrrõr
|
|
|
Гость_watewatick_* |
May 30 2008, 18:30
Сообщение
#12
|
Guests |
Запрет кэширования посредством PHP Для этого надо использовать в начале сценария следующие команды: Код Header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); //Дата в прошлом Header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 Header("Pragma: no-cache"); // HTTP/1.1 Header("Last-Modified: ".gmdate("D, d M Y H:i:s")."GMT"); Для полного запрета кэширования приходиться всегда посылать 4 указанных заголовка, и ни один пропустить нельзя - в противном случае не сработает либо браузер, либо Proxy-сервер. Спасибо......!!! Обязательно апробирую.............. |
|
|
Текстовая версия | Сейчас: 10th May 2024 - 02:59 |