Systém komentářů pomocí jQuery a Ajax.

 2012-10-27 00:00:00
 Dmitry Burobin

Dnes vytvoříme systém komentářů s automatickou kontrolou vstupních dat pomocí technologie Ajax a přidáváním nového komentáře s použitím jQuery bez znovunačtení stránky.

Série článků:
1) Systém komentářů pomocí jQuery a Ajax.
2) Lajkování neboli karma u komentářů.
3) Strankování.

Vytvoření tabulky a připojení k databázi.

Vytvoříme si tabulku comments, do které budeme ukládat: identifikátor komentáře ( id ), identifikátor rodičovského komentáře ( parent_id ), jméno ( name ), text komentáře ( text ) a datum přidání komentáře ( date ).

CREATE TABLE `comments` (
`id` INT ( 5 ) NOT NULL AUTO_INCREMENT,
`parent_id` INT ( 5 ) NOT NULL,
`name` VARCHAR ( 255 ) NOT NULL,
`komentar` TEXT,
`date` DATETIME,
PRIMARY KEY(`id`)
)ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci

Taktéž si vytvořte soubor db.php, pro připojení k databázi.
<?php
$DBSERVER 'localhost'//server, který bude použít pro navázáníspojení s DB 
$DBUSER 'root'//Váš mysql login, nejspíš je stejný jako u mě pro localhost, tudiž root 
$DBPASS '****'//heslo, které jste zadaval při instalaci MySQL 

$DB 'test'//databáze, s kterou budeme pracovat 

//navazení spojení pomoci mysql_connect  
$link mysql_connect($DBSERVER$DBUSER$DBPASS)  or die("Could not connect: " mysql_error()); 
//vybírame databázi 
mysql_select_db($DB$link) or die ('Can\'t use test : ' mysql_error()); 
//řekněme MySQL, že všechná data jsou ve formatu UTF-8 
mysql_query("SET NAMES UTF8");
?>

index.php

Hlavní stránka bude obsahovat formulář pro přidávání komentářů s polem pro jméno, zprávu a skryté pole, do kterého budeme ukálát identifikátor rodičovského komentáře, pokud někdo bude odpovídat na nějaký komenář. Soubor index.php vypadá takto:

<?php
/*Soubor pro vybírání komentářů z databáze*/
require_once 'comment.php';
?>
<!DOCTYPE html>
<
html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">

<
head>
    <
title>Systém komentářů.</title>
    <
meta charset="utf-8" >
    
    <
link rel="stylesheet" href="style.css"> <!-- soubor se styly -->
    <
script src="jquery-1.7.1.min.js"></script> <!-- připojení jquery -->
    <script src="comment.js"></script> <!-- funkce potřebné pro přidávání komentářů -->
    
</head>
<body>
<ul id="commentWrapper">
<?php
/*Zde v proměnné $comments jsou komentáře*/
echo $comments;
?>
<!-- formulář pro přidávání komentářů -->
</
ul>    
    <
div id="commentBox">
        <
input class="validate" type="text" name="name" >
        <
input id="parent" type="hidden" name="parent_id" value="">
        <
div class="commentText">
            <
textarea name="text"></textarea>
        </
div>
        <
button>Přidat</button><img class="loader" src="loader.gif">
    </
div>
</
body>
</
html>

Styly a knihovna jQuery

Pro správné fungování potřebujeme připojit knihovnu jQuery. Tu buď stáhnete z oficiálního webu nebo z archivu s tímto článkem. Pak, aby komentáře líp vypadali přidáme styly, nic složitého v nich není, proto je nebudu popisovat:

body
{
    
margin:0;
    
padding:0;
}
ulli
{
    list-
style-type:none;
}
.
loader
{
    
display:none;
}
#commentBox
{
    
width:400px;
    
padding:10px;
}
#commentBox input
{
    
width:250px;
    
height:25px;
    
padding0 5px;
    
margin:5px;
    
bordersolid 1px #ccc;
    
background:#f1f1f1 url(bg_input.png) no-repeat;
    
font400 12pt/14pt Ume Gothic O5;
}
#commentBox textarea
{
    
width:250px;
    
height:100px;
    
margin5px;
    
padding5px;
    
bordersolid 1px #ccc;
    
background:#f1f1f1 url(bg_koment.png) no-repeat;
    
font400 12pt/14pt Ume Gothic O5;
}
#commentBox button
{
    
height:30px;
    
width:85px;
    
margin-left183px;
    
margin-top:0px;
    
font:700 12pt/14pt Ume Gothic O5;
}
#commentWrap
{
    
width:350px;
    
padding:10px;
    
padding-bottom:3px;
    
margin:10px;
    
border1px solid #ccc;
    
border-radius:10px;
    
background:#f7f7f7;
}
#commentWrap .komentar
{
    
padding:5px;
    
padding-left:0px;
    
border-top:1px solid #ccc;
    
margin-bottom:10px;
    
font:400 12pt/14pt Times New Roman;
}
#commentWrap .replay
{
    
margin-left:270px;
    
font:700 10pt/12pt Ume Gothic O5;
}
#commentWrap a
{
    
text-decoration:none;
}
#commentWrap .commentName
{
    
font:700 10pt/12pt Ume Gothic O5;
}
#commentWrap .commentDate
{
    
font:400 11pt/13pt Times New Roman;
}
.
repName
{
    
font:400 12pt/14pt Times New Roman;
    
font-style:italic;
}
.
repText
{
    
font:700 10pt/12pt Ume Gothic O5;
}
.
repDate
{
    
font:400 9pt/11pt Times New Roman;
    
font-style:italic;
}

