Данный релиз оказался самым смешным из всех слаедов. Тщательно изучив изменения в системе, я пришел к выводу, что их (скорее всего) пед писал самостоятельно, потому что такая откровенная бредятина могла зародиться только в его голове с интеллектом наитупейшего существа. Только я углядел там две ошибки, одна из которых фатальная – обе исправлены. Исправлять все остальное - не было ни сил ни желания т.к. сейчас есть более интересные задачи. После этого релиза, всех «официальных» клиентов что будут использовать «официальный» слаед я считаю лошьем. Теперь по порядку. С каждым релизом пед все больше и больше боится АСа. Уже из кожи вон лезет, чтобы усложнить нуление. На этот раз даже код SQL запросов поместил в инсталлер, который под зендом. Пед, ты действительно думаешь, что этим усложнил мне жизнь? - Ничуть. Так что как ни старайся, как ни выебывайся - все-равно, наша команда нашла способ. Тебе уже Леха писал, что все твои шаги известны наперед. (IMG:http://antislaed.net/style_emoticons/default/laugh.gif) Теперь ближе к коду. Есть одна нехорошая ошибка: когда я запустил инсталлер, система тут же сказала, что есть проблемы с MySQL сервером. А все дело в том, что ты тупо инклудишь файл security.php, который в свою очередь пытается установить соединение с БД. Это я пофиксил (первая ошибка). Вторая ошибка. В анонсе мне понравилось одно достойное улучшение: автоматическое архивирования логов ошибок. Тут я хочу заметить, что у тебя ТОННЫ ошибок! - Ты нагло обманываешь людей, блокируя логирование NOTICE ошибок (только не надо рассказывать басни, что это незначительные ошибки). Но я с нетерпением ждал релиза, чтобы посмотреть, как устроено. Нет, я безусловно знаю как это сделать и без твоей помощи, просто было интересно как это реализуешь именно ты. Когда я увидел твою реализацию, то слюни потекли.. Пфф. Сразу приведу твой код:
КОД
if (filesize($path) > 512000) { zip_compress($path, "config/logs/error_".date("d.m.Y").".txt"); unlink($path); }
Во-первых, 512000 – это размер в байтах и он никак не соответствует тому, что ты написал в анонсе. По размеру это далеко не один мегабайт (а всего лишь чуть меньше полмегабайта). Забыл как калькулятор запускать или пальцев посчитать не хватает? (IMG:http://antislaed.net/style_emoticons/default/laugh.gif) Во-вторых, сразу видно, что ты не знаешь, как работает функция filesize. Иногда полезно смотреть и на сайты типа php.net, а не только телепузиков выглядывать. Суть твоей ошибки заключается в том, что функция filesize КЕШИРУЕТСЯ! Другими словами, если не очищать кеш то, один раз вызвав ее, она будет постоянно давать одно и то же значение для данного файла сколько бы раз ты ее не вызвал за один коннект! Ты кеш нигде не очищаешь – я проверил. Вот и получается, что если за один коннект твоя функция вызовется несколько раз – она будет каждый раз возбуждать архивирование. У тебя обычно не возникают поодинокие ошибки – они группами сыплються! Кроме этого, обрати внимание на unlink, который может вызвать ошибку. Эту ошибку ты не подавляешь. Это чревато двумя возможными вариантами: 1. лог предыдущих ошибок просто затрется т.к. в функции zip_compress произойдет чтение несуществующего файла, а потом эту пустоту он по-идее запишет поверх уже созданного архива. – потеряем лог ошибок. (IMG:http://antislaed.net/style_emoticons/default/laugh.gif) 2. ошибка породит нужду вновь обратиться к этой функции (логирования ошибок) и опять и снова произойдет ошибка удаления несуществующего файла т.е. получиться бесконечный цикл и серв повиснет. (IMG:http://antislaed.net/style_emoticons/default/laugh.gif) Пофиксил я и эту ошибку.
Ну а далее вообще бред идет. (Ничего из нижеперечисленного я не фиксил) 1. пед, ты думаешь, что расставлять комменты, это круто? Я скорее уверен, что ты просто этим хочешь увеличить объем файлов.
КОД
# Zip compress function zip_compress($src, $dst) {
2. Все твои "заплатки" безопасности - это не более, чем перемещение строк кода и создание алиасов переменных. Дыры как были, так и остались. Твоя система фильтрации входящих переменных как была маразматической, так и осталась. Я всегда считал, что система защиты должна быть умной т.е. она должна фильтровать ТОЛЬКО то, что является небезопасным по-сути (вспомним мой HTML фильтр - он что-то нужное заблокировал?). Если же при фильтрации система фильтрует и то, что не нужно фильтровать - это глупая система защиты (в принципе пед по-другому не умеет). Смотрим код:
С text_filter-ом это ты жестко. Только много ресурсов уйдет на такую мелочь. Я не знаю, какому еще дамеру придет в голову сначало обратывать getenv(), а только потом переменную $_SERVER. Это все равно, что писать if (!true) ... . (IMG:http://antislaed.net/style_emoticons/default/laugh.gif)
Далее было еще много чего смешного, но уже нету сил писать. Поэтому закончу я "шедевром". Даже комментировать не буду - спросите у любого солидного разработчика, что это за код. Уверен, смеху будет или ругани.. - короче 100% педа-автора ламером назовут.
КОД
$referer = text_filter(getenv("HTTP_REFERER")); [...вырезано...] $result = $db->sql_query("SELECT link FROM ".$prefix."_auto_links"); while(list($slink) = $db->sql_fetchrow($result)) { if (preg_match("#".$slink."#i", $referer)) { $islink = 1; break; } else { $islink = 0; } } if ($islink) { [b]$db->sql_query("UPDATE ".$prefix."_auto_links SET hits=hits+1 WHERE link='".$slink."'");[/b] list($lid) = $db->sql_fetchrow($db->sql_query("SELECT id FROM ".$prefix."_auto_links WHERE link='".$slink."'")); $db->sql_query("INSERT INTO ".$prefix."_referer VALUES (NULL, '".$uid."', '".$uname."', '".$ip."', '".$referer."', '".$link."', now(), '".$lid."')"); } else { $db->sql_query("INSERT INTO ".$prefix."_referer VALUES (NULL, '".$uid."', '".$uname."', '".$ip."', '".$referer."', '".$link."', now(), '0')"); }
Единственное, что скажу. После этого (выделено жирным шрифтом) я НИКОГДА не назову твою систему модульной: код модуля в ядре системы... БРЕД!!!
Sunvas, Вас 24 раз(а) поблагодарили за это сообщение:
И так, начал тестить, сразу ошибки: - РАДИО - после установки таблиц базы данных модуля выдает ошибку: "Таблица: префик_internet_radio - Ошибка" - СЧЕТЧИК - установил на локалке, а пишет: "Пользователей: 8, Гостей: 7." З.Ы. Если еще чего найду, отпишу...
Сообщение отредактировал Smer4: Jun 23 2008, 18:09
Smer4, Вас 2 раз(а) поблагодарили за это сообщение:
на версии 4.1 было супер.. в ком. был редактор бб , а теперь когда нажимаешь "Конфигурации" выбираешь там "HTML Редактор TinyMCE" то у ком. поевляется этот редактор=) а когда добавляешь новость то там вообще нет редактора(((
ramzzes, Вас 1 раз(а) поблагодарили за это сообщение:
После нескольких раз обновления страницы выдает ошибку: "Существует проблема с MySQL сервером", но после обновления страницы, все начинает грузится нормально...
Smer4, Вас 2 раз(а) поблагодарили за это сообщение:
Не создаётся админ после установки. Вписываю все данные, затем подтверждаю кнопкой создать (вроде так называется) и всё. Всё очищается а зайти никак. Смотрю в базе MySql, таблица " ***_users" админ создан с тем логином и паролем какой вводил а при создании ничего не происходит. Возможно у SaT31ReG та же проблема. Что то у меня постоянные баги после 3.5 версии.
teletehnika, Вас 1 раз(а) поблагодарили за это сообщение: