IPB

Здравствуйте, гость ( Вход | Регистрация )

> знатокам php, нужен код
Гость_watewatick_*
сообщение May 23 2008, 23:33
Сообщение #1





Guests






Доброй ночи всем!
Есть сайт и скины для него. Нужно сделать так, чтобы пользователь мог выбирать скин или возвращать прежний всего одним кликом (по ссылке). Например:
скин1 храниться в /im/
скин2 храниться в /im/ns/
Немного поясню: по умолчанию всегда скин1, если пользователь желает сменить скин, то он кликает по ссылке, то есть выбирает скин2 (причём автосохранение), если пользователь желает вернуть прежний скин, то он снова кликает по той же ссылке, то есть возвращает скин1. Когда пользователь снова возвращается на сайт, то его ожидает автосохранённый скин. Надеюсь, что понятно выразился, пожалуйста, помогите написать код или хотя бы направьте в нужное русло!
Вернуться к началу страницы
 
+Цитировать сообщение
 
Создать новую тему
Ответов (1 - 11)
Merkucio
сообщение May 23 2008, 23:40
Сообщение #2


Пользователь
**

Группа: Posters
Сообщений: 65
Регистрация: 5.5.2006
Из: xUSSR
Пользователь №: 512



Цитата(watewatick @ May 24 2008, 00:33) *
... или хотя бы направьте в нужное русло!


устанавливай cookie в значении которого хранится выбранный пользователем скин. если кукис не установлены то скин по умолчанию используй, иначе используй выбранный


--------------------
Вернуться к началу страницы
 
+Цитировать сообщение
Fad
сообщение 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="";
}
}
ВРоде так работает, но мне кажется, что я уж сильно завернул - есть ли более легкие пути? Кстати, недостаток в этом - кеш страниц. Если кто-нить знает сайтики в простой интерпретации - наглядный пример тому, то, пожалуста, сообщите!
Вернуться к началу страницы
 
+Цитировать сообщение
KONDOR-B@D BOY
сообщение May 24 2008, 14:02
Сообщение #5


плахой мальчик
***

Группа: Posters
Сообщений: 178
Регистрация: 3.3.2008
Из: Че6. ЮЗР-URM@RbI
Пользователь №: 15,495



Цитата(watewatick @ May 24 2008, 00:33) *
Доброй ночи всем!
Есть сайт и скины для него. Нужно сделать так, чтобы пользователь мог выбирать скин или возвращать прежний всего одним кликом (по ссылке). Например:
скин1 храниться в /im/
скин2 храниться в /im/ns/
Немного поясню: по умолчанию всегда скин1, если пользователь желает сменить скин, то он кликает по ссылке, то есть выбирает скин2 (причём автосохранение), если пользователь желает вернуть прежний скин, то он снова кликает по той же ссылке, то есть возвращает скин1. Когда пользователь снова возвращается на сайт, то его ожидает автосохранённый скин. Надеюсь, что понятно выразился, пожалуйста, помогите написать код или хотя бы направьте в нужное русло!

устанавливай cookie в значении которого хранится выбранный пользователем скин. если кукис не установлены то скин по умолчанию используй, иначе используй выбранный


--------------------
"ЛокоМотив FORZO FOREVER"
мир клипов
Вернуться к началу страницы
 
+Цитировать сообщение
Fad
сообщение May 24 2008, 16:28
Сообщение #6


Супер постер
Иконка группы

Группа: Local moder
Сообщений: 558
Регистрация: 15.9.2006
Из: Новочебоксарск
Пользователь №: 1,788



Я тебе простой пример написал, зачем ты так извратился в своем коде?
Вернуться к началу страницы
 
+Цитировать сообщение
Merkucio
сообщение May 24 2008, 16:54
Сообщение #7


Пользователь
**

Группа: Posters
Сообщений: 65
Регистрация: 5.5.2006
Из: xUSSR
Пользователь №: 512



Цитата(KONDOR-B@D BOY @ May 24 2008, 15:02) *
устанавливай cookie в значении которого хранится выбранный пользователем скин. если кукис не установлены то скин по умолчанию используй, иначе используй выбранный

эээ гениально..


--------------------
Вернуться к началу страницы
 
+Цитировать сообщение
Гость_watewatick_*
сообщение May 24 2008, 18:49
Сообщение #8





Guests






Цитата(KONDOR-B@D BOY @ May 24 2008, 15:02) *
устанавливай cookie в значении которого хранится выбранный пользователем скин. если кукис не установлены то скин по умолчанию используй, иначе используй выбранный

Сначало у меня было две сслыки <A href="?style=new&s=one"> и <A href="?style=new&s=null">, но мне показалось что две ссылки на одной странице это много. Поэтому код был изменён, а алгоритм остался. Твой код неплох, но в твоём коде я вижу лишь идею, но не вижу как бы её довести до конца, повторяясь, что скины (каскадная таблица+графические изображения) находятся в /im/ и /im/ns/ соответственно.
Вернуться к началу страницы
 
+Цитировать сообщение
Fad
сообщение May 25 2008, 15:08
Сообщение #9


Супер постер
Иконка группы

Группа: Local moder
Сообщений: 558
Регистрация: 15.9.2006
Из: Новочебоксарск
Пользователь №: 1,788



Можно не ссылками, а выпадающим списком тоже самое сделать, как на этом форуме например.

То предложение... мой алгоритм... чего в коде непонятно?!
Вернуться к началу страницы
 
+Цитировать сообщение
Гость_watewatick_*
сообщение May 25 2008, 16:19
Сообщение #10





Guests






Цитата(Fad @ May 25 2008, 16:08) *
Можно не ссылками, а выпадающим списком тоже самое сделать, как на этом форуме например.

То предложение... мой алгоритм... чего в коде непонятно?!

Нет....., выпадающий список мне ни как не вписывается...!!! Только одна ссылка. Вот как бы довести твою идею до конца, напомню каждый скин в своей директории.....то есть мне нужн0 чтобы пн $path_dir_style принимала значение либо "/ns/" (скин2), либо " " (скин1 - по умолчанию) -и еще кеш страниц как бы избежать.......??? (напрягает)
Вернуться к началу страницы
 
+Цитировать сообщение
Expend
сообщение May 28 2008, 20:33
Сообщение #11


Пользователь
**

Группа: Posters
Сообщений: 95
Регистрация: 8.11.2007
Пользователь №: 11,378



Цитата(watewatick @ May 25 2008, 17:19) *
и еще кеш страниц как бы избежать.......??? (напрягает)

Запрет кэширования посредством 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






Цитата(Expend @ May 28 2008, 21:33) *
Запрет кэширования посредством 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-сервер.

Спасибо......!!! Обязательно апробирую..............
Вернуться к началу страницы
 
+Цитировать сообщение

ОтветитьСоздать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 29th March 2024 - 00:15