Сново проблема с кодировкой
Страницы: Пред. 1 2 3
Сново проблема с кодировкой
Чет не должны такие иероглифы быть при выводе симовлов utf-8 под заголовком cp1251.

Сам модуль rss явно с косяками.

По адресу http://atv.md/rss/rss.php Два перевода строки в начале выводится.
Цитата

Ошибка синтаксического анализа XML: объявление XML или текста не в начале сущности
Адрес: http://atv.md/rss/rss.php?wcCategory=2&wcHeadlines=5
Строка 3, символ 1:<?xml version="1.0" encoding="windows-1251"?>
Код
<item rdf:about="http://atv.md/">
<title>&amp;#177;&amp;#23336;&amp;#2939; &amp;#39205; &amp;#57121;&amp;#60476; &amp;#7921; &amp;#58447;&amp;#516;</title>

<link>http://atv.md/index.php?news=94</link>
<description>
1 &amp;#18794;&amp;#2160; &amp;#63653; &amp;#7980; &amp;#35886;&amp;#11045;&amp;#30757; &amp;#10533; &amp;#57121;&amp;#60476; &amp;#7921; &amp;#58447;&amp;#516;. &amp;#60173; &amp;#3173;&amp;#15268;&amp;#57336;&amp;#55849; &amp;#18797; &amp;#51577; &amp;#23397; &amp;#64552;&amp;#19692;&amp;#2912; &amp;#10282;&amp;#27181; &amp;#2994; &amp;#56494; &amp;#39022;&amp;#47463;, &amp;#55850;&amp;#60590;&amp;#3326;  &amp;#30769;&amp;#11198; &amp;#43938;&amp;#3117;&amp;#60530;  &amp;#52208;&amp;#59874;&amp;#2792; &amp;#31980; 20-&amp;#60003; &amp;#59557;. &amp;#43021;&amp;#23536;&amp;#2216;&amp;#10603;&amp;#52338;&amp;#10605;&amp;#55359; &amp;#60451;&amp;#2920;&amp;#30774; &amp;#36843;&amp;#101;&amp;#47167; &amp;#1070;&amp;#30779;, &amp;#43954;&amp;#60448; &amp;#63653;&amp;#18802; &amp;#64558;&amp;#18987;&amp;#2738;&amp;#35507;  &amp;#35557;&amp;#31085; &amp;#35138;&amp;#535; &amp;#1103;&amp;#516;, &amp;#2992;&amp;#14381;&amp;#35310;&amp;#10283; &amp;#3056;&amp;#23665; &amp;#43949;&amp;#18800;&amp;#23414;.


&amp;#36749; &amp;#3173;&amp;#15268;&amp;#57336;&amp;#55849; &amp;#18797;  &amp;#52206; &amp;#59635; 79 &amp;#31083;&amp;#59557; &amp;#43886;&amp;#6706;&amp;#23272; ...</description>
<dc:language>en-us</dc:language>
<dc:title>&amp;#177;&amp;#23336;&amp;#2939; &amp;#39205; &amp;#57121;&amp;#60476; &amp;#7921; &amp;#58447;&amp;#516;</dc:title>

<dc:source>http://atv.md/rss/article_view.php?articleId=94</dc:source>
<dc:rights>Copyright 2011, </dc:rights>
<dc:date>2011-12-01T00:00:00-06:00</dc:date>
<dc:type>text</dc:type>
</item>
smile:)
В выложенном коде htmlspecialchars не встречается. Надо не тут искать.
Цитата
fmex пишет:
В выложенном коде htmlspecialchars не встречается. Надо не тут искать.

smile:confused: Для начала, что такое htmlspecialchars - и где искать?
В файле встречается следующий код
include("../include/conf.php");
Код
  include("{$root}include/config.php");
  require_once("./sql/SqlConfiguration.class.php");
  require_once("./sql/SqlDatabase.class.php");
  require_once("./sql/ArticlesTableRow.class.php");
  require_once("./sql/ArticlesTable.class.php");
  require_once("./sql/CategoriesTableRow.class.php");
  require_once("./sql/CategoriesTable.class.php");

Возможно, нужно искать где-то там ...
Народный протест
http://atv.md/index.php?news=91
Выкладываю исходники этих файлов

