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ářů(8993)
OlymErall - 2017-08-28  14:46:39
 В наше тяжелое время все равно появляется желание обустраивать собственный дом, квартиру и делать жилой уголок наиболее уютным и удобным. Это стандартное желание любого человека, так как только в данном жилом уголке мы восстанавливаем свои силы, эмоции и даже состояние здоровья.
И все же, трудные времена накладывают свой отпечаток даже на такие вещи, а потому мы пытаемся сэкономить где только кажется возможным. Это может быть приобретение наиболее дешевого материала для оформления стен или недорогая меблировка, однако более новая.
А весьма основная часть экономии – осуществить ремонт квартиры самостоятельно, чтобы не нанимать работников, какие стоимость поднимают так, что она будет не меньше, а то и значительно дороже, чем сами материалы для ремонтных работ. В этом случае наши «очумельцы» стремятся научиться самостоятельно и без особенных расходов выполнять все ремонтные работы, которые им окажутся необходимы в доме.
Наш интернет-проект «Школа ремонта» как раз и сотворен для таких «очумельцев», с тем чтобы они быстрее и лучше смогли постигнуть новые навыки и знания. А ведь мы сможет проинформировать вас о том, какие обои или краски лучше подобрать, нужно ли экономить на инструментах, что из представляемого ассортимента штукатурок и других материалов для стен будет иметь более эффектный вид. Также не лишен сложности и труд дизайнера, а цены на их услуги не меньшие, чем у ремонтно-строительной бригады.


