Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #27, ФЕВРАЛЬ 2003 г.

PHP-NUKE - быстро и легко!

ManderX

Спецвыпуск Xakep, номер #027, стр. 027-018-4


$module_name = basename(dirname(__FILE__));

get_lang($module_name);

И у тебя должны быть языковые файлы с переводами в language.

2. index.php должен начинаться со строк:

if (!eregi("modules.php", $PHP_SELF)) {

die ("Еще раз, и в глаз!=)");

}

3. Когда юзаешь функцию switch() не используй $mop (она используется для modules.php switch), юзай другую переменную, например, $op (switch - переключение; когда у модулей несколько функций, то ему надо как-то их различать, например, если $op будет равна Add, то и функция выполнится соответствующая).

Для начала хватит. А лучше сначала изучи какой-нить чужой модуль, чтобы написать свои.

Для девелОпера

Как сделать нормальный русский в модулях, мы разобрались, а как в самом нюке? Да так же! В дире language лежат файлы с переводами, так что дерзай! В дире /images/ лежат картинки, который используются. Хотя это все просто, щас разберем, что и в каком файле лежит:

1. auth.php - скрипт аутентификации.

2. admin.php - скрипт Администраторской, в нем находятся функции входа (используется файл auth.php для аутентификации), функции админ-меню. И тут же скажу еще кое-что про модули. В дире admin (про диру /admin/language говорить не буду) содержатся части модулей для управления модулями (\admin\modules), в \admin\case находятся файлы, который указывают на админ-части модулей, когда указывается $op (вспомни switch()). А в \admin\links находятся линки, достаточно убрать файл-линк, и в меню админа не будет линка (визуального) на админ-часть модуля.

3. config.php - уже говорили про него, в версиях раньше 6.0 можно менять настройки в этом файле, но с приходом версии 6.0 настройки хранятся в БД, а в этом файле надо указывать только логин, пасс и хост к MySQL-серверу.

4. modules.php - должны же как-то различать Php-nuke, к каком модулю надо обратиться, вот именно этот скрипт это и делает.

5. mainfile.php - и правда, это основной файл (глянь на его размер), в нем содержатся основные функции.

6. index.php - первый файл, который мы видим при заходе на страницу, он выводит модуль, который был выбран как индексный, а также собирает REFERER-ы, дабы знать, с какого сайта к нам пришли, т.е. кто поместил ссылку на нас.

7. header.php - хедер, но не тот, про который я уже говорил, в этом содержится информация, которую можно увидеть, просмотрев только сорсы паги (META и JavaScript, который он берет из /include/, но об этом позже); также если существует themes/$ThemeSel/images/favicon.ico (сделай сам), то у сайта будет иконка (как на www.xakep.ru).

8. footer.php - футер, наверняка ты уже заметил рекламу внизу и копирайты, хочешь удалить? Половину из них можешь удалить в админ-меню, а остаток именно в этом файле, тебе надо удалить вот эту строку (перед ней не написано, что ее не нужно удалять и что тебе не дозволено ее удалять, какие они самоуверенные =):

echo "$copyright<br>$totaltime<br>\n</font>\n";

9. banners.php - из названия все ясно. Это банерная система.

Теперь про диру /includes/, к которой я обещал вернуться. В файле \includes\meta.php - содержатся META, меняй там все по своему вкусу, а в \includes\javascript.php - содержатся javascript-ы. Оба этих файла включены в header.php. counter.php - это счетчик, sql_layer.php - здесь switch() между типами БД, смотря какой тип БД, такие функции и будут выполнятся; my_header.php - пустой файл =), еще один хедер, тут ты можешь поместить все что хочешь, короче, благодаря этому файлу тебе не придется редактировать код в главных файлах. Но ведь это не по-нашенски, так что этот файл ваще не нужен :Р. Оп-а, install.php, это че за фокусы? Как-то я его пропустил (в версии 5.6 его не было, а в 6.0 появился), в общем - это еще один вариант заполнения nuke (БД), просто после создания БД запускаешь в брузере этот файл, а потом удаляешь его (дабы хацкеры не похацкали). Вот и все, вроде бы разобрались =).

Назад на стр. 027-018-3  Содержание  Вперед на стр. 027-018-5