Главная страница » Модули » Защита DataLife Engine от внешних ссылок

Защита DataLife Engine от внешних ссылок

Раздел: Модули | Обзоров: 13331 | Отзывов: 143

Убедительно прошу, перед редактированием файлов движка DLE, сделайте резервные копии редактируемых файлов! Так же, я упускаю все предыдущие статьи, и все файлы мы будем создавать заново, так что приготовьте оригинальные файлы, что бы ни напортить чего либо.

Для редактирования и написания некоторых файлов я взял лучший текстовый редактор – Notepad++, советую использовать и вам его. Для начала зайдите на свой FTP или через панель администратора хостинга, как вам удобнее. Находим в каталоге engine/classes/ файл parse.class.php, открываем его нашим редактором найдите следующую строчку кода:

if ($this->filter_mode) $txt = $this->word_filter($txt, false);


После него аккуратно копируем и вставляем код приведенный ниже:

/*
Назначение: Раскодировка сформированного URL-адреса
Автор: www.seomax.info
*/

$txt = preg_replace( "#<!--FFriend--><noindex><a rel=\"nofollow\" href=[\"'](http://|https://|ftp://|ed2k://|news://|magnet:)?(\S.+?)['\"].+?".">(.+?)</a></noindex><!--EndFFriend-->#ie" , "\$this->decode_friend('\\1\\2', '\\3')", $txt );


Продвигаемся далее по коду и находим такой код:

return "<a href=\"".$url['html']."\" ".$target.">".$show."</a>" . $url['end'];


Удаляем его и вместо него пишем следующий (если копируете, то копируйте внимательно!) код:

/*
Назначение: Формирование URL-адреса
Автор: www.seomax.info
*/

if($this->check_home($url['html'])||$this->check_friends($url['html']))
{
       return "<a href=\"".$url['html']."\" ".$target.">".$show."</a>" . $url['end'];
}
else
{
      $url['html'] = $config['http_home_url']."go/?".($url['html']);
      return "<!--FFriend--><noindex><a rel=\"nofollow\" href=\"".$url['html']."\" ".$target.">".$show."</a></noindex><!--EndFFriend-->" . $url['end'];
}


Продвигаемся далее по коду и находим следующий код:

function word_filter($source, $encode = true) {


Выше этого кода пишем следующий код:

/*
Функция: "Дружественный URL"
Автор: www.seomax.info
*/
    
function check_friends ($url)
{
    global $config;        
    $friend_url = file($config['http_home_url']."engine/friend/friend_url.txt");      
        
    for ($i = 0; $i < count($friend_url); $i++)
    {
        $value = str_replace("http://", "", trim($friend_url[$i]));
        $value = str_replace("www.", "",    $value);
        $value = explode('/', $value);
        $value = reset($value);
                      
        if ($value == "" ) continue;
        if (strpos($url, $value) === false) continue; else return true;
    }
    return false;
}


И последний шаг для редактрирования этого файла. Найдите код:

return "[leech=".$url."]".$show."[/leech]";
}


Ниже пишем следующий код (аккуратно копируйте, не пропустите строки, символы):

/*
Функция: Раскодировка сформированного URL-адреса
Автор: www.seomax.info
*/

function decode_friend($url="", $show="")
{    
    global $config;
    $home_url = $config['http_home_url']."go/?";
        
    $url = str_replace($home_url, "", $url);
    $url = explode ("url=", $url);
    $url = end ( $url );
    $url = rawurldecode($url);
        
    return "[url=".$url."]".$show."[/url]";
}


Все, сохраняйте файл parse.class.php, но не спешите закрывать FTP менеджер, он еще нам нужен. Перейдите в каталог engine и создайте папку friend. В нее нужно добавить файл friend_url.txt, структура этого "текстового" файла простая - список URL-адресов дружественных сайтов. Не забудьте добавить права на чтение нашей папки и файла с URL. Смотрите пример:

http://zone-game.info/
http://forum.zone-game.info/

Список составляете так как я вам привел в примере. Обратите внимание на то, что все URL нужно указывать с http:// в начале и / в конце. Думаю вы сохранили уже этот список в каталог engine/friend/ с именем friend_url.txt и мы можем продолжать дальше. А дальше нам нужно перейти в корень сайта и создать в нем папку go. Теперь с помощью нашего Notepad++ сделайте файл index.php со следующим кодом:

<?php

$url = trim($_SERVER['QUERY_STRING']);

if(!empty($url)){
    @header('Location: ' . $url);
}

?>


Теперь поместите этот файл в каталог go который мы только что создали. Так же, так как хостингов очень много, и практически у каждого свои настройки Apache и так далее, бывает что не определяется файл как индексный. Давайте это исправим, создайте файл .htaccess с текстом внутри:

DirectoryIndex index.php
RewriteEngine Off

После этих действий можно тестировать наши наработки. Еще что бы я посоветовал, для особо мнительных :) в robots.txt закройте индексацию каталога go. Все, я думаю это финальная версия этого хака, хотя была идея (может быть когда-то) создать еще возможность добавления URL-адресов дружественных сайтов из панели администратора, но думаю это не важно, да и вообще - не нужно. Как всегда, если остались вопросы, пожалуйста, задавайте, я с удовольствием на них отвечу.

Так же, обращаюсь ко всем "копипастерам", незачем воровать мои статьи, они созданы для всех, но созданны мной, а я разрешения на распространение не давал, пожалуйста, уважайте мой труд. Ведь я мог и не вылаживать этот хак, или стать на путь барыги, который написав три строки кода, требует n-баксов.

Хочу заметить и за "баксы", прошу, не пишите мне в пм или icq вот эти "Слышь помоги, ты же обещал!", я помогаю, но помогаю на этом сайте, то есть http://seomax.info.

Ах да, в знак благодарности, добавьте в социальную закладку эту страницу буду премного благодарен! :)


Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.


Комментарий добавил: Socha (9 января 2009 17:09)
сделал все как надо, перепроверил еще раз, вроде точно как надо сделал...
проблема вот в чем:
при добавлении новости выдает

Parse error: syntax error, unexpected T_IF, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /home/www/....../engine/classes/parse.class.php on line 1028

На этой строке вот что:

