Делаем рекламу на MFS "По стандартам программирования"
Делаем рекламу на MFS
Для начала нам надо открыть файл advertise.php (В MFS 2.2) и после include('header.php'); добавляем
    
#От прямого вызова константа
define ("SCRIN" , true);


Что мы этим делаем? Этим кодом мы объявляем константу, далее мы будем использовать её для проверки прямой у нас вызов файла или нет.

Далее мы ищем такую штуку

if($adv=='run') include('addrunblock.php');
if($adv=='spam') include('addspam.php');

И начинаем всё заменять
Для начала пишем
switch ($adv){


И далее заменяем строчки такого вида
if($adv=='run') include('addrunblock.php');

На такого вида
case 'run' : include('adv/addrunblock.php'); break;

Обязательно указываем что файл в папке adv
Так проделываем со всеми подключателями страниц, кроме того, где dyn.
В конце этого всего мы пишем
default : include('adv/adv.php'); break;
}

У меня на этом этапе получилось такое

switch($adv)
{
    case('dyn'): include('adv.php'); break;
        case('cat'):  include('addcatads.php'); break;
        case('frame'): include('addframeads.php'); break;
    case('dynb'): include('advb.php'); break;
    case('stat'):include('addstatlink.php'); break;
    case('banner'): include('addbanner.php'); break;
    case('minibanner'):  include('addminibanner.php'); break;
    case('chat'): include('addchatads.php'); break;
        case('dyn_mini'): include('adv_mini.php'); break;
    case('psevdo'): include('addpsevdo.php'); break;
    case('text'): include('addtextads.php'); break;
    case('top'):  include('addtoblock.php'); break;
        case('mail'):  include('addmails.php'); break;
        case('auto'):  include('advauto.php'); break;
        case('ygolok'):  include('addygolok.php'); break;
        case('serp'):  include('addserp.php'); break;
        case('massmails'):  include('addspam.php'); break;
        case('topbanner'): include('addtopbanner.php'); break;
    default: include('adv.php'); break;
}


После этого мы открываем каждый файл, для которого это делали и в самом начале каждого файла прописываем
if (! defined ( 'SCRIN' )) {
    die ( "Прямой вызов файла запрещён" );
}


Далее создаём папку adv и начинаем по очереди перемещать эти файлы в папку. Все файлы - файлы, которые мы редактировали кроме advertise.php

Что мы так сделали? Первое - это сделали подключатель разных видов рекламы через switch - что правильнее, чем говнокод, которые был ранее. Кроме этого мы сделали защиту от прямого вызова, что тоже является хорошей манерой.

В итоге у меня получилось что-то такое

Статью подготовил Scrin, все спасибо в репу или на кошелёк(в предыдущей статье он есть fellow )


Рубрика: Бесплатное » Дополнения   |   Автор: Scrin   |   Просмотры: 5300
Комментариев: 4
Публикаций: 1
ICQ: 635158208
- 126 +
  Автор: Xottabych144   |   Группа: V.I.P.   |   Дата: 02 августа 2012  
Вот это уже что-то! Спасибо! smile
Комментариев: 107
Публикаций: 2
ICQ: --
- 105 +
  Автор: ZICKFREED   |   Группа: Пользователи   |   Дата: 02 августа 2012  
Честно говоря статья ниочём
Комментариев: 69
Публикаций: 4
ICQ: --
- 314 +
  Автор: gemiks   |   Группа: Модераторы   |   Дата: 02 августа 2012  
Комментариев: 59
Публикаций: 2
ICQ: 207679
- 143 +
  Автор: Scrin   |   Группа: Пользователи   |   Дата: 02 августа 2012  
Цитата: ZICKFREED
Честно говоря статья ниочём

Опять всё не нравится. Артём вчера до <? дое*ался, а тебе мего исправление корявой штуки не нравится. Так кстати правильнее fellow
Цитата: ZICKFREED
Вот это уже что-то! Спасибо!

плюсиков не вижу lol
Комментариев: 138
Публикаций: 2
ICQ: 567777707
- 490 +
  Автор: Forceman   |   Группа: Пользователи   |   Дата: 02 августа 2012  
решил блеснуть знаниями конструкции Switch\Case???
браво!

