Mister_Black

Рейтинг
185
Регистрация
24.02.2009

Всем привет.
Столкнулся с проблемой в плагине по поиску битых ссылок на сайте
После обновления версии php до 5.4 стала появляться ошибка Fatal error: Call-time pass-by-reference has been removed
При попытке активировать плагин, ругается на строку chl_add_result(&$a,$links,$result);

Вот кусок кода из плагина
function chl_check($a)
  {
  $url='links=';
    foreach ($a as $href)
      {
      $url.=$href[1]."\n";//\r";
      }
  $url.='&key=267etye465yrg';
  $data=$url;
  $out = "POST /check/ HTTP/1.1\n";
  $out .= "Host: example.com\n";
  $out .= "Referer: https:// example.com /\n";
  $out .= "User-Agent: Opera\n";
  $out .= "Content-Type: application/x-www-form-urlencoded\n";
  $out .= "Content-Length: ".strlen($data)."\n\n";
  $out .= $data."\n\n";
  $ip = gethostbyname(' example.com ');
  $fp = fsockopen($ip, 80, $errno, $errstr, 10);
  fputs($fp, $out);
  $c=array();
  $bool=false;
    while($gets=fgets($fp,2048))
  {
    if (strpos($gets,'download.php')>0 || strpos($gets,'folders.php')>0)
      {
      $result='';
      $links='';
      $bool=true;
      $ex=explode('    ',$gets);
      if (sizeof($ex)<2){continue;}
        $result=trim($ex[1]);
        $links=trim($ex[0]);
       chl_add_result(&$a,$links,$result);
      }
     else
      {
      $gout.=$gets;
      }
   if (!$bool){echo $gout;}
  }
  foreach ($a as $b)
    {
     //$st00=fopen(dirname(__FILE__).'/data/00.txt',"a+");
     $st8=fopen(dirname(__FILE__).'/data/8.txt',"a+");
     $st9=fopen(dirname(__FILE__).'/data/9.txt',"a+");
     $st1=fopen(dirname(__FILE__).'/data/1.txt',"a+");
     $st2=fopen(dirname(__FILE__).'/data/2.txt',"a+");

     if (@$b[2]=='' || @empty($b[2]))
      {
      //@fwrite($st00,$b[0].' - '.$b[1].'['.$b[2].']'."\n\r");
      continue;
      }
     if ($b[2]=='8' || $b[2]==8)
      {
      fwrite($st8,$b[0].' - '.$b[1].'['.$b[2].']'."\n\r");
      continue;
      }
     if ($b[2]=='9' || $b[2]==9)
      {
      fwrite($st9,$b[0].' - '.$b[1].'['.$b[2].']'."\n\r");
      continue;
      }
    if ($b[2]=='0' || $b[2]==0)
      {
      continue;
      }
    if ($b[2]=='2' || $b[2]==2 || $b[2]==4 || $b[2]=='4' || $b[2]=='5' || $b[2]==5)
      {
       fwrite($st2,$b[0].' - '.$b[1].'['.$b[2].']'."\n\r");
       continue;
      }
    if ($b[2]=='1' || $b[2]==1 || $b[2]==3 || $b[2]=='3')
      {
       fwrite($st1,$b[0].' - '.$b[1].'['.$b[2].']'."\n\r");
       continue;
      }
    }
  chl_deletepost();
  chl_deletepost2();
  }

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

Получилось его заблокировать через nginx, добавил строку valid_referers и ответ 403 для не валидных, запросы правда так и идут от него, но ответ для плохого сайта теперь 403
location / {
                location ~ [^/]\.ph(p\d*|tml)$ {
                        try_files /does_not_exists @fallback;
                        limit_req zone=lreqz2 burst=10 nodelay;
                }
                location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf|ico)$ {
                        expires 30d;
                        valid_referers none blocked server_names ~(mydomain|yandex|google|yahoo|bing|facebook|subscribe|feedburner|mail|rambler|nigma|ask|qip);
             if ($invalid_referer) {return 403;}
                        try_files $uri $uri/ @fallback;
                }
                location / {
                        try_files /does_not_exists @fallback;
                        limit_req zone=lreqz2 burst=10 nodelay;
                }
                location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf|ico)$ {
                        expires 30d;
                        try_files $uri $uri/ @fallback;
                }
        }

webinfo #:

Да, там скрипт, который сразу же открывает другие сайты. Запросы к вашим ресурсам, скорее всего, формируются искусственно - чтобы привлечь внимание.

Да запросов очень много, сейчас лог скачал отсортировал по имени того домена, получилось 139243 запроса только за сегодня
NoMoreContent #:

Во-первых, есть смысл заглянуть на тот bad(.)site

badd.mom там какой то множественный редирект стоит на разные порно сайты, бонга, лайвжасмин и т.д, так что будьте осторожны)

webinfo #:

Скорее всего, до апача запрос не доходит. Если статика отдаётся через nginx, то и запрет надо писать в конфиге  nginx.

Да nginx стоит фронтендом

Не обрабатываются файлы с названиями только цифрами, типа 1.xml, 2.xml, 10.xml и тд, хотя в спецификации это нигде не указано, а например если назвать map1.xml или part1.xml, sitemap1.xml так обрабатывается.
Я сначала создал папку sitemap, чтобы не захламлять большим количеством файлов корневую директорию, а в неё добавлял уже файлы с названиями 1.xml-62.xml ни один из них не обрабатывался, кстати даже bing на такие файлы ругался, мол ошибка и всё тут.

Обманул систему, так как sitemap.xml уже был добавлен и обработан гуглом, я просто добавил в него список карт, сделав его индексным, таким образом гугл его принял, а с названиями sitemapindex, sitemap-index, sitemap_index, indexsitemap и т.д, ни в какую не хотел принимать ))
Сделал индексный файл sitemapindex.xml, Гугл его не принимает "Не удалось обработать файл Sitemap", добавил даже charset=utf8 в заголовок ответа, не помогло, видел что проблема массовая, кому то помогает смена имени файлов сайтмап, кто то делает в txt формате.
sitemap.xml.gz обновляется.
sitemap.xml НЕ обновляется!
Всего: 719