if ($encode) {

$all_words = @file(ENGINE_DIR.'/data/wordfilter.db.php');
$find = array();
$replace = array();

if (!$all_words OR !count($all_words)) return $source;

foreach($all_words as $word_line)
{
$word_arr = explode("|", $word_line);

if (get_magic_quotes_gpc()) {

$word_arr[1] = addslashes($word_arr[1]);

}


Версия двигла 7.3

Это надож wink ?
Запостил, прочитал, и сам разобрался...
В коде
/*
Функция: "Дружественный URL"
Автор: www.seomax.info
*/
..........

Последний знак } лишний...

Все работает, спасибо за труд!


    

Комментарий добавил: PROGRAMMATOR (9 января 2009 19:15)
Здравствуйте,

У нас ошибка?

/*
Функция: "Дружественный URL"
Автор: www.seomax.info
*/

function check_friends ($url)
{    
    for(...)
    {
           ...
    }
}

Как бы все нормально, может вы лишнюю поставили? smile

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: mabilko (25 января 2009 19:53)
сделал всё правильно, но не работает абсолютно на ДЛЕ 7.5


    

Комментарий добавил: PROGRAMMATOR (26 января 2009 13:16)
Хорошо, установлю на днях DLE 7.5, проверю и подправлю, если это нужно.

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: fyntik_net (28 января 2009 17:22)
Привет! smile
Большое спасибо за отличную новость! Вроде все пашет. Аффтар - ты молодец!!! Респект и уважуха! bully

Интересует еще такой вопрос: Весь этот хак я так понял действует только для защиты новых ссылок. А как защитить уже существующие ссылки?


    

Комментарий добавил: PROGRAMMATOR (28 января 2009 20:21)
Пока DLE не научится пересчитывать новости, комментарии и т.д. - никак.

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: pansik (29 января 2009 13:27)
работоспособность с 7.5 не смотрели еще ? Думаю обновлятся или не стоит


    

Комментарий добавил: PROGRAMMATOR (29 января 2009 18:04)
Нет, еще не ставил. Как установлю вы первыми узнаете.

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: PROGRAMMATOR (30 января 2009 02:53)
Цитата: mabilko
сделал всё правильно, но не работает

Значит так сделали.

Цитата: pansik
Думаю обновлятся или не стоит

Обновляйтесь, проверил, все работает, так как и на 7.3 Разница только в том, что они добавили в некоторых местах пробел, из-за этого прийдется смотреть глазами, а не юзать поиск блокнота.

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: Socha (2 февраля 2009 09:29)
На 7.3 работало все идеально.
Обновился до 7.5 не работает...
К примеру при редактировании новости выдает такую ошибку
Fatal error: Call to undefined function: clear_url() in /home/www/socha/htdocs/engine/classes/parse.class.php on line 503


    

Комментарий добавил: PROGRAMMATOR (4 февраля 2009 01:03)
Socha, проверил все, что только можно, создание и редактирование новостей, сообщений и страниц, все работает на актуальной на данный момент DataLife Engine 7.5, на котором работает наш сайт. Вот пример:

1. http://seomax.info/ - дружественный сайт
2. http://zone-game.info/ - дружественный сайт
3. http://yandex.ru/ - не дружественный сайт

Где, что неработает, у меня - все работает :) Видимо прийдется написать мануал для версии 7.5, так как многие немогут установить хак.

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: Socha (4 февраля 2009 09:26)
Хм belay
А ставил так же как и на 7,3 или есть где подковырка?


    

Комментарий добавил: PROGRAMMATOR (4 февраля 2009 19:30)
Все в точности как написано в статье. Одно что они изменили, так это добавили везде пробелы, например было так:

if ($this->filter_mode) $txt = $this->word_filter($txt, false);

А сделали так:

if ( $this->filter_mode ) $txt = $this->word_filter( $txt, false );

Соответственно найти по поиску блокнота уже невозможно, хотя частями можно искать...

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: Socha (5 февраля 2009 10:40)
PROGRAMMATOR, ты прав, все работает.
Первый раз видимо криво поставил


    

Комментарий добавил: kodex (8 февраля 2009 21:16)
Поставил, все вроде работает, но не применяет редирект к некоторым ссылкам на обменники. Скажем, когда добавляешь пост на сайт, в нем есть ссылки на скачивание. Мод добавляет http://www.site.ru/go/? только, если на конце ссылки есть /. Скажем, есть 3 ссылки на скачивание: на rapidshare.com, narod.ru и zshare.net. Все это дело выглядит так (например):
http://narod.ru/disk/5522737000/super.file.rar.html
http://rapidshare.com/files/186227778/super.file.rar.rar
http://www.zshare.net/download/5527556fddec636/

После публикации вижу адреса ссылок:
http://narod.ru/disk/5522737000/super.file.rar.html
http://rapidshare.com/files/186227778/super.file.rar.rar
http://www.site.ru/go/?http://www.zshare.net/download/5527556fddec636/

Почему он применил это только для zshare? Можно это как-нибудь исправить?


    

Комментарий добавил: PROGRAMMATOR (8 февраля 2009 22:59)
Хм... Да быть такого не может. Скрипт не проверяет на окончание, он его просто обрезает. Скажем разбивает ссылку на 3 части:

http:// rapidshare.com /files/186227778/super.file.rar.rar

Удаляет все кроме домена и сравнивает с базой дружественных url.

Народ.Ру
РапидШара.Ком

Все работает, незнаю что там у вас, может их в друзья занесли? :)

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: kodex (8 февраля 2009 23:25)
Оч странно, но проблемы была в том, что я к архивам на конец приписывал _site.ru, т.е. выглядело так: http:// rapidshare.com /files/186227778/super.file_site.ru.rar - из-за этого и не делал редирект no


    