а конст.SCRIN причем здесь? Если бы я открыл гавнокод и встретил такие названия переменных и констант, сжег бы в печи автора и код.
Комментариев: 107
Публикаций: 2
ICQ: --
- 105 +
  Автор: ZICKFREED   |   Группа: Пользователи   |   Дата: 02 августа 2012  
смысл защищать форму заказа от прямого инклуда???!!!
от прямого инклуда я бы защитил например конфиг, файл функций(особенно из-за использования в них global)
Комментариев: 59
Публикаций: 2
ICQ: 207679
- 143 +
  Автор: Scrin   |   Группа: Пользователи   |   Дата: 02 августа 2012  
Цитата: gemiks
поставил стрелку вверх

может не в ту сторону? только 1 было, уже 0 belay
Комментариев: 36
Публикаций: 0
ICQ: 627021203
- 170 +
  Автор: zhenikdst   |   Группа: Модераторы   |   Дата: 02 августа 2012  
Ништяк, сейчас плюсану, хоть кто то новость добавил.
Комментариев: 59
Публикаций: 2
ICQ: 207679
- 143 +
  Автор: Scrin   |   Группа: Пользователи   |   Дата: 02 августа 2012  
Цитата: Forceman
решил блеснуть знаниями конструкции Switch\Case???
браво!

А то, серавно нечего делать да и на шопе новостей и так нет
Цитата: Forceman
а конст.SCRIN причем здесь? Если бы я открыл гавнокод и встретил такие названия переменных и констант, сжег бы в печи автора и код.

для особо тугих написан коммент #От прямого вызова константа
Цитата: ZICKFREED
смысл защищать форму заказа от прямого инклуда???!!!

Так правильно, артём придёт тебе лекцию прочитает wink
Цитата: ZICKFREED
от прямого инклуда я бы защитил например конфиг, файл функций(особенно из-за использования в них global)

И ничего этого у тебя я не видел

Цитата: zhenikdst
Ништяк, сейчас плюсану, хоть кто то новость добавил.

Это и была основная идея, главное не о чём писать а для чего. моя цель на сегодня достигнута wink
Комментариев: 69
Публикаций: 4
ICQ: --
- 314 +
  Автор: gemiks   |   Группа: Модераторы   |   Дата: 02 августа 2012  
Цитата: Scrin
может не в ту сторону? только 1 было, уже 0

я до этого ставил когда было 1 стало 2 потом ктото заминусовал
Комментариев: 59
Публикаций: 2
ICQ: 207679
- 143 +
  Автор: Scrin   |   Группа: Пользователи   |   Дата: 02 августа 2012  
Цитата: gemiks
я до этого ставил когда было 1 стало 2 потом ктото заминусовал

Forceman & ZICKFREED
С*ка, с*ка так дружили!! wink
Комментариев: 69
Публикаций: 4
ICQ: --
- 314 +
  Автор: gemiks   |   Группа: Модераторы   |   Дата: 02 августа 2012  
Цитата: Scrin
С*ка, с*ка так дружили!!

скокро будет фирменой фразой шопа. wink
Комментариев: 59
Публикаций: 2
ICQ: 207679
- 143 +
  Автор: Scrin   |   Группа: Пользователи   |   Дата: 02 августа 2012  
Цитата: gemiks
скокро будет фирменой фразой шопа.

это моя фраза, я её тёме сказал и он её сегодня вспомнил
Комментариев: 69
Публикаций: 4
ICQ: --
- 314 +
  Автор: gemiks   |   Группа: Модераторы   |   Дата: 02 августа 2012  
Цитата: Scrin
это моя фраза, я её тёме сказал и он её сегодня вспомнил

значит твоя фирменая фраза.
Комментариев: 240
Публикаций: 6
ICQ: 573235722
- -896 +
  Автор: VELIK505   |   Группа: Программисты   |   Дата: 02 августа 2012  
Если честно это гавно код. Пора переходить на контроллеры уже.
Комментариев: 59
Публикаций: 2
ICQ: 207679
- 143 +
  Автор: Scrin   |   Группа: Пользователи   |   Дата: 02 августа 2012  
Цитата: VELIK505
Если честно это гавно код. Пора переходить на контроллеры уже.

Кому что wink Пока для буксов и так будет нормально, в скрипте ещё везде используются такие констуркции типа if ($a!='')
Комментариев: 107
Публикаций: 2
ICQ: --
- 105 +
  Автор: ZICKFREED   |   Группа: Пользователи   |   Дата: 02 августа 2012  