ArticlesTable.class.php
Код
<?


  include("../include/conf.php");
  include("{$root}include/config.php");
  require_once("./sql/SqlConfiguration.class.php");
  require_once("./sql/SqlDatabase.class.php");
  require_once("./sql/ArticlesTableRow.class.php");
  require_once("./sql/ArticlesTable.class.php");
  require_once("./sql/CategoriesTableRow.class.php");
  require_once("./sql/CategoriesTable.class.php");

  $SUBMIT_FORM_VARS = array_merge($HTTP_POST_VARS,$HTTP_GET_VARS);      

  $wcCategory = 0;
  if (isset($SUBMIT_FORM_VARS["wcCategory"])){
    $wcCategory = $SUBMIT_FORM_VARS["wcCategory"];
  }

  $wcHeadlines = 2;
  if (isset($SUBMIT_FORM_VARS["wcHeadlines"])){
    $wcHeadlines = $SUBMIT_FORM_VARS["wcHeadlines"];
  }

  $wcBackground = "#ffffff";
  if (isset($SUBMIT_FORM_VARS["wcBackground"])){
    $wcBackground = $SUBMIT_FORM_VARS["wcBackground"];
  }

  $wcTableWidth = 200;
  if (isset($SUBMIT_FORM_VARS["wcTableWidth"])){
    $wcTableWidth = $SUBMIT_FORM_VARS["wcTableWidth"];
  }

  $atFont = "arial";
  if (isset($SUBMIT_FORM_VARS["atFont"])){
    $atFont = $SUBMIT_FORM_VARS["atFont"];
  }

  $atFontSize = 3;
  if (isset($SUBMIT_FORM_VARS["atFontSize"])){
    $atFontSize = $SUBMIT_FORM_VARS["atFontSize"];
  }

  $atFontColor = "#000099";
  if (isset($SUBMIT_FORM_VARS["atFontColor"])){
    $atFontColor = $SUBMIT_FORM_VARS["atFontColor"];
  }

  $atFontBold = "Yes";
  if (isset($SUBMIT_FORM_VARS["atFontBold"])){
    $atFontBold = $SUBMIT_FORM_VARS["atFontBold"];
  }

  $atFontItalic = "No";
  if (isset($SUBMIT_FORM_VARS["atFontItalic"])){
    $atFontItalic = $SUBMIT_FORM_VARS["atFontItalic"];
  }

  
  if (isset($SUBMIT_FORM_VARS["adShowDate"])){
    $adShowDate = $SUBMIT_FORM_VARS["adShowDate"];
  }
  else{
    $adShowDate = "Yes";
  }
  
  $adFont = "arial";
  if (isset($SUBMIT_FORM_VARS["adFont"])){
    $adFont = $SUBMIT_FORM_VARS["adFont"];
  }

  $adFontSize = 1;
  if (isset($SUBMIT_FORM_VARS["adFontSize"])){
    $adFontSize = $SUBMIT_FORM_VARS["adFontSize"];
  }

  $adFontColor = "#666666";
  if (isset($SUBMIT_FORM_VARS["adFontColor"])){
    $adFontColor = $SUBMIT_FORM_VARS["adFontColor"];
  }

  $adFontBold = "No";
  if (isset($SUBMIT_FORM_VARS["adFontBold"])){
    $adFontBold = $SUBMIT_FORM_VARS["adFontBold"];
  }

  $adFontItalic = "Yes";
  if (isset($SUBMIT_FORM_VARS["adFontItalic"])){
    $adFontItalic = $SUBMIT_FORM_VARS["adFontItalic"];
  }

  $adFontUnderline = "No";
  if (isset($SUBMIT_FORM_VARS["adFontUnderline"])){
    $adFontUnderline = $SUBMIT_FORM_VARS["adFontUnderline"];
  }

  $asShowSummary = "Yes";
  if (isset($SUBMIT_FORM_VARS["asShowSummary"])){
    $asShowSummary = $SUBMIT_FORM_VARS["asShowSummary"];
  }

  $asFont = "arial";
  if (isset($SUBMIT_FORM_VARS["asFont"])){
    $asFont = $SUBMIT_FORM_VARS["asFont"];
  }

  $asFontSize = 2;
  if (isset($SUBMIT_FORM_VARS["asFontSize"])){
    $asFontSize = $SUBMIT_FORM_VARS["asFontSize"];
  }

  $asFontColor = "#000000";
  if (isset($SUBMIT_FORM_VARS["asFontColor"])){
    $asFontColor = $SUBMIT_FORM_VARS["asFontColor"];
  }

  $asFontBold = "No";
  if (isset($SUBMIT_FORM_VARS["asFontBold"])){
    $asFontBold = $SUBMIT_FORM_VARS["asFontBold"];
  }

  $asFontItalic = "No";
  if (isset($SUBMIT_FORM_VARS["asFontItalic"])){
    $asFontItalic = $SUBMIT_FORM_VARS["asFontItalic"];
  }

  $asFontUnderline = "No";
  if (isset($SUBMIT_FORM_VARS["asFontUnderline"])){
    $asFontUnderline = $SUBMIT_FORM_VARS["asFontUnderline"];
  }

  $rows = $articlesTable->selectByCategoryId($wcHeadlines,$wcCategory);
  
  if (count($rows) > 0){
  
    $result = "<table bgcolor='" . $wcBackground . "' width='" . $wcTableWidth . "' border='0'>";
    
    for ($i=0; $i<count($rows); $i++){

      if ($showFriendlyURL=='friendly')
      {
       $SEfriendly = $rows[$i]->SEfriendly;
       if (empty($SEfriendly)) $SEfriendly = $rows[$i]->id;
       $friendlyURL = $categoriesTable->friendly_path($rows[$i]->category_id) . $SEfriendly . ".html";
      } else $friendlyURL = 'index.php?news=' . $rows[$i]->id;

      $result = $result . "<tr><td bgcolor='" . $wcBackground . "'>&nbsp<br>";
//      $result = $result . "<a href='" . $url . 'index.php?news=' . $rows[$i]->id . "' target='_blank'>";
      $result = $result . "<a href='" . $url . $friendlyURL . "' target='_blank'>";
      if ($atFontBold == "Yes"){
        $result = $result . "<b>";
      }
      if ($atFontItalic == "Yes"){
        $result = $result . "<i>";
      }
      $result = $result . "<font color='" . $atFontColor . "' face='" . $atFont . "' size='" . $atFontSize . "'>";
      $result = $result . $rows[$i]->title;
      $result = $result . "<br></font>";
      if ($atFontItalic == "Yes"){
        $result = $result . "</i>";
      }
      if ($atFontBold == "Yes"){
        $result = $result . "</b>";
      }
      
      $result = $result . "</a>"; 
      $result = $result . "</td></tr>";

      if ($adShowDate == "Yes"){
        $result = $result . "<tr><td bgcolor='" . $wcBackground . "'>";
        if ($adFontBold == "Yes"){
          $result = $result . "<b>";
        }
        if ($adFontItalic == "Yes"){
          $result = $result . "<i>";
        }
        if ($adFontUnderline == "Yes"){
          $result = $result . "<u>";
        }
        $result = $result . "<font color='" . $adFontColor . "' face='" . $adFont . "' size='" . $adFontSize . "'>";
        $result = $result . $articlesTable->toAmericanDate($rows[$i]->created);
        $result = $result . "<br></font>";
        if ($adFontUnderline == "Yes"){
          $result = $result . "</u>";
        }
        if ($atFontItalic == "Yes"){
          $result = $result . "</i>";
        }
        if ($atFontBold == "Yes"){
          $result = $result . "</b>";
        }
        $result = $result . "</td></tr>";
      }      

      if ($asShowSummary == "Yes"){
        $result = $result . "<tr><td bgcolor='" . $wcBackground . "'>";
        if ($asFontBold == "Yes"){
          $result = $result . "<b>";
        }
        if ($asFontItalic == "Yes"){
          $result = $result . "<i>";
        }
        if ($asFontUnderline == "Yes"){
          $result = $result . "<u>";
        }
        $result = $result . "<font color='" . $asFontColor . "' face='" . $asFont . "' size='" . $asFontSize . "'>";
        $result = $result . $rows[$i]->body;
        $result = $result . "<br></font>";
        if ($asFontUnderline == "Yes"){
          $result = $result . "</u>";
        }
        if ($asFontItalic == "Yes"){
          $result = $result . "</i>";
        }
        if ($asFontBold == "Yes"){
          $result = $result . "</b>";
        }
        $result = $result . "</td></tr>";
      }      
      
    }
    $result = $result . "</table>";
/*
    include_once("{$root}include/lang/{$default_language}.php");
    if (!empty($lng_charset))
        header('Content-Type: text/html; charset='.$lng_charset);
*/

    $result = rawurlencode($result);

    if (isset($SUBMIT_FORM_VARS["preview"]))
    {
       echo "<script language='JavaScript'>";
       echo " document.writeln(unescape('" . $result . "'));";
       echo "</script>";

    }  else
       echo " document.writeln(unescape('" . $result . "'));";

  }    
  