Комментарий добавил: WySteR (19 февраля 2009 22:48)
поставил на дле 7.5 добавляеш новость а ссылка всёравно без редикета, что делать? Проверил, работает только если добавлять через обычный редактор, в WYSIWYG непашед ((


    

Комментарий добавил: PROGRAMMATOR (20 февраля 2009 17:10)
Цитата: WySteR
в WYSIWYG непашед ((

А в нем этот хак и не должен работать. Парсит ведь BBCode.

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: WySteR (20 февраля 2009 17:37)
PROGRAMMATOR,
былоб хорошо чтоб и на WYSIWYG-е пахал, может доделаеш? winked


    

Комментарий добавил: PROGRAMMATOR (20 февраля 2009 23:13)
Нет, больше желания нет выкладывать наработки.

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: crazy_icf (9 марта 2009 02:20)
Здраствуйте, а для DLE-Forum подобного хака нет?


    

Комментарий добавил: PROGRAMMATOR (9 марта 2009 04:44)
Интереса ради скачал форум, ничего сложного. Удивительно что вы сами не догадались, как применить этот хак. Загляните сюда:
engine\forum\classes\parse.class.php

И проделайте с файлом все как описано в статье.

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: crazy_icf (9 марта 2009 09:51)
спасибо, помогло )


    

Комментарий добавил: crazy_icf (10 марта 2009 12:06)
а для RSS Информера ни как нельзя прикрутить, пробывал informer.tpl делать, не помогло, есть какие-нибудь идеи?


    

Комментарий добавил: mouserok (10 марта 2009 12:09)
а что делать если картинка с ссылкой на внешнею страницу ???


    

Комментарий добавил: PROGRAMMATOR (10 марта 2009 17:44)
Цитата: crazy_icf
а для RSS Информера ни как нельзя прикрутить

Завтра днем гляну, что можно придумать. Вы крутите новости не дружественных сайтов?

Цитата: mouserok
а что делать если картинка с ссылкой на внешнею страницу ???

Картинка с ссылкой на не дружественный сайт, да и дружественный, без разницы, выводится так:

[ url=http://seomax.info/ ][ img ]http://site.ru/img.jpg[ /img ][ /url ]

Соответственно ссылка в [ url ]обработается и зависимо от того, куда она ведет, сделается пере направление или же останется прямой. Для примера посмотрите на баннер сверху сайта, вот такая ссылка и будет, если сайт не дружественный.

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: PROGRAMMATOR (11 марта 2009 18:24)
Цитата: PROGRAMMATOR
Завтра днем гляну, что можно придумать.

Откройте файл engine\modules\rssinform.php и исправьте код:

$tpl->set( '[link]', "<a href=\"" . $content['link'] . "\" target=\"_blank\">" );
$tpl->set( '[/link]', "</a>" );

Например вот так:

$tpl->set( '[link]', "<a href=\"/go/?" . $content['link'] . "\" target=\"_blank\">" );
$tpl->set( '[/link]', "</a>" );

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: crazy_icf (11 марта 2009 20:31)
спасибо помогло, вставил вместо /go/? "http://mysite.domain/go/?" только вот так =)


    

Комментарий добавил: crazy_icf (14 марта 2009 19:23)
и еще раз требуется помощь, посмотрел перерыл все что мог, скрипт данные доделываю и дорабатываю для внутренний сети, ну да проблема в другом, ссылки после редиректа я вывожу в отдельном окне, все выводится замечательно, но глюк состоит в том, что если в адресе существует символ "#" то ссылка выводится до этого символа и все. содержимое файл index.php в папке go:

<?php
$ip=$_SERVER['REMOTE_ADDR'];
if (!empty($_SERVER['QUERY_STRING'])){
$re_addr=$_SERVER['QUERY_STRING'];
//header('Location: '.$re_addr);
}
?>
<html><a href="<?echo "$re_addr";?>"><b><font size="7"><?echo "$re_addr";?></font></b></a></html>


В чем может быть проблема? пробывал менять символ $re_addr=str_replace('#', '#', $re_addr); результата ноль....

Почитал форумы, php не видит якорь (#) и что же делать в таком случае ... ссылки выводятся неполноценные, у нас в сети каталог с фильмами выводится таким образом #fileНомер а при выводе echo все что после якоря - пропадает... эх.


    

Комментарий добавил: PROGRAMMATOR (17 марта 2009 19:09)
Не хотелось бы вас расстраивать, но никак не выйдет.

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: crazy_icf (20 марта 2009 01:53)
спасибо, попробую через java сделать, я сам просто не программер, админ, а этим пока только начал увлекаться =) и есть еще идея написать чтоб ссылки писались в скуль базу, и выводились через id номера например....это точно избавит от накрутки для тИЦ и PR....если все реализаю, код выложу...спасибо за разработкУ )


    

Комментарий добавил: opus44 (24 марта 2009 23:35)
Зарегистрировался специально что бы сказать спасибо. Очень качественный пример и что самое главное, с хорошим, подробным описанием. Многие считают что раз он написал то утруждать себя описанием не стоит. И так, мол, много сделал и бесплатно. Огромное спасибо еще раз. Все замечательно работает.


Цитата: PROGRAMMATOR
Откройте файл engine\modules\rssinform.php и исправьте код:

$tpl->set( '[link]', "<a href=\"" . $content['link'] . "\" target=\"_blank\">" );
$tpl->set( '[/link]', "</a>" );

Например вот так:

$tpl->set( '[link]', "<a href=\"/go/?" . $content['link'] . "\" target=\"_blank\">" );
$tpl->set( '[/link]', "</a>" );


У меня и без этого РССпарсер нормально вставляет ссылки.



    

Комментарий добавил: PROGRAMMATOR (25 марта 2009 22:12)
opus44, не за что, рад что вам пригодилось :)

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: veb (22 апреля 2009 20:38)
Подскажите пожалуйста, будет работать на 8,0 ?
Только создал сайт, не хочу потратить время напрасно.


    

Комментарий добавил: PROGRAMMATOR (22 апреля 2009 22:36)
Да, у меня основной сайт работает на 8 версии. Там только одно отличие, при редактировании сами увидите.

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: mars (4 мая 2009 01:36)
Здравствуйте. Вроде всё сделал как описанно в инструкции, но по моему у меня ни чего не заработало (или я не понял что заработало)...

Вообщем старые ссылки имеют тот же вид что и имели, новые ссылки в новостях имеют стандартный вид...

Что не так мог сделать?
Версия ДЛЕ 7.3

Ещё хотел отметитьч то строка
return "<a href=\"".$url['html']."\" ".$target.">".$show."</a>" . $url['end'];
У меня выглядела немного подругому
return "<!--dle_leech_begin--><a href=\"".$url['html']."\" ".$target.">".$show."</a><!--dle_leech_end-->
" . $url['end'];


    

Комментарий добавил: PROGRAMMATOR (4 мая 2009 18:46)
Вы не то отредактировали, немного ниже, точнее после

}else{

Находится нужный код, если его нет, то значит Вы используете уже модифицированный файл, возьмите оригинальный и по новой.

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: mars (4 мая 2009 21:08)
Цитата: PROGRAMMATOR
Вы не то отредактировали, немного ниже, точнее после

}else{

Находится нужный код, если его нет, то значит Вы используете уже модифицированный файл, возьмите оригинальный и по новой.


Спасибо, помогло.


    

Комментарий добавил: _Slon (11 мая 2009 19:05)
вечер добрый. Дле 8 - всё чудесно работает работает , единственное неудобство при быстром редактировании новости видим вот такую картину:

http://s44.radikal.ru/i106/0905/ee/8d06b16a56d4.jpg

после сохранения получаем вот что:

http://s54.radikal.ru/i144/0905/68/116e3bca7d07.jpg

есть ли возможность избавиться от не нужных символов?


    

Комментарий добавил: PROGRAMMATOR (11 мая 2009 21:52)
Здравствуйте,

Вы пропустили самый первый шаг:


/*
Назначение: Раскодировка сформированного URL-адреса
Автор: www.seomax.info
*/

$txt = preg_replace( "#<!--FFriend--><noindex><a rel=\"nofollow\" href=[\"'](http://|https://|ftp://|ed2k:/
/|news://|magnet:)?(\S.+?)['\"].+?"
;.">(.+?)</a></noindex><!--EndFFriend-->
#ie" , "\$this->decode_friend('\\1\\2', '\\3')", $txt );

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: _Slon (12 мая 2009 19:35)
Спасибо огромнейшее ) действительно это моя невнимательность, всё отлично работает! wink


    

Комментарий добавил: svet_mur (12 мая 2009 21:55)
Здравствуйте,
установила дополнение, всё отлично работает!
Спасибо Вам огромное.

после установки, возник вот такой вопрос, бьюсь уже кучу времени над ним.
Очень нужно, чтобы внешняя ссылка (например)
http://seomax.info/

выглядела вот так:
http://ссылка.com/http://seomax.info


как это сделать, подскажите плиииз


    

Комментарий добавил: PROGRAMMATOR (14 мая 2009 02:37)
Впервые вижу такое перенаправление. Быть может там просто javascript, тип такого:

<a href="http://seomax.info/http://какой-то_сайт.ру/" onclick="this.href='http://какой-то_сайт.ру'">текст
ссылки</a>


То есть видим ссылку http://seomax.info/http://какой-то_сайт.ру/ но при переходе, открываем http://какой-то_сайт.ру/

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: sibirius38 (15 мая 2009 13:16)
Какое различе для ДЛЕ 8.0. Вроде поставил но редирект не работает .
Попробовал уже несколько раз. Ошибок не выдает но и не работает

PROGRAMMATOR,
Подскажите что не так плиз


    

Комментарий добавил: PROGRAMMATOR (15 мая 2009 16:18)
Отличие только в коде:

return "<a href=\"".$url['html']."\" ".$target.">".$show."</a>" . $url['end'];

Там добавлена проверка и выглядит весь код так:

if ($this->safe_mode AND !$config['allow_search_link'])
    return "<noindex><a href=\"" . $url['html'] . "\" " . $target . " rel=\"nofollow\">" . $show . "</a></noindex>" . $url['end'];
else
    return "<a href=\"" . $url['html'] . "\" " . $target . ">" . $show . "</a>" . $url['end'];


То есть Вам нужно заменить весь этот код, а не одну строчку.

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: sibirius38 (15 мая 2009 16:40)
Ура-а работает!!! Большое спасибо. Вы гений!!!


    

Комментарий добавил: Yanetta (22 мая 2009 02:29)
Автору ОГРОМНОЕ ЧЕЛОВЕЧЕСКОЕ СПАСИБО!!! На 8-ке у меня ничего не получалось - выдавалась ошибка (хак нашла на другом сайте), разные сайты облазила, чтобы решить эту проблему - ничего не нашла...И вот наткнулась на автора этого хака, т.е. на Вас - PROGRAMMATOR, на ваш сайт - уже читаю последний комментарий к этому посту - и - О, чудо!!! Вот решение всей проблемы!!! И все заработало!!! Еще раз спасибо Вам!!!


    

Комментарий добавил: PROGRAMMATOR (22 мая 2009 12:26)
Не за что, пользуйтесь на здоровье. smile

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: Angel_xxxl (30 мая 2009 08:22)
Скажите у меня установлен хак автоматически меняет url на leech может из за него не работать ваш хак редиректа или всё же я напортачил? движок DLE 7.5


    

Комментарий добавил: PROGRAMMATOR (30 мая 2009 16:33)
Что-то напортачили, возьмите оригинальный файл parse.class.php и повторите все действия.

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: kuut (30 мая 2009 20:48)
Спасибо большое! Всё работает. Правда, изучил все комментарии прежде, чем сделал всё как надо. У меня dle8.0. В friend_url.txt Ваш сайт - первый.


    

Комментарий добавил: PROGRAMMATOR (30 мая 2009 21:07)
Цитата: kuut
В friend_url.txt Ваш сайт - первый.

Ну все, иду спамить к Вам! :) Шутка. Рад что Вам пригодился хак.

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: kuut (30 мая 2009 23:13)
Наверное, рано обрадовался. Что-то не получается с дружественными ссылками. Тоже идут через редирект. Выдаёт какую-то ошибку в этой строке
$friend_url = file($config['http_home_url']."engine/friend/friend_url.txt"
);
Всё уже несколько раз перепроверил, переписал по-новой parse.class.php. Не помогает.


    