[url=http://olympic-school.com/dizajn-interera/dizajna-interera-kvartiry-vidy-stilej-i-sochetanie.html]дизайн интерьера какой лучше[/url]
ReviaLek - 2017-08-28  14:17:47
 http://med15.spmuz1.ru/map1.html http://med15.spmuz1.ru/map1.html med15.spmuz1.ru [url=http://med15.spmuz1.ru/map1.html]med15.spmuz1.ru/map1.html[/url]

http://med10.spmuz1.ru/shpanskaja-mushka/35854-kupit-sialis-dzhenerik-v-ukraine.html купить сиалис дженерик в украине купить сиалис дженерик в украине [url=http://med10.spmuz1.ru/shpanskaja-mushka/35854-kupit-sialis-dzhenerik-v-ukraine.html]купить сиалис дженерик в украине[/url]
ReviaLek - 2017-08-28  14:01:18
 http://med7.spmuz1.ru/map1.html http://med7.spmuz1.ru/map1.html med7.spmuz1.ru [url=http://med7.spmuz1.ru/map1.html]med7.spmuz1.ru/map1.html[/url]

http://med5.spmuz1.ru/fuzhunbao/86669-sialis-i-levitra-forum.html сиалис и левитра форум сиалис и левитра форум [url=http://med5.spmuz1.ru/fuzhunbao/86669-sialis-i-levitra-forum.html]сиалис и левитра форум[/url]
JeremyDaw - 2017-08-28  13:33:58
 [url=http://www.ayasofyamoschee.de/new-balance-schuhe-schweiz-839.php]New Balance Schuhe Schweiz[/url]
Each acne individual needs to have an environmentally friendly-centered concealer with their toolbox of merchandise in the fight against acne. Even if you are at the moment making use of products to take care of acne breakouts, you may nonetheless find a breakout every once in awhile. The eco-friendly hue of the concealer will combat against the reddish colored shade of the zit. Be sure to blend properly, as you do not want to have a strangely shaded polka-dotted deal with!

[img]https://www.waldbroeler-musiktage.de/images/wage2/5610-nike-sb-air-jordan-1-deutschland.jpg[/img]

When you have a dim tinted cooking area it might be to your advantage to lighten up points up. Many people do not want to buy residences which may have the kitchen with dark hues. When you are conce
ed with marketing you property eventually them you have to keep that in mind.

[img]https://www.mf-hirrlingen.de/images/mf-hirrlingen/11834-ray-ban-wayfarer-2113.jpg[/img]
TimothySoige - 2017-08-28  12:17:11
 What are the requirements to [url=http://usamaxpharma.com/buy-xanax-2mg-online]buy xanax online in usa[/url]
however, if you buy [url=http://usamaxpharma.com/buy-xanax-2mg-online]xanax[/url] from http://usamaxpharma.com than you do not require any documents
more products references of http://usamaxpharma.com
[url=http://usamaxpharma.com/buy-xanax-2mg-online]xanax online[/url] at http://usamaxpharma.com/buy-xanax-2mg-online
[url=http://usamaxpharma.com/buy-xanax-2mg-online]buy xanax[/url] at http://usamaxpharma.com/buy-xanax-2mg-online
[url=http://usamaxpharma.com/buy-xanax-2mg-online]buy xanax online[/url] at http://usamaxpharma.com/buy-xanax-2mg-online
[url=http://usamaxpharma.com/buy-xanax-2mg-online]pfizer xanax[/url] at http://usamaxpharma.com/buy-xanax-2mg-online
[url=http://usamaxpharma.com/buy-xanax-2mg-online]xanax 2mg[/url] at http://usamaxpharma.com/buy-xanax-2mg-online
[url=http://usamaxpharma.com/buy-xanax-2mg-online]xanax 1mg[/url] at http://usamaxpharma.com/buy-xanax-2mg-online
[url=http://usamaxpharma.com/Buy-Valium-10mg-Online]valium 10mg[/url] at http://usamaxpharma.com/Buy-Valium-10mg-Online
[url=http://usamaxpharma.com/Buy-Valium-10mg-Online]valium 5mg[/url] at http://usamaxpharma.com/Buy-Valium-10mg-Online
[url=http://usamaxpharma.com/Buy-Valium-10mg-Online]buy valium[/url] at http://usamaxpharma.com/Buy-Valium-10mg-Online
[url=http://usamaxpharma.com/Buy-Valium-10mg-Online]valium online[/url] at http://usamaxpharma.com/Buy-Valium-10mg-Online
[url=http://usamaxpharma.com/Buy-Valium-10mg-Online]buy valium online[/url] at http://usamaxpharma.com/Buy-Valium-10mg-Online
[url=http://usamaxpharma.com/Buy-Valium-10mg-Online]buy diazepam[/url] at http://usamaxpharma.com/Buy-Valium-10mg-Online
[url=http://usamaxpharma.com/Buy-Valium-10mg-Online]diazepam online[/url] at http://usamaxpharma.com/Buy-Valium-10mg-Online
[url=http://usamaxpharma.com/Buy-Provigil-200mg-Online]buy diazepam online[/url] at http://usamaxpharma.com/Buy-Valium-10mg-Online
[url=http://usamaxpharma.com/Buy-Provigil-200mg-Online]provigil online[/url] at http://usamaxpharma.com/Buy-Provigil-200mg-Online
[url=http://usamaxpharma.com/Buy-Provigil-200mg-Online]buy provigil[/url] at http://usamaxpharma.com/Buy-Provigil-200mg-Online
[url=http://usamaxpharma.com/Buy-Provigil-200mg-Online]buy provigil online[/url] at http://usamaxpharma.com/Buy-Provigil-200mg-Online
[url=http://usamaxpharma.com/Buy-Provigil-200mg-Online]modafinil online[/url] at http://usamaxpharma.com/Buy-Provigil-200mg-Online
[url=http://usamaxpharma.com/Buy-Provigil-200mg-Online]buy modafinil[/url] at http://usamaxpharma.com/Buy-Provigil-200mg-Online
[url=http://usamaxpharma.com/Buy-Provigil-200mg-Online]modafinil 200mg[/url] at http://usamaxpharma.com/Buy-Provigil-200mg-Online
[url=http://usamaxpharma.com/Buy-Provigil-200mg-Online]buy modafinil online[/url] at http://usamaxpharma.com/Buy-Provigil-200mg-Online
ReviaLek - 2017-08-28  10:52:23
 http://med9.spmuz1.ru/map1.html http://med9.spmuz1.ru/map1.html med9.spmuz1.ru [url=http://med9.spmuz1.ru/map1.html]med9.spmuz1.ru/map1.html[/url]

http://med9.spmuz1.ru/vigrh-pljus/71170-esli-sialis-primet-zhenschina.html если сиалис примет женщина если сиалис примет женщина [url=http://med9.spmuz1.ru/vigrh-pljus/71170-esli-sialis-primet-zhenschina.html]если сиалис примет женщина[/url]
ReviaLek - 2017-08-28  10:35:57
 http://med6.spmuz1.ru/map1.html http://med6.spmuz1.ru/map1.html med6.spmuz1.ru [url=http://med6.spmuz1.ru/map1.html]med6.spmuz1.ru/map1.html[/url]

http://med4.spmuz1.ru/new-night/31249-zhenskaja-viagra-kak-upotrebljat.html женская виагра как употреблять женская виагра как употреблять [url=http://med4.spmuz1.ru/new-night/31249-zhenskaja-viagra-kak-upotrebljat.html]женская виагра как употреблять[/url]
TimothySoige - 2017-08-28  07:51:00
 What are the requirements to [url=http://usamaxpharma.com/buy-xanax-2mg-online]buy xanax online in usa[/url]
however, if you buy [url=http://usamaxpharma.com/buy-xanax-2mg-online]xanax[/url] from http://usamaxpharma.com than you do not require any documents
more products references of http://usamaxpharma.com
[url=http://usamaxpharma.com/buy-xanax-2mg-online]xanax online[/url] at http://usamaxpharma.com/buy-xanax-2mg-online
[url=http://usamaxpharma.com/buy-xanax-2mg-online]buy xanax[/url] at http://usamaxpharma.com/buy-xanax-2mg-online
[url=http://usamaxpharma.com/buy-xanax-2mg-online]buy xanax online[/url] at http://usamaxpharma.com/buy-xanax-2mg-online
[url=http://usamaxpharma.com/buy-xanax-2mg-online]pfizer xanax[/url] at http://usamaxpharma.com/buy-xanax-2mg-online
[url=http://usamaxpharma.com/buy-xanax-2mg-online]xanax 2mg[/url] at http://usamaxpharma.com/buy-xanax-2mg-online
[url=http://usamaxpharma.com/buy-xanax-2mg-online]xanax 1mg[/url] at http://usamaxpharma.com/buy-xanax-2mg-online
[url=http://usamaxpharma.com/Buy-Valium-10mg-Online]valium 10mg[/url] at http://usamaxpharma.com/Buy-Valium-10mg-Online
[url=http://usamaxpharma.com/Buy-Valium-10mg-Online]valium 5mg[/url] at http://usamaxpharma.com/Buy-Valium-10mg-Online
[url=http://usamaxpharma.com/Buy-Valium-10mg-Online]buy valium[/url] at http://usamaxpharma.com/Buy-Valium-10mg-Online
[url=http://usamaxpharma.com/Buy-Valium-10mg-Online]valium online[/url] at http://usamaxpharma.com/Buy-Valium-10mg-Online
[url=http://usamaxpharma.com/Buy-Valium-10mg-Online]buy valium online[/url] at http://usamaxpharma.com/Buy-Valium-10mg-Online
[url=http://usamaxpharma.com/Buy-Valium-10mg-Online]buy diazepam[/url] at http://usamaxpharma.com/Buy-Valium-10mg-Online
[url=http://usamaxpharma.com/Buy-Valium-10mg-Online]diazepam online[/url] at http://usamaxpharma.com/Buy-Valium-10mg-Online
[url=http://usamaxpharma.com/Buy-Provigil-200mg-Online]buy diazepam online[/url] at http://usamaxpharma.com/Buy-Valium-10mg-Online
[url=http://usamaxpharma.com/Buy-Provigil-200mg-Online]provigil online[/url] at http://usamaxpharma.com/Buy-Provigil-200mg-Online
[url=http://usamaxpharma.com/Buy-Provigil-200mg-Online]buy provigil[/url] at http://usamaxpharma.com/Buy-Provigil-200mg-Online
[url=http://usamaxpharma.com/Buy-Provigil-200mg-Online]buy provigil online[/url] at http://usamaxpharma.com/Buy-Provigil-200mg-Online
[url=http://usamaxpharma.com/Buy-Provigil-200mg-Online]modafinil online[/url] at http://usamaxpharma.com/Buy-Provigil-200mg-Online
[url=http://usamaxpharma.com/Buy-Provigil-200mg-Online]buy modafinil[/url] at http://usamaxpharma.com/Buy-Provigil-200mg-Online
[url=http://usamaxpharma.com/Buy-Provigil-200mg-Online]modafinil 200mg[/url] at http://usamaxpharma.com/Buy-Provigil-200mg-Online
[url=http://usamaxpharma.com/Buy-Provigil-200mg-Online]buy modafinil online[/url] at http://usamaxpharma.com/Buy-Provigil-200mg-Online
Aseponagox - 2017-08-28  07:16:02
 usia kehamilan 12 minggu [url=http://jinjiro41.tumblr.com/#91946]jinjiro41-tumblr[/url] intrauterine pregnancy icd 9 code
Nicolaseo - 2017-08-28  04:47:21
 Travailleur indépendant depuis 2005 et véritable autodidacte, j'ai appris à créer des sites inte
et, les héberger sur le web et les positionner en 1er page des moteurs de recherche. J'ai fait du référencement ma spécialité et ma passion !

Mon parcours sur inte
et commence en 2005 sous le statut EURL par la création et la gestion complète de plusieurs sites e-commerce de prêt à porter, high tech, produits bio etc...

Mais le référencement inte
et et la programmation pour le web me plaisaient bien plus que la vente et les relations clients. Je me suis donc reconverti en 2008 dans l'affiliation et le Black Hat SEO. Date à laquelle je créais également mon agence de référencement google ce qui m'a permis un partenariat durable avec la société américaine SEOW.

J'ai lancé le projet Content-Spinning.fr qui permet de dupliquer votre contenu sans faire de duplicate content, le réseau Wpmu-Creator.com qui propose d'utiliser un très large réseau de blog et GHSTools.fr qui permet de gérer automatiquement le référencement de milliers de sites.

Je peux intervenir pour vous ou vos clients sur simple contact : +33 6 88 81 72 90 ou seowllc@gmail.com
TimothySoige - 2017-08-28  04:42:07
 What are the requirements to [url=http://usamaxpharma.com/buy-xanax-2mg-online]buy xanax online in usa[/url]
however, if you buy [url=http://usamaxpharma.com/buy-xanax-2mg-online]xanax[/url] from http://usamaxpharma.com than you do not require any documents
more products references of http://usamaxpharma.com
[url=http://usamaxpharma.com/buy-xanax-2mg-online]xanax online[/url] at http://usamaxpharma.com/buy-xanax-2mg-online
[url=http://usamaxpharma.com/buy-xanax-2mg-online]buy xanax[/url] at http://usamaxpharma.com/buy-xanax-2mg-online
[url=http://usamaxpharma.com/buy-xanax-2mg-online]buy xanax online[/url] at http://usamaxpharma.com/buy-xanax-2mg-online
[url=http://usamaxpharma.com/buy-xanax-2mg-online]pfizer xanax[/url] at http://usamaxpharma.com/buy-xanax-2mg-online
[url=http://usamaxpharma.com/buy-xanax-2mg-online]xanax 2mg[/url] at http://usamaxpharma.com/buy-xanax-2mg-online
[url=http://usamaxpharma.com/buy-xanax-2mg-online]xanax 1mg[/url] at http://usamaxpharma.com/buy-xanax-2mg-online
[url=http://usamaxpharma.com/Buy-Valium-10mg-Online]valium 10mg[/url] at http://usamaxpharma.com/Buy-Valium-10mg-Online
[url=http://usamaxpharma.com/Buy-Valium-10mg-Online]valium 5mg[/url] at http://usamaxpharma.com/Buy-Valium-10mg-Online
[url=http://usamaxpharma.com/Buy-Valium-10mg-Online]buy valium[/url] at http://usamaxpharma.com/Buy-Valium-10mg-Online
[url=http://usamaxpharma.com/Buy-Valium-10mg-Online]valium online[/url] at http://usamaxpharma.com/Buy-Valium-10mg-Online
[url=http://usamaxpharma.com/Buy-Valium-10mg-Online]buy valium online[/url] at http://usamaxpharma.com/Buy-Valium-10mg-Online
[url=http://usamaxpharma.com/Buy-Valium-10mg-Online]buy diazepam[/url] at http://usamaxpharma.com/Buy-Valium-10mg-Online
[url=http://usamaxpharma.com/Buy-Valium-10mg-Online]diazepam online[/url] at http://usamaxpharma.com/Buy-Valium-10mg-Online
[url=http://usamaxpharma.com/Buy-Provigil-200mg-Online]buy diazepam online[/url] at http://usamaxpharma.com/Buy-Valium-10mg-Online
[url=http://usamaxpharma.com/Buy-Provigil-200mg-Online]provigil online[/url] at http://usamaxpharma.com/Buy-Provigil-200mg-Online
[url=http://usamaxpharma.com/Buy-Provigil-200mg-Online]buy provigil[/url] at http://usamaxpharma.com/Buy-Provigil-200mg-Online
[url=http://usamaxpharma.com/Buy-Provigil-200mg-Online]buy provigil online[/url] at http://usamaxpharma.com/Buy-Provigil-200mg-Online
[url=http://usamaxpharma.com/Buy-Provigil-200mg-Online]modafinil online[/url] at http://usamaxpharma.com/Buy-Provigil-200mg-Online
[url=http://usamaxpharma.com/Buy-Provigil-200mg-Online]buy modafinil[/url] at http://usamaxpharma.com/Buy-Provigil-200mg-Online
[url=http://usamaxpharma.com/Buy-Provigil-200mg-Online]modafinil 200mg[/url] at http://usamaxpharma.com/Buy-Provigil-200mg-Online
[url=http://usamaxpharma.com/Buy-Provigil-200mg-Online]buy modafinil online[/url] at http://usamaxpharma.com/Buy-Provigil-200mg-Online
Promobalp - 2017-08-28  04:36:55
 http://lms.naeyc.org/?gcpharma-cialis
http://lms.naeyc.org/?gen-24-cialis
http://lms.naeyc.org/?gen-cialis-softtabs
ReviaLek - 2017-08-27  23:07:40
 http://men-med11.spmuz1.ru/map1.html http://men-med11.spmuz1.ru/map1.html men-med11.spmuz1.ru [url=http://men-med11.spmuz1.ru/map1.html]men-med11.spmuz1.ru/map1.html[/url]

http://med10.spmuz1.ru/shpanskaja-mushka/41047-dapoksetin-v-apteke-jaroslavlja.html дапоксетин в аптеке ярославля дапоксетин в аптеке ярославля [url=http://med10.spmuz1.ru/shpanskaja-mushka/41047-dapoksetin-v-apteke-jaroslavlja.html]дапоксетин в аптеке ярославля[/url]
SanhvcGof - 2017-08-27  22:26:01
 [url=https://www.cy-pr.com/forum/f15/t75945/]поведенческие факторы[/url]
Sonjafar - 2017-08-27  21:58:03
 CBD Gummy Bears 10mg cbd gummies [url=https://hempgummies.us/]cbd gummies[/url] cbd gummies
CBD Gummies CBD Gummies cbd gummies sale CBD Gummies for sale
Stephensum - 2017-08-27  17:19:11
 wowcure has the best [url=http://wowcure.com/buy-viagra-online]generic viagra[/url].
and also customers [url=http://wowcure.com/buy-viagra-online]buy viagra[/url] online on high volume from them
I am also their consumer of [url=http://wowcure.com/buy-viagra-online]sildenafil 100mg[/url].
[url=http://wowcure.com]wowcure[/url] also provide [url=http://wowcure.com]pharmacy dropship services[/url] to the [url=http://wowcure.com/buy-viagra-online]viagra pharmacy[/url]
[url=http://wowcure.com/buy-ultram-online]buy tramadol online[/url] at http://wowcure.com/buy-ultram-online
[url=http://wowcure.com/buy-Ativan-online]buy lorazepam online[/url] at http://wowcure.com/buy-Ativan-online
[url=http://wowcure.com/buy-xanax-online]buy xanax online[/url] at http://wowcure.com/buy-xanax-online
[url=http://wowcure.com/hydrocodone]buy hydrocodone online[/url] at http://wowcure.com/hydrocodone
[url=http://wowcure.com/buy-oxycodone]buy oxycodone online[/url] at http://wowcure.com/buy-oxycodone
[url=http://wowcure.com/Buy-Female-Viagra-Online]buy female viagra[/url] at http://wowcure.com/Buy-Female-Viagra-Online
[url=http://wowcure.com/buy-viagra-online]buy sildenafil online[/url] at http://wowcure.com/buy-viagra-online
[url=http://wowcure.com/Buy-Cialis-online]buy tadalafil online[/url] at http://wowcure.com/Buy-Cialis-online
[url=http://wowcure.com/buy-levitra-online]buy levitra online[/url] at http://wowcure.com/buy-levitra-online
[url=http://wowcure.com/buy-carisoprodol]buy carisoprodol online[/url] at http://wowcure.com/buy-carisoprodol
[url=http://wowcure.com/buy-fioricet-online]buy fioricet online[/url] at http://wowcure.com/buy-fioricet-online
[url=http://wowcure.com/buy-fioricet-online]buy butalbital online[/url] at http://wowcure.com/buy-fioricet-online
[url=http://wowcure.com/buy-valium-online]buy diazepam online[/url] at http://wowcure.com/buy-valium-online
[url=http://wowcure.com/buy-mogadon-online]buy nitrazepam online[/url] at http://wowcure.com/buy-mogadon-online
[url=http://wowcure.com/buy-imovane-online]buy imovane online[/url] at http://wowcure.com/buy-imovane-online
[url=http://wowcure.com/buy-klonopin-online]buy klonopin online[/url] at http://wowcure.com/buy-klonopin-online
[url=http://wowcure.com/buy-ambien-online]buy ambien online[/url] at http://wowcure.com/buy-ambien-online
[url=http://wowcure.com/buy-ambien-online]buy zolpidem online[/url] at http://wowcure.com/buy-ambien-online
[url=http://wowcure.com/buy-adipex-online]buy adipex online[/url] at http://wowcure.com/buy-adipex-online
[url=http://wowcure.com/buy-adipex-online]buy phentermine online[/url] at http://wowcure.com/buy-adipex-online
[url=http://wowcure.com/buy-meridia-online]buy meridia online[/url] at http://wowcure.com/buy-meridia-online
[url=http://wowcure.com/Buy-Reductil-Online]buy reductil online[/url] at http://wowcure.com/Buy-Reductil-Online
[url=http://wowcure.com/Buy-Reductil-Online]buy sibutramine online[/url] at http://wowcure.com/Buy-Reductil-Online
ReviaLek - 2017-08-27  16:34:29
 http://med3.spmuz1.ru/map1.html http://med3.spmuz1.ru/map1.html med3.spmuz1.ru [url=http://med3.spmuz1.ru/map1.html]med3.spmuz1.ru/map1.html[/url]

http://med12.spmuz1.ru/p-force/51135-esli-dat-sialis-devushke.html если дать сиалис девушке если дать сиалис девушке [url=http://med12.spmuz1.ru/p-force/51135-esli-dat-sialis-devushke.html]если дать сиалис девушке[/url]
ReviaLek - 2017-08-27  16:24:08
 http://men-med15.spmuz1.ru/map1.html http://men-med15.spmuz1.ru/map1.html men-med15.spmuz1.ru [url=http://men-med15.spmuz1.ru/map1.html]men-med15.spmuz1.ru/map1.html[/url]

http://men-med13.spmuz1.ru/naron/22618-zakazat-dzhenerik-levitru-v.html заказать дженерик левитру в заказать дженерик левитру в [url=http://men-med13.spmuz1.ru/naron/22618-zakazat-dzhenerik-levitru-v.html]заказать дженерик левитру в[/url]
Eugeniakew - 2017-08-27  16:11:07
 Доброго времени суток.
Мечтаете заработать на своем сайте?
Актуальные биржи ссылок для заработка в 2017 году: http://seomaniya.com/3492-birzhi-ssylok-dlya-zarabotka-v-2017-godu.html
Miguelspimi - 2017-08-27  14:54:47
 http://men-med10.spmuz1.ru/vigrh-pljus/93666-sialis-viagra-probnik-cena.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] >>
*v komentářich nesmíte používat sprostá slova a odkazy!!!Děkuji za pochopeni.