Цитата: Scrin
Forceman & ZICKFREED
С*ка, с*ка так дружили!!

За базар ответь. я вообще никогда не плюсую и не минусую статьи
Комментариев: 36
Публикаций: 2
ICQ: 643680
- 6 +
  Автор: Артём   |   Группа: Пользователи   |   Дата: 02 августа 2012  
ZICKFREED, Прямой вызов файла из адресной строки, может повлечь за собой раскрытие путей. Любые файлы, которые подключаются в ходе работы скрипта, должны быть защищены. Можно таким способом, о котором написал Влад, а можно все инклюдируемые файлы поместить в отдельную директорию, в которую запретить доступ через http (через .htaccess).

Вообще можно обойтись без if'ов, case'ов... Вот пример...
Комментариев: 5
Публикаций: 0
ICQ: --
- 16 +
  Автор: RemDev   |   Группа: Пользователи   |   Дата: 02 августа 2012  
Цитата: ZICKFREED
смысл защищать форму заказа от прямого инклуда???!!!

это не от инклюда, а от прямого вызова. Если вызвать напрямую - скрипт начнём показывать кучу ошибок, а это уже потенциальная уязвимость
Комментариев: 59
Публикаций: 2
ICQ: 207679
- 143 +
  Автор: Scrin   |   Группа: Пользователи   |   Дата: 02 августа 2012  
Цитата: Артём
Вообще можно обойтись без if'ов, case'ов... Вот пример...

а если ввели левую фигню? я об этом думал fellow
Комментариев: 36
Публикаций: 2
ICQ: 643680
- 6 +
  Автор: Артём   |   Группа: Пользователи   |   Дата: 02 августа 2012  
Scrin, В смысле?
Комментариев: 59
Публикаций: 2
ICQ: 207679
- 143 +
  Автор: Scrin   |   Группа: Пользователи   |   Дата: 02 августа 2012  
Цитата: Артём
Scrin, В смысле?

забей кароче
Комментариев: 107
Публикаций: 2
ICQ: --
- 105 +
  Автор: ZICKFREED   |   Группа: Пользователи   |   Дата: 03 августа 2012  
Цитата: Артём
Прямой вызов файла из адресной строки, может повлечь за собой раскрытие путей.

В том то всё и дело, если нормальный прогер делает свой движок, то как бы не вызывался файл всегда вылезет дефолтная страница, а лучше всего это создать тело и внутри него делать функционал
Комментариев: 138
Публикаций: 2
ICQ: 567777707
- 490 +
  Автор: Forceman   |   Группа: Пользователи   |   Дата: 03 августа 2012  
Forceman & ZICKFREED
С*ка, с*ка так дружили!!


Да наааах надо)) lol я не плюса ни минуса не поставил, ибо нейтрален.

Если честно это гавно код. Пора переходить на контроллеры уже.

Если я тебя понял, ты советуешь ему на контроллеры, модели и вьюхи (MVC) перевести букс))) Чума, но до этого дело дойдет как минимум года через 2, если вобще дойдет)

это не от инклюда, а от прямого вызова. Если вызвать напрямую - скрипт начнём показывать кучу ошибок, а это уже потенциальная уязвимость


Ты чего? Вобщето отображение ошибок вводится только в процессе разработки и отладки, а на Stable режим проекта эту аттрибуту отключают не то что в файле PHP error_reporting, а на сервере даже, тогда ни одной ошибки не увидишь.

По крайней мере я свой сервер (VPS) так конфигурировал и бед не знал.
Комментариев: 338
Публикаций: 169
ICQ: 650073308
- 291 +
  Автор: Alex   |   Группа: Пользователи   |   Дата: 08 октября 2012  
коменты не читал

но VLAF KAK BIL EBLANOM, TAK IM I OSTALSYA

вот интересно, зачем же константа, если можно файлы попереименовывать??))) или тебе выебнуться хотелось и в популярном мфсе расписаться?

а в конце статьи убило "перенести все файлы в папку adv"

и как же будет работать реклама с кодом в статье если файлы будут в отдельной папке?)

короче ты либо бухой писал статейку, либо ты EBLAN
Комментариев: 167
Публикаций: 16
ICQ: 553069709
- 239 +
  Автор: ZKolyaNZ   |   Группа: Пользователи   |   Дата: 18 января 2013  
Alex,
lol am ахаха
Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.