Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Хаки » DLE "Партнеры сайта" Версия 1.0 и dle9.7

DLE "Партнеры сайта" Версия 1.0 и dle9.7


     01.10.2012    dle 9.7    Все вопросы » Хаки    3563

вопрос
Здравствуйте установил модуль DLE "Партнеры сайта" Версия 1.0
При проверке обратной ссылки пишет что её нет.
Проверка работает в том случае если на сайте-партнере стоит прямая ссылка на сайт без модификаций вида :
http://www.site.ru/go.php?http://example.ru 
и т.п
Подскажите есть ли решение?
Версия dle 9.7

Ответа пока нет


2 комментария

dample
Юзер

dample - 2 октября 2012 16:12 -

Ещё хочу дополнить:
Что проверка даже прямой ссылки работает только если она находится строго между тегами
<body>
</body>

Не проверяется если тег <body> изменен. К примеру

<body bgcolor="#1a1a1a" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">

dample
Юзер

dample - 2 октября 2012 20:07 -

Вот как я понимаю код модуля для проверки ссылок

function CheckPartner($email,$site_url,$site_name,$site_descr){
global $partners_lang;
$err="";
if ((preg_match("/[^(\w)|(\@)|(\.)|(\-)]/",$email)) || (strlen($site_name)<8)) {$err.=$partners_lang['email_err']."<br>";}
if ((stripos($site_url,"http://")===false) ||(strlen($site_url)<12)||(strlen($site_url)>255)) {$err.=$partners_lang['url_err']."<br>";}
if ((strlen($site_name)>255) || (strlen($site_name)<5)) {$err.=$partners_lang['name_err']."<br>";}
if ((strlen($site_descr) > 255)||(strlen($site_descr) <5)) {$err.=$partners_lang['desc_err']."<br>";}
if($err!=""){return $err;}else{return false;}
}

function CheckPresent($my_url,$content){
    preg_match("/<body>(.*)<\/body>/is", $content, $out);
    $content = $out[0];
    $pattern = '/<a.*'.preg_quote($my_url,'/').'.*<\/a>/i';
    //echo '<textarea style="width:500px;" rows=5>'.$content.'</textarea>';
    if (!preg_match($pattern, $content)){
        return false;
    }else return true;
}

function Checknoind($my_url,$content){
    preg_match_all("#<noindex>(.*?)<\/noindex>#is", $content, $out);

    for ($i=0; $i< count($out[0]); $i++) {
        if(stripos($out[0][$i],$my_url)!==false){return false;}
    }
    return true;
}

function Checknofoll($my_url,$content){
    $pattern = '/<a.*'.preg_quote($my_url,'/').'.*<\/a>/i';
    preg_match($pattern, $content, $out);
    if(stripos($out[0],"nofollow")!==false){return false;}else{return true;}
}

function Checkrobots($remote_url){
    $robotsTxt = new Xbb_RobotsTxt($remote_url);
    if ( $robotsTxt->allow($remote_url, 'Yandex') ) {
        return true;
    } else {
        return false;
    }
}

function Checkcomm($my_url,$content){
    preg_match_all("#<!--(.*?)-->#is", $content, $out);

    for ($i=0; $i< count($out[0]); $i++) {
        if(stripos($out[0][$i],$my_url)!==false){return false;}
    }
    return true;
}

function CheckBackLink($my_url,$remote_url){
    global $partners_lang;
    $remote_url = parse_url($remote_url);
    $remote_url = "http://".$remote_url['host']."/";
    $err="";

    $content = file_get_contents($remote_url);
    if($content==""){return $partners_lang['open_site_err']." <b>".$remote_url."</b>";}
    if(!CheckPresent($my_url,$content)){return $partners_lang['backlink_err']." <b>".$remote_url."</b>";}
    if(!Checknoind($my_url,$content)){$err.=$partners_lang['back_noind_err']."<br>";}
    if(!Checknofoll($my_url,$content)){$err.=$partners_lang['back_nofoll_err']."<br>";}
    if(!Checkcomm($my_url,$content)){$err.=$partners_lang['back_comm_err']."<br>";}
    if(!Checkrobots($remote_url)){$err.=$partners_lang['back_rob_err']."<br>";}

    if($err==""){return false;}else{return $err;}
}

function CheckDubl($url){
    global $db, $partners_lang;
    $url = str_replace("http://www.","http://",$url);
    $url = parse_url($url);
    $sql_result = $db->query("SELECT site_url FROM ".PREFIX."_partners WHERE site_url LIKE '%".$url['host']."%'");
    $row = $db->get_row( $sql_result );
    $row['site_url'] = str_replace("http://www.","http://",$row['site_url']);
    $row = parse_url($row['site_url']);
    if(stripos($url['host'],$row['host'])===false){return false;}else{return $partners_lang['dubl_err'];}
}


файл inc/include/partners.func.php

Подскажите пожалуйста что в нем изменить чтобы проверял не только прямые ссылки, но и модифицированные. И без тегов <body>

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх