Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

PAUK-NET.RU - Бесплатный ADSL портал Чувашии _ Apache (php + Perl) + FTP + MySQL _ знатокам php

Автор: watewatick May 23 2008, 23:33

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

Автор: Merkucio May 23 2008, 23:40

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


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

Автор: Fad May 24 2008, 06:54

Код
<?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

У меня вот что получается, значит ссылочка //<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

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

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

Автор: Fad May 24 2008, 16:28

Я тебе простой пример написал, зачем ты так извратился в своем коде?

Автор: Merkucio May 24 2008, 16:54

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

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

Автор: watewatick May 24 2008, 18:49

Цитата(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

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

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

Автор: watewatick May 25 2008, 16:19

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

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

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

Автор: Expend May 28 2008, 20:33

Цитата(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 May 30 2008, 18:30

Цитата(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-сервер.

Спасибо......!!! Обязательно апробирую..............

Форум Invision Power Board (http://nulled.cc)
© Invision Power Services (http://nulled.cc)