Комментарий добавил: PROGRAMMATOR (31 мая 2009 00:50)
А Вы текст ошибки приведите. Хотя думаю, что проблема в неправильно установленных правах для файла.

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: kuut (31 мая 2009 01:12)
А какие нужно установить права?
Текст ошибки такой
Warning: file(): URL file-access is disabled in the server configuration in /home/vol4/byethost6.com/b6_3376/site.ru/htdocs/engine/classes/parse.class.php on line 1058 Warning: file(http://site.ru/engine/friend/friend_url.txt): failed to open stream: no suitable wrapper could be found in /home/vol4/byethost6.com/b6_3376/site.ru/htdocs/engine/classes/parse.class.php on line 1058


    

Комментарий добавил: PROGRAMMATOR (31 мая 2009 19:13)
А это говорит о том, что у вас отключен allow_url_fopen, в php.ini нужно установить allow_url_fopen = on; если нет доступа к конфигурации php, то обратитесь к администратору хостинга.

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: kuut (31 мая 2009 21:09)
А это говорит о том, что у вас отключен allow_url_fopen, в php.ini нужно установить allow_url_fopen = on; если нет доступа к конфигурации php, то обратитесь к администратору хостинга.

Спасибо за подсказку. Да, у меня, оказывается, отключен allow_url_fopen, доступа к php.ini нет. Попытаюсь обратиться к хостеру.


    

Комментарий добавил: PROGRAMMATOR (1 июня 2009 00:06)
Если вдруг не включат, ну мало ли... Тогда попробуйте изменить код:

$friend_url = file($config['http_home_url']."engine/friend/friend_url.txt");

На следующий:

$friend_url = array("http://seomax.info/", "http://zone-game.info/", "http://yandex.ru/");

Только ссылки свои укажите. :)

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: kuut (1 июня 2009 02:19)
Спасибо огромное! Теперь всё работает. Но, получается, папка friend теперь не нужна? С ней, конечно, было бы удобнее.


    

Комментарий добавил: PROGRAMMATOR (1 июня 2009 04:04)
Да, теперь ни каталог, ни сам файл friend_url.txt - Вам не нужны. Придется редактировать parse.class.php что бы добавить новый URL. Для удобности расположите вот так:

$friend_url = array(
    "http://seomax.info/",
    "http://zone-game.info/",
    "http://yandex.ru/"
    );

И можете вписывать столько, сколько необходимо. Не забывайте разделять ссылки запятыми.

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: _Slon (2 июня 2009 07:25)
Доброе утро , промелькнул хороший вопрос про картинку на не дружественный сайт.

Если картинка с такой ссылкой - то вопросов не возникает
[ url=http://seomax.info/ ][ img ]http://site.ru/img.jpg[ /img ][ /url ]


а с таким вот вариантом возможно что-то придумать?

[ img ]http://site.ru/img.jpg[ /img ]





    

Комментарий добавил: PROGRAMMATOR (3 июня 2009 00:01)
А зачем? Боитесь что бы ПР на картинку не передался? lol

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: styleismylife (3 июня 2009 04:08)
Спасибо Вам за такой классный хак....у меня есть вопрос...когда добавляю новость - всё отлично,но после редактирования ссылка выглядит так

<!--FFriend-->Скачать с Letitbit.net<!--EndFFriend-->

А должна

Скачать с Letitbit.net

Как можно это исправить


    

Комментарий добавил: tadasi (4 июня 2009 03:24)
После установки на dle 7.5 при попытке редактирования из админки именно добавленной новости с редиректами вылетает ошибка:

Fatal error: Call to undefined method ParseFilter::decode_friend() in H:\sites\kinowara\engine\classes\parse.class.php(358) : regexp code on line 1

строка:

$txt = preg_replace( "#<!--FFriend--><noindex><a rel=\"nofollow\" href=[\"'](http://|https://|ftp://|ed2k://|news://|magnet:)?(\S.
+?)['\"].+?".">(.+?)</a></noindex><!--E
ndFFriend-->#ie" , "\$this->decode_friend('\\1\\2', '\\3')", $txt );

p.s. А можете сделать такой же редирект, но что бы можно было его применить ко всем уже существующим новостям! Странно, что никто ничего по этому поводу даже и не заикнулся - а ведь это очень и очень актуально!

Думаю можно какой-то скриптик написать, но я в пхп не особо силён...

--------------------
Скачать бесплатно фильмы: http://kinowara.ru

    

Комментарий добавил: _Slon (4 июня 2009 06:07)
PROGRAMMATOR,
А зачем? Боитесь что бы ПР на картинку не передался? lol


есть такое дело))


    

