Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: знатокам php
PAUK-NET.RU - Бесплатный ADSL портал Чувашии > Информационные технологии > Интернет > Apache (php + Perl) + FTP + MySQL
watewatick
Доброй ночи всем!
Есть сайт и скины для него. Нужно сделать так, чтобы пользователь мог выбирать скин или возвращать прежний всего одним кликом (по ссылке). Например:
скин1 храниться в /im/
скин2 храниться в /im/ns/
Немного поясню: по умолчанию всегда скин1, если пользователь желает сменить скин, то он кликает по ссылке, то есть выбирает скин2 (причём автосохранение), если пользователь желает вернуть прежний скин, то он снова кликает по той же ссылке, то есть возвращает скин1. Когда пользователь снова возвращается на сайт, то его ожидает автосохранённый скин. Надеюсь, что понятно выразился, пожалуйста, помогите написать код или хотя бы направьте в нужное русло!
Merkucio
Цитата(watewatick @ May 24 2008, 00:33) *
... или хотя бы направьте в нужное русло!


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

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

эээ гениально..
watewatick
Цитата(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
Можно не ссылками, а выпадающим списком тоже самое сделать, как на этом форуме например.

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

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

Нет....., выпадающий список мне ни как не вписывается...!!! Только одна ссылка. Вот как бы довести твою идею до конца, напомню каждый скин в своей директории.....то есть мне нужн0 чтобы пн $path_dir_style принимала значение либо "/ns/" (скин2), либо " " (скин1 - по умолчанию) -и еще кеш страниц как бы избежать.......??? (напрягает)
Expend
Цитата(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-сервер.
watewatick
Цитата(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-сервер.

Спасибо......!!! Обязательно апробирую..............
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.