?>



Далее, ArticlesTableRow.class.php


Цитата
<?php


class ArticlesTableRow{

var $id = 0;
var $category_id = 0;
var $author = "";
var $title = "";
var $image = "";
var $created = "0000-00-00 00:00:00";
var $body = "";
var $last_read = "0000-00-00 00:00:00";
var $times_read = 0;
var $type = 0;
var $link = "";

function ArticlesTableRow(){
}

function apply($row){
$this->id = $row["id"];
$this->category_id = $row["category_id"];
$this->author = $row["author"];
$this->title = $this->utf8_to_unicode($row["title"]);
$this->image = $row["image"];
$this->created = $row["created"];
$this->body = $this->utf8_to_unicode($row["body"]);
$this->last_read = $row["last_read"];
$this->times_read = $row["times_read"];
$this->type = $row["type"];
$this->link = $row["link"];
$this->SEfriendly = $row["SEfriendly"];
}

function applyFromRequest($request){
if (isset($request["id"])){
$this->id = $request["id"];
}
$this->category_id = $request["category_id"];
$this->author = $request["author"];
$this->title = $this->utf8_to_unicode($request["title"]);
$this->image = $request["image"];
$this->created = $request["created"];
$this->body = $this->utf8_to_unicode($request["body"]);
$this->last_read = $request["last_read"];
$this->times_read = $request["times_read"];
$this->type = $request["type"];
$this->link = $request["link"];
}

function toString(){
$result = "\nClass: " . "ArticlesTableRow" . " <br>\n";
$result .= "id=" . $this->id . " <br>\n";
$result .= "category_id=" . $this->category_id . " <br>\n";
$result .= "author=" . $this->author . " <br>\n";
$result .= "title=" . $this->title . " <br>\n";
$result .= "image=" . $this->image . " <br>\n";
$result .= "created=" . $this->created . " <br>\n";
$result .= "body=" . $this->body . " <br>\n";
$result .= "last_read=" . $this->last_read . " <br>\n";
$result .= "times_read=" . $this->times_read . " <br>\n";
$result .= "type=" . $this->type . " <br>\n";
$result .= "link=" . $this->link . " <br>\n";
return $result;
}

function utf8_to_unicode( $str )
{
$values = array();
$lookingFor = 1;

for ($i = 0; $i < strlen( $str ); $i++ ) {
$thisValue = ord( $str[ $i ] );
if ( $thisValue < 128 ) $unicode.= $str[ $i ];
else {
if ( count( $values ) == 0 ) $lookingFor = ( $thisValue < 224 ) ? 2 : 3;
$values[] = $thisValue;
if ( count( $values ) == $lookingFor ) {
$number = ( $lookingFor == 3 ) ?
( ( $values[0] % 16 ) * 4096 ) + ( ( $values[1] % 64 ) * 64 ) + ( $values[2] % 64 ):
( ( $values[0] % 32 ) * 64 ) + ( $values[1] % 64 );
$unicode.= "&#".$number.";";
$values = array();
$lookingFor = 1;
}
}
}
return $unicode;
}

}
$articlesTableRowLoaded = true;