Комментарий добавил: Maxter (4 июня 2009 15:31)
Цитата: tadasi
После установки на dle 7.5 при попытке редактирования из админки именно добавленной новости с редиректами вылетает ошибка:

Fatal error: Call to undefined method ParseFilter::decode_friend() in H:\sites\kinowara\engine\classes\parse.class.php(358) : regexp code on line 1

Такая же точно проблема, тока Dle 8.0


    

Комментарий добавил: player03 (4 июня 2009 17:12)
Всё сделал как надо но не работает. Может кто кинет исправленый файлик parse.class.php


    

Комментарий добавил: PROGRAMMATOR (5 июня 2009 12:03)
Цитата: styleismylife
<!--FFriend-->Скачать с Letitbit.net<!--EndFFriend-->

Внимательно посмотрите код, что-то испортили в первом куске кода. Скорее всего Вы удалили эти теги из preg_replace в первом куске кода, вот он и не заменяет их.

Цитата: tadasi
undefined method ParseFilter::decode_friend()

Самый последний пункт редактирования parse.class.php Вы пропустили.

Цитата: tadasi
Странно, что никто ничего по этому поводу даже и не заикнулся

Спрашивали и на этом сайте спрашивали, и ответ как всегда один - DLE не умеет "пересобирать новости". Например такой функции как в vBulletin "Пересчитать статистику" - у него нет.

Цитата: _Slon
есть такое дело))

Не обращайте внимания, на картинку ничего не перейдет.

Цитата: Maxter
Такая же точно проблема, тока Dle 8.0

Смотрим выше.

Цитата: player03
Может кто кинет исправленый файлик parse.class.php

Это навряд ли, так как запрещено выкладывать файлы с дистрибутива.

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: Maxter (5 июня 2009 18:49)
return "[leech=".$url."]".$show."[/leech]";
}
я пропустил } и поставил перед ней код, поэтому была ошибка, сейчас все работает. Спасибо большое!


    

Комментарий добавил: kand2004 (9 июня 2009 13:19)
Большое спасибо автору!!!
Официально заявляю - на версии 7.5 работает отлично!


    

Комментарий добавил: mars (26 июля 2009 21:08)
Поставил на dle 8 лицензию и ни чего не работает :( до этого уже ставил на 7.3 и работало. Перепроверил на несколько раз, вроде бы всё верно исправил.

В чём может быть ошибка? или дле 8 не поддерживается?


    

Комментарий добавил: PROGRAMMATOR (28 июля 2009 22:42)
Конечно поддерживается, все как и на 7+

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: mars (29 июля 2009 23:37)
PROGRAMMATOR, а ты можешь проверить файл если я тебе его скину в личку?


    

Комментарий добавил: PROGRAMMATOR (30 июля 2009 11:15)
Лучше пересмотрите сами код. Да и вообще, после установки, какая ошибка?

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: mars (31 июля 2009 01:28)
Ошибки ни какой нет но ссылки остались того же вида что и были и в новых новостях и в шаблоне в целом.


    

Комментарий добавил: PROGRAMMATOR (4 августа 2009 13:16)
Ну, а как же можно помочь в том, чего не видно? Если ошибки нет, значит работает, если не работает, то Вы его вообще не установили. Почему здесь работает и на втором сайте? Везде установлены 8.2 версии и работает точно так же, как и с 7 версией.

http://forum.searchengines.ru/
http://zone-game.info/

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: Verus (29 августа 2009 03:21)
PROGRAMMATOR а может будет проще если ты выложишь уже готовые файлы ( для тех кто хочет) и чтоб просто перелить?

я так понял этот способ хорош для новых тем?

как быстро можно исправить старые новости на сайте?


    

Комментарий добавил: Verus (30 августа 2009 01:50)
Благодарю !!! Установил на DLE 8.2 всё работает!!!

самое главное внимательно читать инструкцию и внимательно копировать.


    

Комментарий добавил: PROGRAMMATOR (30 августа 2009 06:03)
Не за что, пользуйтесь.

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: pansik (24 сентября 2009 13:57)
это снова ваш постоянный посетитель :) Есть идея, как раздвинуть возможности редиректа : переадресация с задержкой, и возможность вставки рекламы на страницу задержки.

Тоесть в го пхп просто не сразу перебрасываем, а отображаем таймер в 60 секунд, под ним ссылочку и рекламу, например тизеры. После таймера - сам редирект, либо в любой момент - через нажатие на ссылку. Думаю это честнее всяких кликандеров, которые вешают на сайты - у пользователя есть выбор - кликать на рекламу или нет.
Я сначала попытался сам, нашел код с задержкой
<div id="time"></div>
<script>
var fuck = (function() {
var timeout = new Date().getTime() + 59*1000;
function getTimeLeft(){
return new Date(timeout - new Date());
}
return {
getTimeLeft: getTimeLeft
};
})();

function start() {
document.getElementById('time').innerHTML = fuck.getTimeLeft().getSeconds();
setTimeout(arguments.callee, 1000);
}
start();
</script>


но тямы до ума довести не хватило. Возможно вы сможете помочь


    

Комментарий добавил: PROGRAMMATOR (25 сентября 2009 04:02)
Нет, в своем откручивать рекламу я не хочу, он просто перенаправляет, а то что вам нужно, есть в сети, ищите по запросу "Редирект как на vkontakte.ru".

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: crazy_icf (8 октября 2009 01:12)
и вот он снова я с вопросами. перебрал код форума 2.4 все поправил, все шаги выполнил, ничего не изменилось :) кто поможет? :)


    

Комментарий добавил: PROGRAMMATOR (8 октября 2009 01:25)
Не может быть, по любому должно что-то измениться :)

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: crazy_icf (8 октября 2009 02:05)
ваще голяк, могу файл выложить если надо, там просто местами функции поменены, если в форуме 2.3 все по порядку шло, как в описании, то тут то вверх, то вниз скачем перед каждым действием.


    

Комментарий добавил: PROGRAMMATOR (8 октября 2009 02:14)
Я сегодня смотреть не хочу, недавно с торжества пришел, а вот завтра скачаю с официального сайта дистрибутив форума, поставлю и проверю.

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: crazy_icf (8 октября 2009 11:42)
спасибо, жду :)


    

Комментарий добавил: tarantas (8 октября 2009 14:50)
У меня версия двига 7.5. Уже находил этот хак на других сайтах, все пытался прикрутить к своему, но не получалось. Да и комментов на сайтах небыло, сразу видно что вылаживали ворованый. А тут захожу на Ваш сайт и упс хозяин хака.
Ну думаю дай ка попробую еще разок, выполнил инструкции на 100% и УРА ВСЕ РАБОТАЕТ, замечу с первого раза.
Огромнейшее человеческое спасибо за хак.

