TeBEa.Ru



 

   

Запомнить страницу

 
 

Статьи по темам:
 

 
   Авто и мото
   Банки
   Бизнес
   Дети
   Дизайн
   Законы
   Игры
   Искусство
   История
   Интересное
   Компьютеры
   Медицина
   Музыка
   Наука
   Образование
   Природа
   Программы
   Путешествия
   Работа
   Развлечения    
   Религия    
   Спорт  
   Техника    
   Технологии    
   Фармацевтика    
   Фото  
   Эротика    
   Электроника 
   Юмор
 
 


 

  Rambler's Top100

 

 
     
 

  ..

 
 

 
 

 Информации

 

 Развлечении

 
 

Шокирующие факты, Тайны, Аферы,
Полезные советы, Сенсаций, Чудеса науки, Интересное из истории,  Удивительные технологии

 

Фокусы, Обманы зрения, Игры, Анекдоты, Забавные истории, Шутки и розыгрыши, Эротические приколы, Головоломки с юмором

 
 
 

 


Вы можете получать прибыль со своего сайта разместив тематические обьявления

 

     Нас не забанят! Что такое бан.
 

 
 

(Злиться на себя можно до бесконечности,
но, рано или поздно, надо что-то делать.
Последствия - не предсказуемы, но лучше иметь
последствия, чем сожалеть об их отсутствии.)
 

 
   Есть небольшой комментарий, который, возможно, окажется полезным другим авторам журнала. Мысль для написания этой статьи пришла в момент полного душевного опустошения. Пусто было, как в Большом Провале, который никак не провалится. Даже ветер посвистывал. Но провал-провалом, а засел-таки за изложение мысли. Писалось так себе. Но шло. Когда занялся продолжением на следующий день - было еще хуже. Тогда я взял текст и стал методически истреблять восклицательные знаки, шутки, смайлы - все, что источало хотя бы самый слабый признак веселья и жизнерадостности. А потом продолжил писать в таком же духе. И что вышло? МЕГА ошибка, которую обнаружил только тогда, когда ушла пустота. Когда вернулся смысл. Когда жизнь окрасилась буйными красками. Так что, мой всем совет - не писать материал в состоянии душевного упадка. А если и писать - то перечитывать потом "по-черному", и тщательно проверять каждый пример кода.
Есть желание создать свой сайт? Отлично!!! Есть умения, возможности, время? Отлично!!! А что насчет хостинга? Хотелось бы на бесплатном? Да всем охота на бесплатном. Вот только реклама, будь она неладна...
Возрадуйтесь, граждане-товарищи! Из этой коротенькой листовки вы узнаете, как можно вовсю пользоваться PHP на бесплатном хостинге, не утруждая трафик посетителей и дизайн сайта назойливой рекламой :)
Итак, задача.
Есть сайт. Написан с использованием PHP. Хостинг - в розыске, денег - жалко. Что делать?
Решение.
Разнесем весь сайт на два хостинга: первый - с поддержкой PHP (без рекламы - днем с огнем не сыскать) - типа A, второй - без поддержки скриптов, но и без рекламы - типа B. Вот одна из возможных комбинаций: h12.ru + hotbox.ru. На хостинге типа A будут размещены все скрипты, а на хостинге типа B - html-страницы, эти скрипты запускающие. Я не оговорился. Именно html-страницы будут запускать скрипты. Для этой цели будем использовать возможность подключения к странице js-скриптов (или иных скриптов этого рода) из внешних файлов.
Каким образом бесплатные хостинги подвешивают рекламу на выход PHP-скриптов? Они анализируют HTTP-заголовок Content-Type, выдаваемый скриптом. Тот хостинг, на котором я ставил эксперименты, вешал рекламу, в частности, на такие типы контента: text/html, text/plain, text/javascript. Т.е. даже если Content-Type=text/javascript, выход скрипта банится ("подгружается" баннером) (но это только для php-скриптов. *.js файлы выдаются без "банов"). Зато "картинный" контент - не банится. Например, image/gif. Вот мы и дадим пинка по этой ахиллесовой пяте (<вырезано цензурой> засмотрелся на <вырезано цензурой>, как внезапно <вырезано цензурой>, отправив создателей сайта в <вырезано цензурой>, наступил на <вырезано цензурой> врага - по мотивам лога боя в БК). Как? Да очень даже просто. Я проверил в трех браузерах - js скрипт корректно считывается и отрабатывается, даже если сервер его выдает как Content-Type=image/gif. Вот так-то.
Осталось только сгенерировать соответствующий js-файл. Вот как мы это сделаем. Причем, с одной-единственной дополнительной строчкой в "маскируемом" скрипте. Эта единственная строчка - header("Content-Type: image/gif"); - которую нужно добавить в самое начало скрипта (в принципе, из-за применения в Посреднике буферизации, можно ставить хоть и в самый конец. Ничего от этого не изменится. Но лучше ставить отсылку заголовка в самое начало - так правильнее со всех точек зрения.) Далее, смастерим скрипт-посредник, принимающий один параметр через строку запроса. Этот скрипт будет обрабатывать специальным образом вывод скрипта, имя которого передано в запросе. Вот он, Посредник (не побоюсь большой буквы), - negotiator.php:
<?
header("Content-Type: image/gif"); # указываем на тип вывода скрипта
ob_start(); # сброс всего вывода скрипта во внутренний буфер