?>


Если есть смысл, то и остальных 4 выложу ...
Не, это как машину через выхлопную трубу ремонтировать. Найдите программиста и дайте ему доступ.
Цитата
fmex пишет:
Не, это как машину через выхлопную трубу ремонтировать. Найдите программиста и дайте ему доступ.

А вы сами то веб программист? За определенную плату поможете?
Извините, я пас. Ненавижу в чужом коде копаться.
Кто-то сможет помочь за умеренную плату? smile:help:
Выложи /include/conf.php и config.php - возможно проблема в настройках.
Изменено: ramzesesnews - 3 Декабря 2011 01:20
/include/conf.php

Код
<?php
$url ="atv.md/";
 $root = "****/public_html/atv.md/";
 $sqlHost         = "***";
 $sqlUsername     = "***";
 $sqlPassword     = "***";
 $sqlDatabaseName = "***";
 $showFriendlyURL = "no";
?>


/include/config.php
Код
<?php 
$title='{ATV}';
$default_language='english';
$admin_email='admin@atv.md';
$headlines_number='0';
$headlines_rotation_time='2.5';
$headlines_title='Headlines';
$headlines_image_width='120';
$headlines_image_height='90';
$headlines_word_number='60';
$latest_news_number='5';
$latest_news_title='';
$latest_news_image_width='200';
$latest_news_word_number='40';
$show_mail_list='Yes';
$css='style.css';
$show_comments='Yes';
$show_poll='Yes';
$show_date='Yes';
$show_author='Yes';
$show_author_info='Yes';
$show_related_articles='Yes';
$show_feeds='Yes';
$categories_home_page=array();
$number_of_articles_per_category='32';
$flood_protection='3';
$top_reading_since='times';
$show_calendar='Yes';
$first_day_off_week='sunday';
$allowed_extension=array();
$comment_captcha='Yes';
$close_site='No';
$closing_reason='';
$category_private_status='Yes';
$show_subcategories_in_navigation='2';
$frontend_membership='No';
?>