Да чуть не забыл. Я не создавал файл .htaccess, будут из за этого какие заморочки? Просто у меня в корне уже лежит такой файл, но там другое прописано.


    

Комментарий добавил: crazy_icf (8 октября 2009 18:28)
если index.php выполняется по умолчания, никаких проблем быть не должно :)


    

Комментарий добавил: crazy_icf (9 октября 2009 13:38)
PROGRAMMATOR не смотрел еще? не подскажешь что там с форумом 2.4 ? :)


    

Комментарий добавил: PROGRAMMATOR (9 октября 2009 21:37)
Проверил, все работает, видимо что-то пропустили, еще раз просмотрите внимательно.

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: crazy_icf (10 октября 2009 02:36)
можно выслать уже измененный и модифицированный файл на мыло admin(собака)kazachya.net
спасибо :)


    

Комментарий добавил: crazy_icf (11 октября 2009 00:01)
спасибо, все поехало:)


    

Комментарий добавил: kaybox (20 октября 2009 23:31)
Спасибо автору за отличный модуль!! wink Поставил на DLE 8.2 всё прекрасно работает, но вот в комментариях почему то не заменяется ссылка, я что то не так сделал или так и должно быть? может нужно для 8,2 версии вставлять код как было описано в одном из комментов для 8,2?
Отличие только в коде:

return "<a href=\"".$url['html']."\" ".$target.">".$show."</a>" . $url['end'];

Там добавлена проверка и выглядит весь код так:

if ($this->safe_mode AND !$config['allow_search_link'])
return "<noindex><a href=\"" . $url['html'] . "\" " . $target . " rel=\"nofollow\">" . $show . "</a></noindex>" . $url['end'];
else
return "<a href=\"" . $url['html'] . "\" " . $target . ">" . $show . "</a>" . $url['end'];


То есть Вам нужно заменить весь этот код, а не одну строчку.

я всё делал по инструкции. Пришлось просто отключить для пользователей использование кликабельных ссылок


    