comment.php

Tento soubor je určen pro vybírání dat z databáze a vkládání těchto dat do šablony.

<?php
// Vložíme soubor s připojením k databázi. ( musí se nacházet ve stejné složce ) 
require_once 'db.php';

// Vybereme komentáře z databáze
$query mysql_query("
         SELECT `id`,`parent_id`,`name`,`komentar`, 
         DATE_FORMAT(date, '%d %M %Y %H:%i') as date_add
         FROM `comments` ORDER BY `id` ASC 
         "
);
         
// Pokud při vykonání příkazu nastané chyba vypišeme ji
if(!$query) { echo mysql_error() . " - " mysql_errno(); }
else {

// Jinak pomocí cyklusu projdeme všechny záznamy v tabulce
        
while($result mysql_fetch_assoc($query))
        {
            
// a uložíme je do pole $data  
            
$data[$result['id']] = $result;
        }

// Funkce pro vkládání dat ( komentářů ) do šablony
function commentsToTemplate($comment)
{
// $comment - pole komentáře - id, parent_id, name, text, date 
    
// Zapneme bufferování výstupu, aby šablona nebyla zobrazená v místě volání funkce
    
ob_start();  
      
// Připojíme šablonu comment_template.php, do které vložíme data z pole $comment
    
require_once 'comment_template.php';                     
  
// Získáváme obsah bufferu jako řetězec   
    
$comments_string =  ob_get_contents(); 

// Vymažeme všechno z bufferu
    
ob_end_clean();

// Vrácíme komentář jako řetězec   
    
return $comments_string;    
}

// Funkce pro zpracování pole $data, které
// bude rozděleno do jednotlivých komentářů a odesláno funkci 
// commentsToTemplate
function commentsString($data)
{
    foreach(
$data as $w
    {
        
$string .= commentsToTemplate($w);
    }
 
return 
$string
}  

// proměnná $comments obsahuje naše komentáře, které zobrazujeme na hlavní stránce
$comments commentsString($data);

// vynulujeme proměnnou $data 
$data null;
}
?>

comment_template.php

Toto je vlastně šablona jednotlivého komentáře.

<?php
// Do této šablony se načítají data z pole $data, která jsou odesláná funkci commentsToTemplate
echo '<li id="comment'.$comment['id'].'">
    <div id="commentWrap">'
;
        
// Pokud existuje parent_id, pak zobrazíme, že se jedna o odpověď
        
if($comment['parent_id']!=0)
        {
// Vybereme z DB jméno a datum rodičovského komentáře
            
$q mysql_query("SELECT `name`, DATE_FORMAT(date, '%d %M %Y %H:%i') as date_add FROM `comments_my` WHERE `id`='".$comment['parent_id']."'");
            
$r mysql_fetch_assoc($q);
            echo 
'<span class="repText">Odpověď na komentář</span> <span class="repName">
            '
.$r['name'].'
            </span> <span class="repText">from</span> <span class="repDate">
            '
.$r['date_add'].'
            </span><br>'
;
        }
        
// Zobrazíme jméno a datum přidání
echo    '<span class="commentName">'.$comment['name'].'</span> - <span class="commentDate">'.$comment['date_add'].'</span>
        <div class="komentar">
<!--Zobrazíme text komentáře-->
            '
.$comment['komentar'].'
        </div>
<!--Pokud zmačkneme na tento odkaz, pak se do skrýteho pole s názvem parent_id přidá
identifikátor tohoto komentáře. 
Použil jsem zde JS událost onClick, tzn. pokud je tlačítko zmačknuté, pak najdi prvek s 
id parent ( což je skrýte pole parent_id ) a do hodnoty přidej id komentáře, na který chcete odpovědět-->
        <a class="replay" href="javascript:;"
        onClick="document.getElementById(\'parent\').value='
.$comment['id'].';">Odpovědět</a>
    </div>
</li>'
;
?>

comment.js

Tento soubor je určen pro odesílaní dat na server a přidávání do databáze

$(document).ready(function(){
    
// Objekt commentBox bude obsahovat data pro odesílání na server
    
var commentBox = {};
    
// Po kliknutí na tlačítko přidat      
     
$('#commentBox button').live('click',function(){
         
// Do objektu commentBox bude přidána hodnota skrýteho pole input s názvem parent_id,
// které obsahuje id rodičovského komentáře a pokud je prázdné tak bude 0, což znamená, že
// se jedná o nový komentář bez reakci na něj ( toto se bude ověřovat až odešleme data na server ).   
        
commentBox.parent_id = $('#commentBox').find("input[name='parent_id']").val();
        
// Taktéž přidáme do objektu commentBox hodnotu pole name a zprávu
        
commentBox.name = $('#commentBox').find("input[name='name']").val();        
        
commentBox.text = $('#commentBox').find("textarea").val();
// Abyste to lépe pochopili syntaxe toho, jak přidáváme hodnoty do objektu je:
// Objekt.název_proměnné = hledáme input nebo textarea.hodnota pole

// Funkce pro odesílání dat na server        
        
sendData();
     });
    

function 
sendData()
{
// Najdeme tlačítko schováme jej a zobrazíme loader ( ten si můžete stáhnout z archivu )
    
$('#commentBox').find('button').hide().next().show();

// Odešleme    data metodou post na server
    
$.post(
// Soubor, ve kterém se provádí ověřování dat a přidávání komentářů     
        
"addkoment.php",
// Objekt s proměnnými (parent_id, name a text)
        
commentBox,
        function(
data){
// Pokud jsou nějaka data, to znamená, že nastala chyba
            
if(data)
            {
// Převedeme tento řetězec JSON do objektu JS
                
data = $.parseJSON(data);
                
// Vytvoříme proměnnou errors, která bude obsahovat název chyby
                
var errors '';

// Použijeme cyklus pro zobrazení všech chyb najednou.
// Použil jsem tuto konstrukci, protože nejprvé jsem zobrazoval všechny chyby, ale
// nakonec jsem to změnil a teď se bude zobrazovat jenom jedna konkretní chyba     
// Kdybyste chtěli zobrazit všechny chyby tak použijte konstrukci
// errors += val+'\n'; - každá chyba se zobrazí na samostatném řádku.
// i - obsahuje název chybného pole a val - popis chyby
            
                
$.each(data, function(ival)
                {
                    
errors += i;
                });

// Uložil jsem do proměnné errors jenom název chybného pole a
// cyklusem switch procházim všechny varianty a přidávam červený rámeček 
// pokud pole je prázdné nebo jestli komentář nebyl přidan tak zobrazim hlášení                    
                   
switch (errors
                   {
                      case 
'name':
                        $(
'#commentBox').find("input[name='name']").css('border','2px solid red');
                        break
                      case 
'text':
                        $(
'#commentBox').find("textarea").css('border','2px solid red');
                        break
                      case 
'not_add':
                        
alert('Komentář nebyl přidan.')
                        break
                      default:
                        
alert('Něco je špatně')
                  }

// Najdeme loader ( ten si můžete stáhnout z archivu ) schováme jej a zobrazíme tlačítko přidat     
                
$('#commentBox').find('button').show().next().hide();

// Jinak, pokud žadná chyba nenastala, tak voláme funkci addComment, která zobrazí
// komentář bez znovunačtení stránky a vynuluje hodnoty vstupních poli
            
} else {
                
addComment();        
            }
        }
    
    )

}


function 
addComment()
{
// Na konec prvků s id commentWrapper ( což je ul ) přidame tag <li></li>,
// ve kterém se bude nacházet nový komentář
    
$("#commentWrapper").append('<li></li>');

// Najdeme poslední tag <li>, který jsme teď vytvořili a
// načteme do něj poslední komentář
    
$("#commentWrapper li:last").load('new_comment.php');
// Najdeme loader ( ten si můžete stáhnout z archivu ) schováme jej a zobrazíme tlačítko přidat     
    
$('#commentBox').find('button').show().next().hide();

// Vynulujeme hodnoty vstupních poli
    
$('#commentBox input').val('');
    $(
'#commentBox textarea').val('');

}


});

addkoment.php

Tento skript zpracovává data poslána na server pro zpracování.

<?php
// Ověříme, zda se jedna o odeslána POST data nebo si člověk jen tak otevřel tuto stránku
if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {

// Pokud ano, pomocí funkci sleep přidame efekt zpoždění, abyste 
// viděl loader, jinak, protože pracujeme na lokálním serveru
// se ten loader hned schová  
     
sleep(2);

// Ověříme vstupní data     
// Pokud je pole name nebo textové pole prázdné do pole $error uložíme text chyby
// ukončíme skript a odešleme tuto chybu v JSON formátu  
     
if(!isset($_POST['name']) OR empty($_POST['name']))
     {
        
$error['name'] = "Zadejte jméno.";
        exit(
json_encode($error));
     } else {
        
$name htmlspecialchars(stripslashes(trim($_POST['name'])));
     }
     
     if(!isset(
$_POST['text']) OR empty($_POST['text']))
     {
        
$error['text'] = "Zadejte zprávu.";
        exit(
json_encode($error));
     } else {
        
$text stripslashes(htmlspecialchars(trim($_POST['text'])));
     }
     
// V tomto případě, když parent_id je prázdné pole tak mu přiřadime hodnotu 0
// to znamená, že se jedná o nový komentář, který není odpovědí na něčí jiný  
     
if(!isset($_POST['parent_id']) OR empty($_POST['parent_id']))
     {
        
$parent_id 0;
     } else {
        
$parent_id stripslashes(htmlspecialchars(trim($_POST['parent_id'])));
     }
     
// Vložíme soubor s připojením k databázi. ( musí se nacházet ve stejné složce )  
     
require_once 'db.php';
     
// Přidame komentář do databáze a vrátíme false, tzn.
// že chyba nenastala a komentář byl přidán.
     
$q mysql_query("
     INSERT INTO `comments`(`parent_id`,`name`,`komentar`,`date`)
     VALUES('"
.$parent_id."','".$name."','".$text."', NOW())
     "
);
     if(!
$q) { $error['not_add'] = "Komentář nebyl přidan."; exit(json_encode($error));}
     else { exit(
false); }

}
?>

new_comment.php

V tomto souboru vybírame poslední komentář, abysme ho následně zobrazili po úspěšnem ověření vstupních dat.

<?php
// Vložíme soubor s připojením k databázi. ( musí se nacházet ve stejné složce ) 
require_once 'db.php';
// Vybereme maximální ( poslední přidáný ) id
$max mysql_query("SELECT MAX(`id`) FROM `comments_my`");
// Pak vybereme všechny související údaje s tímto identifikátorem
$query mysql_query("
         SELECT `parent_id`,`name`,`komentar`, 
         DATE_FORMAT(date, '%d %M %Y %H:%i') as date_add
         FROM `comments_my` WHERE `id` = '"
.mysql_result($max,0)."'
         "
);
$comment mysql_fetch_assoc($query);

// A stejně, jak jsme zobrazovali komentáře před tím, zobrazíme poslední přidáný
echo '<li id="comment'.mysql_result($max,0).'">
    <div id="commentWrap">'
;
        
        if(
$comment['parent_id']!=0)
        {
            
$q mysql_query("SELECT `name`, DATE_FORMAT(date, '%d %M %Y %H:%i') as date_add FROM `comments_my` WHERE `id`='".$comment['parent_id']."'");
            
$r mysql_fetch_assoc($q);
            echo 
'<span class="repText">Odpověď na komentář</span> <span class="repName">
            '
.$r['name'].'
            </span> <span class="repText">from</span> <span class="repDate">
            '
.$r['date_add'].'
            </span><br>'
;
        }
        
echo    
'<span class="commentName">'.$comment['name'].'</span> - <span class="commentDate">'.$comment['date_add'].'</span>
        <div class="komentar">
            '
.$comment['komentar'].'
        </div>
        <a class="replay" href="javascript:;"
        onClick="document.getElementById(\'parent\').value='
.mysql_result($max,0).';">Odpovědět</a>
    </div>
</li>'
;
?>

Závěr

Probrali jsme, jak můžeme zpracovávát formuláře bez znovunačtení stránky. Doufám, že se Vám tento článek líbil a byl pro Vás přínosný.

Systém Orphus
Napište komentář.
Celkem komenrářů(9130)
Philipfum - 2017-03-15  00:04:20
 Unprejudiced keep safe [url=https://www.youtube.com/watch?v=zKP9TOntsi4]This video[/url] to circumvent these scam stores that are affianced in have faith new year card fraud.
alte
ative2
Leoneltep - 2017-03-14  22:52:55
 Работа с ней зачастую вызывает проблемы у новичков этого дела, да и матёрым землекопам неплохо было бы ускорить процесс поиска древностей.

http://tdpromavtomatica.ru/11-2016-506.php

http://artpromusic.ru/prezentatsii-fon-k-9-maya.php

http://truckinginstant.ru/12-2016-30.php
Astophyhep - 2017-03-14  22:46:12
 Логан 2017 смотреть онлайн полный фильм в HD качестве

[url=http://logan-hd.ru][img]https://d1kaix3jgdc2x2.cloudfront.net/uploads/2015/11/28/9dc5a98a9b075871e7fc60273dbe0491-512-320.gif[/img][/url]

Смотри тут [url=http://logan-hd.ru][b]Логан 2017 смотреть онлайн полный фильм в HD качестве.[/b][/url]
Фильм Любовь на прокат Демоны Деборы Логан 2014 скачать торрент бесплатно Фильм Ярость смотреть онлайн бесплатно в хорошем качестве Farming Simulator 17 моды, скачать бесплатно Смотреть лучшие мультики бесплатно На этом сайте вы можете сделать абсолютно бесплатно.Они были убийцами - пытается успокоить его Лора Это ничего не меняет - хрипит в ответ изможденный Логан И в заключение предупреждение смотреть Логана поклонникам классических Людей Икс и Росомахи не рекомендуется увиденное может сильно потревожить их нежные души.Рекомендую [b]логан фильм смотреть онлайн на русском [/b]Альцгеймером Чарльзе Ксавье Патрик Стюарт, чья память с каждым днем становится всё хуже Сам Логан уже давно не тот неуязвимый воин его способность к регенерации стремительно угасает, а старые раны отзываются невыносимой болью.

Но враг явно недооценивает стареющего супергероя, который, по его мнению, теперь для него не соперник Наоборот, именно сейчас Росомахе уже нечего терять и некуда отступать, а потому он будет биться до конца.Хью Джекман показал нам самую настоящую и потому наиболее ценную версию Логана, Патрик Стюарт сентиментального старика, которому только и остается, что вспоминать былое, а Дафни Кин маленькая росомаха, комок ярости, отчаянно выгрызающий свое право на жизнь.В общем, готовому на покой старику Логану придется столкнуться со своим древним врагом Но с тех пор как острые лезвия прорезали его кожу, прошло много времени Сможет ли противостоять своему страху и защитить близких.Советую [b]фильм логан смотреть онлайн полную версию [/b]Наконец-то Логану дали раскрыться именно в своем амплуа, показать именно мрачного, диковатого хоть и вынужденного вписываться в реалии городской жизни мутанта Это первая лента рейтинга 18 этого жанра, равно как и первый настолько мрачный фильм.Икс и юной мутантше Икс-23 Но даже Росомаха когда-то должен постареть, и сейчас он уже совершенно не тот, каким был в молодости Когда-то и длинная жизнь Логана должна достичь конца Но перед тем, как умереть, он отдаст все силы, чтобы убить тех, кто хочет навредить его близким.Это добавляет странную атмосферу Словно показали не динамичную сказку, а жестокие реалии Актёры справились замечательно со своими ролями Не было ощущения фальши Лишь глубина происходящего, что пробирала до глубины души.Безусловно, главную роль в фильме будет играть эмоциональный и все еще соблазнительный Хью Джекман Кроме того, ему составит компанию Патрик Стюард, чья роль в данном фильме станет завершающей, это будет последнее появление профессора в историях о сверхъестественных людях и мутантах.

Что здесь идеально, так это актерская игра главных героев Видно, что показывают максимальный потенциал своих сил, так как для двух актеров, этот путь занял в реальной жизни почти 17 лет это огромная для меня цифра, я даже представить не могу, что прошло столько времени.Любители кино, радостная новость, теперь вы можете смотреть видео как на телефонах и планшетах, так и на смарт тв Наш плеер полностью адаптирован и поддерживает устройства Логан На андроид скачать сериал полный фильм фясш.За это время изменился не только сам Логан, но и его наставник профессор Ксавьер Не так давно у него обнаружили болезнь Альцгеймера, которая стремительно развивается и сильно меняет сознание профессора Мужчина все еще старается с ней бороться, чтобы хоть как-то помочь своему лучшему другу.Фильм супер, концовка очень понравилась Жаль только, что это его последний фильм в этой саге.Сохранить время Сохраняет отметку в плеере на том месте минуты и секунды, где хотите продолжить просмотр в следующий раз.Могу предложить [b]логан фильм 2017 смотреть онлайн без регистрации [/b]Амбрелла исходит потенциальная угроза Более того, в скором времени планируется мощнейшая атака, которая будет направлена на тех, кто каким-то образом смог уцелеть в этом пост апокалиптическом мире.Безусловно, главную роль в фильме будет играть эмоциональный и все еще соблазнительный Хью Джекман Кроме того, ему составит компанию Патрик Стюард, чья роль в данном фильме станет завершающей, это будет последнее появление профессора в историях о сверхъестественных людях и мутантах.Конфликт, который возник между Томасом и бандитами, закончился кровопролитием и жертвами Что до самого фильма, то конечно это кино не для всех, кто то сравнит его с Лобстером, однако там совсем другая задумка, хотя проблемы поднимаются похожие, человек в социуме и одиночество.

Что здесь идеально, так это актерская игра главных героев Видно, что показывают максимальный потенциал своих сил, так как для двух актеров, этот путь занял в реальной жизни почти 17 лет это огромная для меня цифра, я даже представить не могу, что прошло столько времени.Смотрите фильм [b]дебора логан фильм смотреть онлайн [/b]Вспоминаются некоторые статьи, в которых рассказывают, что концовки в тех или иных фильмах были изменены, так как фокус группа показала, что финал там слишком мрачный и жестокий, здесь именно тот случай, и действительно хочется, чтобы все закончилось иначе, более положительно.Теперь перейду к тому, что мне не понравилось.
RustyNeict - 2017-03-14  20:18:29
 Там не было ни капитана Оуэнса, ни мистера Уайта, штабных офицеров.

http://profi-nail.ru/drayvera-na-printer-canon-mf4570dn.php

http://electro-ts.ru/programmu-ohlazhdeniya-dlya-android.php

http://uvlada.ru/12-2016-118.php
DarrellToure - 2017-03-14  13:16:00
 best place buy cialis online uk
cialis 20 mg tablets uk
cialis buy now
cialis buy uk online
cialis professional buy
cialis buy cheap

[url=http://mensmedstoresildenafil.org/#levitra]Vardenafil[/url]
cialis buy now
cialis liquid for sale
buy cialis generic canada
buy cialis 5mg
viagra and cialis for sale
cheapest cialis india
buy cialis online no prescription usa
cialis pills toronto
Michaelinvep - 2017-03-14  11:07:04
 Всегда новые серии Шерлока здесь https://vk.cc/6m26WB
Заходи пообщаемся в чате


________________________________________
шерлок новые серии дата выхода
сериал шерлок эвр
кто стал шерлоком холмсом в британском сериале
ноты из сериала шерлок
шерлок холмс сериал россия 1979 1986 скачать

[url=http://serial-fans.ru/?userid=28244&template=serials_comments&serial_id=3]сериал шерлок смотреть онлайн в хорошем качестве[/url]
[url=http://serial-fans.ru/?userid=28244&template=serials_comments&serial_id=3]шерлок холмс сериал последнее дело[/url]
[url=http://serial-fans.ru/?userid=28244&template=serials_comments&serial_id=3]шерлок холмс сериал андрей панин[/url]
[url=http://serial-fans.ru/?userid=28244&template=serials_comments&serial_id=3]шерлок новый сезон первая серия[/url]
[url=http://serial-fans.ru/?userid=28244&template=serials_comments&serial_id=3]шерлок новый сезон 2017 в россии[/url]


=$$$=
AaronGow - 2017-03-14  07:26:11
 #Most often the distance between the beams is 16 besttools.snack.ws.
Johnavage - 2017-03-14  03:25:34
 cialis 20 mg online bestellen
viagra taking half pill
herbal viagra blue pills
buy generic viagra dapoxetine online
viagra sildenafil 100mg kaufen
viagra 50mg dose
buy viagra online paypal
viagra levitra cialis generics
sildenafil citrate 100mg tab dosage
buy viagra singapore
pics viagra pills
does insurance cover viagra but not birth control pills
viagra 100mg wirkung
unterschied viagra generisches viagra
tadalafil 5 mg generic
Wilberphync - 2017-03-14  03:21:37
 Приветствую!
Отличная база фильмов, все новинки хорошего кино 2016 в HD по категориям смотреть онлайн бесплатно в качестве HD [b] топ лучших фильмов 2014 2015 2016 года список [/b] http://kinovalenok.tv/ :
[b] Лучшие новинки кино список новые смотреть онлайн [/b] http://kinovalenok.tv/novinki/
[b] Лучшие познавательные фильмы список 2016 смотреть онлайн бесплатно [/b] http://kinovalenok.tv/poznavatelnoe/
[b] Лучшие отечественные фильмы список 2016 в хорошем качестве смотреть онлайн [/b] [url=http://kinovalenok.tv/otechestvennyy/]Лучшие отечественные фильмы смотреть онлайн бесплатно[/url]
[b] Лучшая фантастика список 2017 [/b] [url=http://kinovalenok.tv/fantastika/]Лучшая фантастика новые в хорошем качестве HD[/url]
И Тут:
http://kinovalenok.tv/news/1116-zak-galifianakis-zastupitsya-za-kopov-lesbiyanok.html
http://kinovalenok.tv/istoricheskiy/3719-proklyatie-zolotogo-cvetka-man-cheng-jin-dai-huang-jin-jia-curse-of-the-golden-flower-2006.html
http://kinovalenok.tv/drama/6768-vangeliya-sezon-1-2013.html
http://kinovalenok.tv/drama/3545-gadzho-2014.html
http://kinovalenok.tv/drama/6587-perevodchik-2013.html
Sergei#inkomoff[EdhuqesofzejsVI,2,4] - 2017-03-14  02:15:26
 Народ, это не спам. Ниже список сайтов-мошенников,
которые обманывают людей.
Все отзывы на них вымышленные.
Они сотрудничают с автосалонами-лохотронами
[url="http://avtosalon-review.ru/"]прон отзывы[/url]
[url="http://otzivalko.ru"]автосалоны отзывы [/url]
[url="http://kritika.su"]условный автосалоне[/url]
[url="http://rusavtodiler.ru"]отзывы[/url]
[url="http://xn--80aaf1bkbccckpk.xn--p1ai/"]автосалоны отзывы[/url]
[url="http://xn----8sbahbbnyi0aqgkcbs0akg.xn--p1ai/"]прон отзывы[/url]
Stanleylor - 2017-03-13  17:47:20
 Большинство проблем на сайтах с низкой конкуренцией можно вскрыть за час-два и поправить за неделю.

Проблемы которые я предлагаю решить:

-Диагностировать как продвигает сайт ваш сегодняшнийспециалист и проверить его компетентность?
-Покажу просчеты допущенные раньше и построю сценарий по исправлению ситуации.
-Расскажу как проверять деятельность своего SEO эксперта.


Планируете пригласить SEO эксперта?

-Помогу провести собеседование потенциальногоSEO специалиста. Разберу по каким стандартам оценивать его уровень.
- Обсудим различия между нанятым в штат SEO, делегированном SEO и раскрутке собственными средствами.


Намереваетесь сами продвинуть имеющийся сайт. Расскажу все насчет продвижения, после консультации вам станет ясно:

-Сколько будет стоить ваш сайт
-Сколько по времени надо будет его продвигать с тем чтобы достичь топов
-Из каких именно шагов складывается само продвижение, в общем рассмотрим каждый из них.
-Рассмотрим по какой причине не стоит пользоваться услугами компаний, оказывающих такие услуги как по SEO


Хотите создать веб-сайт и организовать его продвижение?

-Расскажу и продемонстрирую как сделать максимально экономный и высококачественный вариант интернет-сайта.
-До какой степени объемным или сложным может стать ваш собственный интернет-сайт для того чтобы соперничать в топе.
-Как много вбухивают ваши конкуренты в продвижение.
-в какой степени осуществимо войти в топы с вашим сайтом и с вашим бюджетом.


Есть желание проверить окупится ли консультация?

Позвоните по телефону или в скайп - я отвечу на всевозможные проблемы затрагивающие SEO и собственного web-сайта.

Любые вопросы - позвоните +7(921)9114848 или по скайпу admin1.ru
Часовая беседа стоит 3тыс руб., допускается подписание договора и оплата на расчетный счет.
Оказываю безвозмездные консультации за рекомендации (таким образом у подавляющей массы web-сайтов проблему видно практически сразу)

acol7wns24
Fransiscaji - 2017-03-13  14:29:55
 Продаём тухлые продукты с переклеенной датой
Тухлые продукты продают тут: https://fiberam-market.ru fiberam@bk.ru
Здесь продают вялые цветы: http://www.цветы-здесь.рф/
Трамадол без рецепта, наркоту купить можно здесь: http://fiberam-farma.ru
Просрочка купить: admin@fiberam-market.ru
Отзывы: https://market.yandex.ru/shop/293752/reviews?sort_by=rank
VeneraMic - 2017-03-13  13:14:31
 Подтяжка лица в домашних условиях

[img]http://kok7.ru/wp-content/uploads/2017/03/main-125329-8fa5ef167de10b86c56a53140d32aeac-158x158.jpg[/img]

О том, какие методы подтяжки лица в домашних условиях являются наиболее действенными,
я узнала на женском сайте [b][i]Всё для женщины[/i][/b].
Мне понравились эти советы, потому что они очень эффективны.
Перед тем, как познакомиться с основными средствами для подтяжки лица в домашних условиях,
нужно изучить основные запреты, нарушение которых может привести к усугублению ситуации
с обвисанием кожи...
Если вам интересно, узнайте подробности [url=http://kok7.ru/podtyazhka-litsa-v-domashnih-usloviyah/]здесь[/url]
Christyclove - 2017-03-13  00:39:06
 [url=http://torrent-online.org/filmy/dokumentalnye/]актеры сериала[/url]
Romancam - 2017-03-12  22:40:19
 [url=https://www.youtube.com/watch?v=9j3wi283BPo]посылка из китая[/url]
Richardasync - 2017-03-12  20:34:01
 Вот информация по вашей теме, просто заходите на сайт [url=http://officeproff.ru/]http://officeproff.ru/[/url] почитайте про канцтовары, новые технологии. Супер проект!
JamalAcele - 2017-03-12  20:30:06
 "Мотивом к http://www.wojiachayuan.com/comment/html/?225629.html&page= совершению преступления явилось алчность
подозреваемого отомстить потерпевшему ради то, сколько заключительный в
1998 году http://www.wojiachayuan.com/comment/html/?225629.html&page= участвовал в изнасиловании и убийстве его 13-летнего
друга", — говорится в сообщении. Гласный избранник
регионального следственного управления Кристина Гузовская
отметила, сколько после совершенное почти 20 лет назад преступление
потерпевший отбыл подходящий срок.
Sex-ra.com - 2017-03-12  19:03:39
 Новые Проститутки Киев http://links.orthodoxworld.ru/aaaacD
Patrickmiz - 2017-03-12  18:51:27
 To securely fix the object on the wall, it is necessary to install the fastener precisely in place of the wall studs electronic stud finder reviews.
JamesabsOr - 2017-03-12  18:24:16
 Привет всем участникам!
Отличная база фильмов, все новинки хорошего кино 2016 в HD по категориям смотреть онлайн бесплатно в качестве HD [b] лучшие русские криминальные фильмы 2014 2015 2016 года [/b] http://kinofly.net/ :
[b] Лучшие реалити шоу список смотреть онлайн [/b] http://kinofly.net/realiti-shou/
[b] Лучшие новинки кино список новые смотреть онлайн [/b] [url=http://kinofly.net/novinki/]Лучшие новинки кино в хорошем качестве HD[/url]
[b] Лучшие триллеры список смотреть онлайн [/b] http://kinofly.net/triller/
[b] Лучшие семейные фильмы список смотреть бесплатно [/b] http://kinofly.net/semeynyy/
И Здесь:
http://kinofly.net/news/11505-ohotniki-za-privideniyami-lishilis-tancuyuschego-krisa-hemsvorta.html
http://kinofly.net/news/12287-fandango-prodala-sotni-tysyach-biletov-na-seansy-izgoya.html
http://kinofly.net/boevik/8577-park-yurskogo-perioda-3-jurassic-park-iii-2001.html
http://kinofly.net/detektiv/5672-v-pogone-za-tenyami-chasing-shadows-sezon-1-2014.html
http://kinofly.net/komediya/2609-huligany-human-giant-sezon-1-2-2007-2008.html
<<[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93] [94] [95] [96] [97] [98] [99] [100] [101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120] [121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140] [141] [142] [143] [144] [145] [146] [147] [148] [149] [150] [151] [152] [153] [154] [155] [156] [157] [158] [159] [160] [161] [162] [163] [164] [165] [166] [167] [168] [169] [170] [171] [172] [173] [174] [175] [176] [177] [178] [179] [180] [181] [182] [183] [184] [185] [186] [187] [188] [189] [190] [191] [192] [193] [194] [195] [196] [197] [198] [199] [200] [201] [202] [203] [204] [205] [206] [207] [208] [209] [210] [211] [212] [213] [214] [215] [216] [217] [218] [219] [220] [221] [222] [223] [224] [225] [226] [227] [228] [229] [230] [231] [232] [233] [234] [235] [236] [237] [238] [239] [240] [241] [242] [243] [244] [245] [246] [247] [248] [249] [250] [251] [252] [253] [254] [255] [256] [257] [258] [259] [260] [261] [262] [263] [264] [265] [266] [267] [268] [269] [270] [271] [272] [273] [274] [275] [276] [277] [278] [279] [280] [281] [282] [283] [284] [285] [286] [287] [288] [289] [290] [291] [292] [293] [294] [295] [296] [297] [298] [299] [300] [301] [302] [303] [304] [305] [306] [307] [308] [309] [310] [311] [312] [313] [314] [315] [316] [317] [318] [319] [320] [321] [322] [323] [324] [325] [326] [327] [328] [329] [330] [331] [332] [333] [334] [335] [336] [337] [338] [339] [340] [341] [342] [343] [344] [345] [346] [347] [348] [349] [350] [351] [352] [353] [354] [355] [356] [357] [358] [359] [360] [361] [362] [363] [364] [365] [366] [367] [368] [369] [370] [371] [372] [373] [374] [375] [376] [377] [378] [379] [380] [381] [382] [383] [384] [385] [386] [387] [388] [389] [390] [391] [392] [393] [394] [395] [396] [397] [398] [399] [400] [401] [402] [403] [404] [405] [406] [407] [408] [409] [410] [411] [412] [413] [414] [415] [416] [417] [418] [419] [420] [421] [422] [423] [424] [425] [426] [427] [428] [429] [430] [431] [432] [433] [434] [435] [436] [437] [438] [439] [440] [441] [442] [443] [444] [445] [446] [447] [448] [449] [450] [451] [452] [453] [454] [455] [456] [457] >>
*v komentářich nesmíte používat sprostá slova a odkazy!!!Děkuji za pochopeni.