Изменено: alexandre malinovskii - 3 Декабря 2011 13:02
Может кто поможет с нуля написать?
Чтобы просто другие могли, благодаря специальному коду, вставлять на свой сайт последние наши новости ...
Исходник, возможно нужного файла
rss/RssItem.class.php

Код
<?php

   

require_once("Configuration.class.php");

class RssItem{
  
  var $articleId = 0;
  var $scriptsUrl = "";
  var $title = "";
  var $description = "";
  var $image = "";
  var $copyRight = "";

  function RssItem($articleId){
    $this->articleId = $articleId;
    $conf = new Configuration();
    $this->mainUrl = $conf->mainUrl;
    $this->scriptsUrl = $conf->scriptsUrl;
    $this->copyRight = $conf->copyRight;
    $this->showFriendlyURL = $conf->showFriendlyURL;
  }

  function toXml(){
    $result = "";
    $result .= "<item rdf:about=\"" .$this->xmlEncode($this->mainUrl . $this->friendlyURL)."\">\n";
    $result .= "<title>" . $this->xmlEncode($this->title) . "</title>\n";
    if ($this->showFriendlyURL=='friendly')
    {
      $result .= "<link>" . $this->xmlEncode($this->mainUrl . $this->friendlyURL) . "</link>\n";
    } else
      $result .= "<link>" . $this->xmlEncode($this->mainUrl . "index.php?news=" . $this->articleId) . "</link>\n";
    $result .= "<description>" . $this->xmlEncode($this->description) . "</description>\n";
    if (empty($this->image)) $image = '';
    else {
        $image = $this->mainUrl . "files/" . $this->image;
//       $result .= "<image rdf:about=\"".$this->xmlEncode( $image )."\"></image>\n";
    }

    $result .= "<dc:language>en-us</dc:language>\n";
    $result .= "<dc:title>" . $this->xmlEncode($this->title) . "</dc:title>\n";
    $result .= "<dc:source>" . $this->xmlEncode($this->scriptsUrl . "article_view.php?articleId=" . $this->articleId) . "</dc:source>\n";
    $result .= "<dc:rights>" . $this->xmlEncode($this->copyRight) . "</dc:rights>\n";

    $today = getdate(strtotime($this->created));
    $itemYear = $today['year']; 
    $itemMonth = $today['mon']; 
    if (strlen($itemMonth) < 2){
      $itemMonth = "0" . $itemMonth;
    }
    $itemDay = $today['mday']; 
    if (strlen($itemDay) < 2){
      $itemDay = "0" . $itemDay;
    }
    $itemHours = $today['hours']; 
    if (strlen($itemHours) < 2){
      $itemHours = "0" . $itemHours;
    }
    $itemMinutes = $today['minutes']; 
    if (strlen($itemMinutes) < 2){
      $itemMinutes = "0" . $itemMinutes;
    }
    $itemSeconds = $today['seconds']; 
    if (strlen($itemSeconds) < 2){
      $itemSeconds = "0" . $itemSeconds;
    }
    $itemGMT = substr(date("O"),0,3).":00";

    $itemDate = $itemYear . "-" . $itemMonth . "-" . $itemDay . 
                "T" .
                $itemHours . ":" . $itemMinutes . ":" . $itemSeconds . $itemGMT;

    $result .= "<dc:date>" . $this->xmlEncode($itemDate) . "</dc:date>\n";
    $result .= "<dc:type>text</dc:type>\n";
     
    $result .= "</item>\n";
    return $result;
  }