Комментарий добавил: Alex (6 ноября 2009 09:50)
у меня ссылки добавляются через дополнительные поля,наверно поэтому хак не работает ((((((
PROGRAMMATOR,можешь помочь разобраться?

двиг 7.3

Спасибо


    

Комментарий добавил: PROGRAMMATOR (6 ноября 2009 17:43)
У меня на сайте в новостях тоже используются дополнительные поля, если в них указать BB Code то все отлично работает.

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: SEOshnik (7 ноября 2009 17:04)
Помогите пожалуйста я уже 5 часов пытаюсь сделать, parse.class.php отредактировал правильно, тыщу раз перечитал все ваши комменты, всё учёл, ссылки прекрасно заменяются, НО но браузер НЕ хочет переходить дальше, в строке браузера ссылка вида http://мой-сайт.net/go/?http://www.kinopoisk.ru/level/4/people/10552/
просто тупо виснет и никак не хочет редиректится, также пишет стандартное сообщение: К сожалению, данная страница для Вас не доступна: возможно, был изменен ее адрес или она была удалена. Пожалуйста, воспользуйтесь поиском..

УРА! ура! ура! ааааааа! winked я таки сделал это! какой кайф и облегчение....

Причина была в неправильно созданном index.php, хотя создавал я его в Dreamweaver, а потом тупо взял исходный корневой index.php тупо стёр из него всё и вставил нужный код, и всё заработало.. я счастлив :о)


    

Комментарий добавил: PROGRAMMATOR (7 ноября 2009 20:49)
Ну вот и славно :)

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: Alex (9 ноября 2009 02:55)
Цитата: PROGRAMMATOR
сли в них указать BB Code то все отлично работает.


Проблема в том что как раз в ссылках у меня BB запрещен no -Что ниче нельзя сделать?


    

Комментарий добавил: PROGRAMMATOR (10 ноября 2009 21:02)
Нет, с помощью этого мода точно не сделать.

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: Alex (12 ноября 2009 17:38)
Цитата: PROGRAMMATOR
Нет, с помощью этого мода точно не сделать.


жаль no мод все-равно классный,в комментах редирект пашет

PROGRAMMATOR,а есть какой-то еще мод на редиректы?
возможно ли сделать такой-же только чтоб работал наоборот,т.е чтоб не дружеские домены добавлять в список а именно те которые хочешь редиректнуть?
и желательно чтоб работал на весь сайт - было б очень полезно laughing


    

Комментарий добавил: PROGRAMMATOR (14 ноября 2009 06:53)
Добавить восклицательный (!) знак у проверки дружественной ссылки $this->check_friends($url['html']).

/*
Назначение: Формирование URL-адреса
Автор: www.seomax.info
*/

if($this->check_home($url['html']) || !$this->check_friends($url['html']))
{

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: curup (15 ноября 2009 17:02)
скажите, а на DLE 8.2 работает?
Просто я уже 2 раза ставил, и никак. Никаках ошибок нет, но и результата тоже(


    

Комментарий добавил: PROGRAMMATOR (16 ноября 2009 19:59)
Конечно работает, и на 8.3 тоже работает.

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: curup (17 ноября 2009 20:04)
Спасибо! все работает!
Оказывается это работает ТОЛЬКО с вновь оформленными новостями.
А как сделать, чтоб изменились и "старые" ссылки?


    

Комментарий добавил: curup (18 ноября 2009 19:44)
У меня очередная проблема:
после всего, что я сделал, ссылка имеет вид:
http://мой-сайт.net/engine/redirect.php?url=http://depositfiles.com/files/pl5zkn
oly
при переходе по ссылке - в новом окне отрыватся мой сайт с сообщением: "К сожалению, данная страница для Вас не доступна: возможно, был изменен ее адрес или она была удалена. Пожалуйста, воспользуйтесь поиском."
Как это можно исправить?


    

Комментарий добавил: PROGRAMMATOR (19 ноября 2009 02:09)
Цитата: curup
А как сделать, чтоб изменились и "старые" ссылки?

Никак.

Цитата: curup
после всего, что я сделал, ссылка имеет вид:

С данным модулем ссылки такого вида быть не могут.

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: curup (19 ноября 2009 22:18)
Уже все работает!
Просто вышла накладочка со старым модулем, точнее кодом модуля для редиректа.
Всему виновата невнимательность.((
Спасибо!


    

Комментарий добавил: Seregaz (4 декабря 2009 00:01)
Помогите please...
После ссылки вылазит "квадратная скобка":
SATRip Серия 01]

И после картинки-превью тоже...
Подскажите, где копать?...


    

Комментарий добавил: pansik (4 декабря 2009 12:05)
Привет PROGRAMMATOR , это снова я, самый преданный сторонник этого редиректа smile . Возникла такая ситуация - у меня с сайта постоянно тянут новости рсс грабером. Самим рсс каналом люди пользуются, картинки замазывают, а вотермарк больше ставить не хочется. И я так подумал, пусть грабят, стоит же редирект, тоесть линки то на меня.
Внимание! У вас нет прав для просмотра скрытого текста.


    

Комментарий добавил: PROGRAMMATOR (5 декабря 2009 04:25)
Seregaz,
Ищите ошибку у себя в коде.

pansik,
Убрать теги просто:

/*
Назначение: Раскодировка сформированного URL-адреса
Автор: www.seomax.info
*/

$txt = preg_replace( "#<!--FFriend--><a href=[\"'](http://|https://|ftp://|ed2k:/
/|news://|magnet:)?(\S.+?)['\"].+?"
;.">(.+?)</a><!--EndFFriend-->#ie" , "\$this->decode_friend('\\1\\2', '\\3')", $txt );


И этот:

/*
Назначение: Формирование URL-адреса
Автор: www.seomax.info
*/

if($this->check_home($url['html'])||$this->check_friends($url['html']))
{
       return "<a href=\"".$url['html']."\" ".$target.">".$show."</a>" . $url['end'];
}
else
{
      $url['html'] = $config['http_home_url']."go/?".($url['html']);
      return "<!--FFriend--><a href=\"".$url['html']."\" ".$target.">".$show."</a></noindex><!--EndFFriend-->" . $url['end'];
}


Насчет того, как поисковик учитывает ссылки с /go/? не в курсе. Но в панельке WebMasters у Яши отображаются такие ссылки.

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: pansik (5 декабря 2009 10:58)
</a></noindex>
тут пропустили.
Да, я первую часть не сделал,провтыкал, поэтому и не возвращались ссылки в начальный вид.
А этот пункт
Внимание! У вас нет прав для просмотра скрытого текста.


    

Комментарий добавил: Verus (6 декабря 2009 12:27)
как можно сделать тоже самое для картинок?

тоесть чтоб все картинки в новостях автоматически помещались в < noindex >


    

Комментарий добавил: SEOshnik (12 декабря 2009 03:01)
А в файл friend_url.txt нужно добавлять адрес своего сайта или нет? belay


    

Комментарий добавил: PROGRAMMATOR (14 декабря 2009 20:28)
Цитата: pansik
возможен ?

Нет, куда же вы ссылку вставите, если:

@header('Location: ' . $url);

Тут же браузер отдает заголовок 302 и перемещает по ссылке.

Цитата: Verus
как можно сделать тоже самое для картинок?

Хм... внимательно рассмотрите функцию build_image(...), думаю все станет ясно.

Цитата: SEOshnik
нужно добавлять адрес своего сайта или нет?

Нет естественно. :)

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: dubik2006 (19 декабря 2009 20:33)
Простите конечно но я в версии 8.3 вообще не нашол строку :
if ($this->filter_mode) $txt = $this->word_filter($txt, false);

у меня стоит такая строчка :
            if ($this->safe_mode AND !$config['allow_search_link'])
             &n
bsp;  return "<noindex><a href=\"" . $url['html'] . "\" " . $target . " rel=\"nofollow\">" . $show . "</a></noindex>" . $url['end'];
            else        
             &n
bsp;  return "<a href=\"" . $url['html'] . "\" " . $target . ">" . $show . "</a>" . $url['end'];
        
        }

как я понемаю , защита уже встроена , но она не работает . Помогите разобратся


    

Комментарий добавил: PROGRAMMATOR (21 декабря 2009 03:25)
Цитата: dubik2006
Простите конечно но я в версии 8.3 вообще не нашол строку :

Быть такого не может, или Вы думает на 8.3 я его себе не ставил?

У вас защита не встроена, это в конфиге можно указать, что бы все внешние ссылки были в noindex и nofollow, но суть хака описанного в данной статье - другая.

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: dubik2006 (21 декабря 2009 11:48)
Цитата: PROGRAMMATOR
Быть такого не может, или Вы думает на 8.3 я его себе не ставил?

Да Вы правы просто невнимательность я искал поиском строчку , как написано у Вас :
if ($this->filter_mode) $txt = $this->word_filter($txt, false);
а у меня оказалась такая строчка :
if( $this->filter_mode ) $txt = $this->word_filter( $txt, false );
Разница небольшая (всего один пробел , а поиск уже найти не может)
Все поставил , и всё вроде работает только когда новость редактируешь после того как сохранил наверху вылезает ошибка (хотя сама новость становится отредактирована)
Warning: file(http://сайт.ком/engine/friend/friend_url.txt): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /home/httpd/vhosts/сайт.ком/httpdocs/engine/classes/parse.class.php on line 1156 Warning: file(http://сайт.ком/engine/friend/friend_url.txt): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /home/httpd/vhosts/сайт.ком/httpdocs/engine/classes/parse.class.php on line 1156 Warning: file(http://сайт.ком/engine/friend/friend_url.txt): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /home/httpd/vhosts/сайт.ком/httpdocs/engine/classes/parse.class.php on line 1156 Warning: file(http://сайт.ком/engine/friend/friend_url.txt): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /home/httpd/vhosts/сайт.ком/httpdocs/engine/classes/parse.class.php on line 1156 Warning: file(http://сайт.ком/engine/friend/friend_url.txt): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /home/httpd/vhosts/сайт.ком/httpdocs/engine/classes/parse.class.php on line 1156

и вот такое только на версии 8.3 на другом сайте стоит 8.2 поставил и всё работает без проблем .

Ещё хотел Вам вопрос задать : У меня есть ещё сайт , там версия 7,5 если поменяю версию и поставлю заново защиту , все новости которые были добавлены до смены версии , опять будут незащены или защита сохранится ?


    

Комментарий добавил: PROGRAMMATOR (22 декабря 2009 19:42)
Цитата: dubik2006
после того как сохранил наверху вылезает ошибка

Права на файл скорее всего забыли добавить.

Цитата: dubik2006
опять будут незащены или защита сохранится

Новости которые были созданы после установки этого хака - останутся прежними, то есть защищенными. :)

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: bigfan (27 декабря 2009 16:20)
Спасибо!


    

Комментарий добавил: PROGRAMMATOR (27 декабря 2009 17:27)
Хм, вроде было больше текста в сообщении. :)

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: SEOshnik (5 января 2010 23:03)
в общем вот что: feel

Внимание! У вас нет прав для просмотра скрытого текста.


    

Комментарий добавил: PROGRAMMATOR (6 января 2010 00:12)
Хоть и не нужны там noindex, проще ведь закрыть от индексации каталог engine, где размещен сам скрипт go.php. Но раз хочется поковырять двиг, то найти код:

$txt = preg_replace( "#<!--dle_leech_begin--><a href=[\"'](http://|https://|ftp://|ed2k:/
/|news://|magnet:)?(\S.+?)['\"].+?"
; . ">(.+?)</a><!--dle_leech_end-->#ie", "\$this->decode_leech('\\1\\2', '\\3')", $txt );


заменить на:

$txt = preg_replace( "#<!--dle_leech_begin--><noindex><a rel=\"nofollow\" href=[\"'](http://|https://|ftp://|ed2k:/
/|news://|magnet:)?(\S.+?)['\"].+?"
; . ">(.+?)</a></noindex><!--dle_leech_end-->
;#ie", "\$this->decode_leech('\\1\\2', '\\3')", $txt );


найти код:

return "<!--dle_leech_begin--><a href=\"" . $url['html'] . "\" " . $target . ">" . $show . "</a><!--dle_leech_end-->" . $url['end'];


заменить на:

return "<!--dle_leech_begin--><noindex><a rel=\"nofollow\" href=\"" . $url['html'] . "\" " . $target . ">" . $show . "</a></noindex<!--dle_leech_end-->" . $url['end'];


Ну в общем то и все.

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: SEOshnik (6 января 2010 02:03)
Внимание! У вас нет прав для просмотра скрытого текста.


    

Комментарий добавил: Tovan (8 января 2010 13:40)
PROGRAMMATOR, после защиты от внешних ссылок,
Внимание! У вас нет прав для просмотра скрытого текста.


    

Комментарий добавил: frybit (9 января 2010 01:36)
на лицензионой 8.2 работает автору спасибо


    

Комментарий добавил: PROGRAMMATOR (9 января 2010 15:13)
Tovan, естественно, хак касается только тех ссылок, которые были добавлены с помощью BBCode.

frybit, не за что, рад что пригодился хак. smile

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: re34534wers1 (18 января 2010 11:13)
Здравствуйте, пишет ошибку при добовлении комментария с url
Warning: file(http://сайт.ру/engine/friend/friend_url.txt): failed to open stream: Connection refused in /home/сайт.ру/public_html/engine/classes/parse.class.php on line 1149
Версия 8.3


    

Комментарий добавил: qwerty (3 февраля 2010 16:34)
Огромное человеческое спасибо smile

Ещё бы для WYSIWYG сделать, было бы шикарно )


    

Комментарий добавил: DemonXT (7 февраля 2010 20:37)
Цитата: styleismylife
Спасибо Вам за такой классный хак....у меня есть вопрос...когда добавляю новость - всё отлично,но после редактирования ссылка выглядит так

<!--FFriend-->Скачать с Letitbit.net<!--EndFFriend-->

А должна

Скачать с Letitbit.net

Как можно это исправить

И меня такая же проблема. crying
Заметил, что на страницу эти теги записываются, как: & lt ;!--FFriend-->Скачать с Letitbit.net & lt ;!--EndFFriend-->
Думаю из-за этого их и выводит браузер.
Закомментировал в файле: parse.class.php строку: $source = str_replace( "<!--", "& lt ;!--", $source );
Пока тестирую...


    

Комментарий добавил: SEOshnik (13 марта 2010 22:56)
Что-то у меня не пашут внешние дружественные ссылки, т.е редирект на них есть, хотя в friend_url.txt ссылки прописанны

Не пойму что где не так... no

Цитата: "PROGRAMMATOR "
Tovan, естественно, хак касается только тех ссылок, которые были добавлены с помощью BBCode

т.е. если ссылки вставлять через html код типа <a href="ссылка>текст</a> то редиректа НЕ будет ???


    

Комментарий добавил: PROGRAMMATOR (13 марта 2010 22:59)
Быть может файл недоступен для чтения. Проверьте CHMOD.

Цитата: SEOshnik
т.е. если ссылки вставлять через html код типа <a href="ссылка>текст</a> то редиректа НЕ будет ???

Раз уж вставляете html ссылку, то двиг ее обрабатывать не будет.

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: SEOshnik (13 марта 2010 23:07)
О, отлично, что html не обрабатывает, а то у меня friend_url.txt (права 777 на папку friend файл) не пашет, пиршлось через html писать


    

Комментарий добавил: rebunol (16 марта 2010 22:14)
Доброго времени суток!
Данный хак поставил с месяц назад..,все работало прекрасно,и вот сегодня случилось.
Захожу редактировать новость-жму на просмотрт и все..окно просмотра виснет и не открывается...а сам сайт после подобного действия становится недоступен(загружен) еще некоторое время(1-2 мин)!
Начал..искать в чем проблема..!
Заменяю файл parse.class.php на оригинал..все начанает работать..!
Но ведь я же ничего не менял..все само собой спонтанно!
Пишу хостингу..они говорят никаких действий не производили..что мол лог ваших сайтов выдает такую ошибку

PHP Warning: file(http://otsyoyu.net/engine/friend/friend_url.txt): failed to open stream: operation failed in /home/rebunlol/public_html/otsyoyu.net/engine/classes/parse.class.php on line 1172

Что делать..?Как вылечить..!!?
Версия двига 8.5

P.S.На файл friend_url.txt и папку friend даже пробывал права ставить 777

Все то начанает спонтанно работать,то снова прекращает..!
У меня уже голова дымится..от мыслей..!!!


    

Комментарий добавил: PROGRAMMATOR (17 марта 2010 04:09)
Интересно, но это не от хака зависит. Вот у меня установлен, и работает, файл читает. ;)

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: xp-ov (18 марта 2010 14:35)
Поставил на DLE 8.2 по инструкции. Всё заработало с первого раза. Автору С П А С И Б О !!! wink


    

Комментарий добавил: alex75300 (31 марта 2010 17:06)
Цитата: PROGRAMMATOR
Быть такого не может, или Вы думает на 8.3 я его себе не ставил?


Уважаемый PROGRAMMATOR я ставил на 8,3 3 раза и ничего не получается , скинте мне на мыло модифицированный файл
alex75300сабакаbigmir.net
Зарание спасибо


    

Комментарий добавил: PROGRAMMATOR (31 марта 2010 17:27)
Файлы не распространяю. Защита DataLife Engine 8.5 от спамных ссылок - пробуйте такой вариант.

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: netfil (18 июня 2010 13:12)
PROGRAMMATOR,
подскажи как исправить такое:
_http://seomax.info/old/go/?http://rapidshare.com/files/400311746/ProxyShell_Hide_IP
_v3.1.3.rar - все работает
_http://fws.org.ru/go/?http://rapidshare.com/files/400311746/ProxyShell_Hide_IP_
v3.1.3.rar - не работает
и такая же проблема еще с несколькими ФО адреса которых заканчиваются на .rar


    

Комментарий добавил: pirat100111 (8 сентября 2010 00:14)
а на 9 версии движка работать будет?


    

Комментарий добавил: PROGRAMMATOR (8 сентября 2010 18:14)
Вот - быть может подойдет. Точно сказать не могу, так как отказался от Data Life Engine и не оплачивал обновление и посему 9-й версии не имею.

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: Wandercom (1 ноября 2010 23:04)
Здравствуйте.
Не могли бы Вы перезолить для 9.0.


    

Комментарий добавил: rebunol (27 ноября 2010 20:31)
Доброго времени суток..!Перенес сайт на другой хостинг и этот хак отказывается работать!
В редактировании новости при нажатии на просмотр или добавить в новом окне выскакивает Ошибка HTTP-шлюза (код ошибки: 502)
При замене parse.class все нормализуется..но остается мусор в прошлых новостях..!Что может быть не так..подскажите пожалуйста..!

Версия 8.5

хм..очень странно..после танцев с бубнами..начал ставить..именно хак для 8.5..!
После установки редирект не происходил..ну ни как..!Решил наобум...заменил..index.php(содержимое) с этого хака..и тот хак(для 8.5) заработал..
Мусора вроде нет..все работает..!
Поясните плиз..в чем же собственно подобный трабл заключается..!!!