Выбор темы оформления для гостей

1.41K
.
аkа ПьяНый Ангел
в твоем случали скорее всего только при выгоде, так как не вижу смысла при сохранение темы делать проверку, куки всё равно можно подменить ведь. хотя сделаи и там, лишним не будет
.
аkа ПьяНый Ангел
DrugsFan (31.03.2010/21:29)
Вот. Проверку взял и my_set.php и добавил в файл head.php перед выводом ссылки на скин Если скина не сучествует, то загружается дефолтный Обновите первый пост, пожалуйста, если это возможно :]
не, эту проверку ты лучше добавь в файл коре, если есть запись в куках, то проверяем. тема есть - ставим её, нет - задаем дефолтное значение для темы и чистим запись в куках
.
FlySelf, У меня не получилось в core.php проверку сделать. Белая страница. Никак не смог разобраться с ошибкой. Добавил тот же код в head.php и заработало xD
----
Я не тот архив выложил *пардон*
Прикрепленные файлы:
.
FlySelf, а, ладно, не буду делать проверку при записи. Там всё равно перезаписываются, если левые куки прописаны
.
core.php забыл убрать из архива, т.к. проверка вся в head теперь
Прикрепленные файлы:
.
В стельку трезвый
if (isset($_COOKIE['gskin'])) {
    $set_user['skin'] = check($_COOKIE['gskin']);
    $arr = array();
    $dir = opendir($rootpath . 'theme');
    while ($skindef = readdir($dir)) {
    if (($skindef != '.') && ($skindef != '..') && ($skindef != '.svn'))
        $arr[] = str_replace('.css', '', $skindef);
    }
    closedir($dir);
    if (!in_array($set_user['skin'], $arr)) {
    $set_user['skin'] = $set['skindef'];
    setcookie("gskin", $set['skindef'], time() + 3600 * 24 * 365);
    }
}

Эту проверку можно облегчить.
Например при проверке существования скина можно использовать is_file();
Так же лучше после проверки записать в куку и в сессию и не проверять каждый раз на существование скина, ибо замедляет работу. После слёта сессии, проверять куку и существование скина и далее опять в сессию пихать.
.
Максим, ух ты как интересно. Спасибо! :]
.
DrugsFan
Максим,
if (isset($_COOKIE['gskin'])) {
    $set_user['skin'] = check($_COOKIE['gskin']);
    if ($_COOKIE['verified'] != "ok") {
        if (is_file($rootpath . 'theme/' . $set_user['skin'].'/style.css')) {
            setcookie("verified", "ok", time() + 3600 * 24 * 365);
        } else {
            $set_user['skin'] = $set['skindef'];
            setcookie("gskin", $set['skindef'], time() + 3600 * 24 * 365);
            setcookie('verified', 'ok');
        }
    }
}


Вот так
Прикрепленные файлы:
.
DrugsFan (31.03.2010/22:52)
Максим, [php]if (isset($_COOKIE['gskin'])) { $set_user['skin'] = check($_COOKIE['gskin']); if ($_COOKIE['verified'] != "ok") { if (is_file($rootpath . 'theme/' . $set_user['skin'].'/styl
Что это?
.
DrugsFan
Ushaev, это проверка Качай прикреплённый архив, там всё уже сделано как надо
Всего: 62