в твоем случали скорее всего только при выгоде, так как не вижу смысла при сохранение темы делать проверку, куки всё равно можно подменить ведь. хотя сделаи и там, лишним не будет
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();
Так же лучше после проверки записать в куку и в сессию и не проверять каждый раз на существование скина, ибо замедляет работу. После слёта сессии, проверять куку и существование скина и далее опять в сессию пихать.
Максим, ух ты как интересно. Спасибо! :]
Максим,
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');
}
}
}
Вот так
Ushaev, это проверка
Качай прикреплённый архив, там всё уже сделано как надо