  function xmlEncode($elementValue){
    return htmlspecialchars($elementValue);
  }

  function short_descipt($body)
  {
  $word_number=50;
  $text = str_replace('<br />', ' ', $body);
  $text = strip_tags($text,'<a><b><i><u>');
  $Ispis = explode (' ', $text);

  for ($i = 0; $i < $word_number; $i++) {
       $Isecak .= $Ispis[$i]. " "; }

  return $Isecak."...";
  }
}



?>
/rss/rss_template.xml

Код
<?xml version="1.0" encoding="windows-1251"?>

  <rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns="http://purl.org/rss/1.0/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/"
    xmlns:admin="http://webns.net/mvcb/"
    xmlns:syn="http://purl.org/rss/1.0/modules/syndication/"
  >

  <channel rdf:about="$(scriptsUrl)rss.php">
    <title>$(categoryName)</title>
    <link>$(scriptsUrl)rss.php</link>
    <description></description>
    <dc:language>en-us</dc:language>
    <dc:rights>$(copyRight)</dc:rights>
    <dc:publisher>$(publisherEmail)</dc:publisher>
    <dc:creator>$(creatorEmail)</dc:creator>
    <dc:title>$(categoryName)</dc:title>
    <dc:source>$(scriptsUrl)rss.php</dc:source>
    <dc:type>Collection</dc:type>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>4</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        $(item0Url)
        $(item1Url)
        $(item2Url)
        $(item3Url)
        $(item4Url)
        $(item5Url)
        $(item6Url)
        $(item7Url)
        $(item8Url)
        $(item9Url)
        $(item10Url)
        $(item11Url)
        $(item12Url)
        $(item13Url)
        $(item14Url)
        $(item15Url)        
      </rdf:Seq>
    </items>
  </channel>
  $(item0)
  $(item1)
  $(item2)
  $(item3)
  $(item4)
  $(item5)
  $(item6)
  $(item7)
  $(item8)
  $(item9)
  $(item10)
  $(item11)
  $(item12)
  $(item13)
  $(item14)
  $(item15)
</rdf:RDF>
Страницы: Пред. 1 2 3
Похожие темы:
Читают тему (гостей: 1, пользователей: 0, из них скрытых: 0)
Новые темыОбъявленияСвободное общение
14:31 Rotapost прикрыли! Чем пользоваться? 
00:23 Раскрутка форума 
00:19 Продвижение по ключам 
17:40 LOSPOLLOS.COM - Конвертим по рецепту Хайзенберга. Dating, Mainstream, Binary Options 
14:07 2Index - быстрая индексация страниц сайта и обратных ссылок 
12:02 Webvork - международная товарная СРА сеть с сертифицированными офферами на Европу. 
22:23 Подскажите нормальный сервис накрутки ПФ 
16:04 CryptoGraph — Анонимный обмен криптовалют без KYC и AML 
05:30 CoinCapital  
04:22 Просто $0.04/IP 9PROXY.COM Резидентные прокси Неограниченная пропускная способность Уникальная политика замены Без чёрного списка 
20:30 BestX24 - быстрый и безопасный обменник криптовалют и электронных денежных средств 
19:53 №1 Рассылка / Инвайтинг [TELEGRAM] | Приватный метод 
19:52 Trustpilot Reviews | Подниму рейтинг вашей компании 
19:52 Продвижение YouTube видео в топ поиска | Любой тип контента | Гарантия результата 
16:49 monetizer.agency – рекламная сеть для взрослого и развлекательного трафика. 100$ новому вебмастеру 
20:43 Добро пожаловать в цифровой мир... 
15:59 Про мясо 
23:09 ПП от PMS remote.team - 200$ за команду 
13:28 Компьютерная мышь 
22:55 Ну что, кто куда деваете свои сайты? 
22:34 Используете беспроводные наушники?