require($_SERVER["QUERY_STRING"]);

$page = ob_get_contents(); # получаем содержимое буфера
ob_end_clean(); # очищаем буфер и отключаем буферизацию
echo "document.write(\"".addslashes($page)."\");"; # вывод теперь уже js-скрипта
?>
Так просто. Любой (для усиления эффекта повторю еще раз), любой PHP-скрипт, вызываемый через negotiator.php?имя_скрипта , будет выдавать точно то же, что и выдавал ранее, только в контексте image/gif . Теперь остается только правильно подключить его к странице, чтобы вывод скрипта появился в нужном месте (и, разумеется, в нужное время):
<script language="javascript" src="http://..../negotiator.php?имя_скрипта"></script>
Вот и все....
Приведу пример.
Создадим небольшую страничку, на которой (средствами PHP) будет выведен ip-адрес и локальный порт посетителя, по которому производится связь с сервером сайта.
Скрипт ipport.php (размещаем по адресу http://сервер.типа.A/ipport.php - на хостинге типа A):
<?
header("Content-Type: image/gif");
echo "Соединение производится по адресу ".$_SERVER["REMOTE_ADDR"].", локальный порт ".$_SERVER["REMOTE_PORT"];
?>
Там же находится и Посредник - http://сервер.типа.A/negotiator.php. Страница ipport.htm, вызывающая скрипт (размещаем по адресу http://сервер.типа.B/ipport.htm - на хостинге типа B), выглядит так:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=windows-1251">
</head>
<body>
А ну-ка, что скажет PHP?<br>
<script type="text/javascript" src="http://сервер.типа.A/negotiator.php?ipport.php"></script>
</body>
</html>
Открыв в браузере http://сервер.типа.B/ipport.htm, легко убеждаемся в работоспособности примера. И никакой рекламы.
P. S. Единственное возможное препятствие на пути применения указанной технологии обхода рекламы - запрет (на самом хостинге) на генерацию "картинного" контента скриптами. Но, во-первых, и поныне есть бесплатные хостинги с разрешенной генерацией картинок. А во-вторых, даже если не останется ни одного такого "милостивого" хостинга, - нас больше, чем их. Придумаем что-то новенькое :)
(Внимание! Данный материал публикуется только в ознакомительных целях для повышения Вашей квалификации и указанию службе поддержки бесплатных хостингов на потенциальную недоработку
  (*Предупреждение! Не удалите эту ссылку: любопытные статьи, шокирующие факты, развлечении: http://tebea.ru  *). . За применение подобного метода, в случае если это заметит служба поддержки, Ваш аккаунт на бесплатном хостинге будет незамедлительно и безвозвратно удален. Прим. ред.)

Автор: Александр Рябов - ru-coding.com
 


 

 
 
 


 

 
     
 

@

 

 


 

 
© Tebea.Ru