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ářů(10302)
Stanleytef - 2017-04-22  04:40:53
 Thousands of years ago, a race of beings known as Dark Elves tried to send the universe into darkness by using a weapon known as the Aether. Warriors from Asgard stop them but their leader Malekith escapes to wait for another opportunity. The warriors find the Aether and since it cannot be destroyed, they try to hide it. In the present day, Jane Foster awaits the retu
of Thor although it has been two years since they last saw once another. In the meantime, Thor has been trying to bring peace to the nine realms. Jane discovers an anomaly similar to the one that brought Thor to Earth. She goes to investigate, finds a wormhole, and is sucked into it. Back on Asgard, Thor wishes to retu
to Earth but his father, Odin refuses to let him. Thor lea
s from Heimdall, who can see into all of the realms, that Jane disappeared. Thor then retu
s to Earth just as Jane reappears. However, when some policemen try to arrest her, an unknown energy repulses them.
!#jnfd7hv
[url=http://www.imdb.com/title/tt1981115/]Thor: The Dark World (2013)[/url]
Kikjrq - 2017-04-22  03:43:40
 canadian viagra national health insurance policy
viagra samples
list of stds and symptoms
canadian viagra
AbuBoybeamma - 2017-04-22  02:16:25
 [url=http://us-safe-store.com#young-men-viagra]can you take viagra every day[/url] best canadian online pharmacy [url=http://safe-shopping-us.com#alcohol-and-erectile-dysfunction]target pharmacy york pa[/url] 150 mg viagra [url=http://usa-best-store.com#effects-of-viagra-on-a-woman]is viagra fda approved[/url] volunteer pharmacy [url=http://best-store-usa.com#cialis-formula]walmart pharmacy georgetown tx[/url] how can you get viagra
AbuBoybeamma - 2017-04-22  00:09:15
 pharmacy technician book [url=http://safe-store-usa.com/#hy-vee-pharmacy-sioux-falls]canada online pharmacy viagra[/url]
GeorgeSes - 2017-04-21  23:42:45
 bgsemeystvo com quite colombofasteners com spirits betterbait net true kcd edu pk resolved hotelsissy gr floor tehvolga ru desire greenacre co za carried anztst com vn observed alesnavratil cz should puertopolispr com friends
Alearono - 2017-04-21  23:31:53
 levitra for sale levitra 10 mg
StevenPob - 2017-04-21  23:19:46
 КЛИЕНТСКИЕ БАЗЫ http://xurl.es/PR0DAWEZ УЗНАЙТЕ ПОДРОБНЕЕ! KLIENTSKIE BAZY http://xurl.es/PR0DAWEZ Uznajte podrobnee!
HiltonnUago - 2017-04-21  22:48:40
 [url=https://www.bigtent.com/groups/singulair25]Buy Discount Online With No Script[/url]|
Patrickfup - 2017-04-21  21:44:32
 i want to order Flonase Nasal Spray in UK/GB ove
ight delivery no r x ; order online cheap Flonase Nasal Spray in UK next day delivery

[url=http://worldmailes.com/pharm/go.php?sid=1&search=Flonase Nasal Spray] [u][b]>>> Want to buy Flonase Nasal Spray with Discount? CLICK HERE! https://tr.im/bestpillsonline




- I Want to order in GB / UK Hydrea no prescription next day delivery
- How Can I Buy in Australia Vitamin C no prescription c.o.d.
- Purchase in Australia Online Micardis in inte
et drugs ove
ight
- Buy in UK cheapest Premarin non prescription needed
- Purchase in USA Cheapest Famvir pharmacy without prescription
- Order At Low Cost Avodart pay cod without prescription
- Online in Australia Viagra Strong Pack-40 no prescription required
- Purchase in USA Female Cialis without doctor prescription
- Ordering in USA Cartia Xt cash on delivery ove
ight
- Where Can I Order in USA Slimfast shipped by cash on delivery
- Buy in USA Coumadin delivery no prescription
- Where To Get in USA Reosto no prior script ove
ight
- Order in USA Cheap Online Lioresal non prescription
- Order in United States cheapest Ayurslim no script needed c.o.d. ove
ight
- I Want to order in USA Isoptin non prescription
- Lowest Prices Arimidex without a rx ove
ight
- Where Can I Order in Australia Glucotrol c.o.d. no rx
- Purchase in UK cheapest Beloc no prescription
- Where Can I Purchase in Australia Shallaki ove
ight without a prescription
- How Can I Buy in USA Micardis pharmacy without a prescription
- Order in USA At Low Price Glucophage SR non prescription needed
- Pharmacies That Sell Super Pack ove
ight without a prescription
- Order Differin with no prescription
- Buy At Low Price Kamagra Pack-15 ove
ight delivery without a rx
- Purchase in Canada At Lowest Price Ditropan Xl cash on delivery ove
ight
- Ordering At Lowest Price Confido no prescription quick delivery
- Purchase At Lowest Price Voveran SR ove
ight delivery without a rx
- Purchase in Canada cheapest Dilantin in inte
et,next day delivery
- Where Can I Order Levitra prescriptions online
- Where To Order in Australia Terramycin without a rx ove
ight
- Buy Cheap in USA Tinidazole c.o.d. saturday delivery
- Where Can I Purchase in Australia Azulfidine saturday delivery
- Canadian Licensed Pharmacy Reosto ove
ight without dr approval
- Where To Get in USA Cialis Super Active in inte
et drugs ove
ight
- Order At Low Cost in USA Furadantin no prescription quick delivery
- Quiqly Delivery in USA Cialis Light Pack-60 next day delivery
- Australia Online Pharmacy Antivert - how to use,side effects,information
- I Want to buy VP-GL no prescription next day delivery
- Best Place in Canada To Buy Zyvox without a prescription
- Buying Furadantin ove
ight without prescription
- Fast Delivery in USA Levitra Soft in without prescription
- Online in Canada Glucotrol pharmacy without a prescription
- How To Order in USA Symmetrel shipped ove
ight without a prescription
- Purchase in Canada Pentasa next day delivery
- Buy in UK cheapest Hoodia c.o.d ove
ight no rx
- Order in USA Cheapest ED Super Advanced Pack c.o.d. without prescription
- Buy in Australia Cheapest Combipres cash on delivery online prescriptions
- How To Purchase in USA Trileptal with no prescription
- Pharmacies in Canada That Sell Alfacip c.o.d. without prescription
- Price Of Garcinia Cambogia without rx
- Order in GB / UK Cheap Generic Actigall without prescription ove
ight
SVENkib - 2017-04-21  21:38:32
 Каждый день Apple производит около 2 литров синтетического пота, чтобы тестировать новые продукты. В рамках исследований специалисты компании изучают, насколько устойчив тот или иной гаджет к данному типу жидкости. Об этом факте рассказал журналист Ариель Духаиме Росс, посетивший штаб-квартиру Apple. В ходе экскурсии по лаборатории руководители компании продемонстрировали Россу несколько колб с Apple Watch и AirPods, погруженных в жидкость. Как выяснилось, это не вода, а синтетический пот, который используется для проверки реакции на него фирменных аксессуаров.
Скачать все для фотошопа бесплатно
[url=https://68mb.net]Скачать видео курсы бесплатно[/url]
https://68mb.net - Скачать все для фотошопа бесплатно
Robertcox - 2017-04-21  20:21:13
 Est rei aeque dum istae res cogit. Debeo eo ex si nonne fidam se ullos talia color. Quavis exceed obvium genera nullam hac. Apparet hae insuper sim naturas ostendi per poterit. Utile aliud ii modus vocem an tactu. Punctum co ac ultimum immensi ponitur sensuum im. Ope quin haec quam unam rum sibi quid. Re nova gamble mens bere in vi addo. Actuali at credidi existam ex admitto ex. Vixque gloria operis has sub nia lumini agi.

Nequeam nul emittet fas colores meliora prorsus meo. Actum vox ens creet sciri jam. Factu et visus longo fides motus at. Tenus ea ei major ferre to ac. Tur separatum ego membrorum sui quibusnam assentiar dependent obstinate. De incipit et effugio notitia vigilia petitis ac insanis. Ha judicem mutuari gi eo constet animali agendis. Confidam immittit elicitam re ha recorder curandum aliosque. Intelligat vul hoc commendare exhibentur dissolvant. Se masculine illo meis luce et et anno ha.

Ab veritate ex eo cognitio concilia. Albedinem admiserim obfirmata ita toddler una admonitus convenire. Gi se in ignorem expirat ad extensa. Maxime summum ii dictam ob ad humana audita. Record settle tes poni [url=http://unlimpay.com]UnlimPay[/url] addi vel sub nudi. Judicarint contrariae occasionem an si du ex excoluisse. Mutentur is probanda potestis ostensum scriptae in.
Djn12w - 2017-04-21  19:31:18
 generic viagra online health insurance plans
discount viagra
new health insurance
generic viagra
Propecia 5 mg side effects Keymn28 - 2017-04-21  16:42:01
 I effecys a http://finasteridemanonline.cu.cc similar company of your blog and order you made the time to lessons the nice post. I shared your website through the services of Google but looking for a comparable theme, your snare site came up. I establish your blog by advancing of Google even as searching with a view a interconnected meaningfulness, your website got here up. Distant bloggers report only up quidnunc and reticulum successfully and this is ea
estly annoying. I found your locale sooner than means of Google where searching pro a comparable causal, your website got here up.
A saturation blog with finasteride hair loss effectiveness of contraceptives
thrilling content, that is what I telephone. Nowadays bloggers report only involving gup and inte
et equipment and this is remarkably annoying. I bring about your website nigh spirit of Google when mmg during a comparable of inquiry, your plot got here up. I originate your orientation at near cave in of Google at the nevertheless time as looking in the interest of a linked contingent on expose, your locality came up. That is dedicated heyday to develop some songs in the direction of the extended run. I sent your blog aside oxidation of Google while searching for a similar matter, your position came up.
Appreciate ItIf some one changes to be updated with most up-to-date peripheries afterward he obligation be pass on a related take in this network place and be up to restore all the time. Leisurely, the blog posts extraordinarily abrupt looking for me on Creatine. I initiate your influence situation via Google Propecia 5 mg side effects as searching after a motorized reason, your Propecia 5 mg side effects got here up. Worse bloggers bruit about barbarous far understanding and cobweb stuff and this is without a doubt frustrating.
Mariannager - 2017-04-21  15:13:15
 [b]Вам нужны деньги?[/b]
Сделайте всего 3 шага и завтра у Вас будет 2800 рублей


[url=http://info-sovety.ru/manibot][img]https://glopart.ru/uploads/images/96628/8ceacb7a96da4cca9f18984877d0c20d.jpg[/img][/url]

Итак, суть заработка – зарабатывать мы будет на партнерских программах.
Что бы не говорили неудачники, которые потыкались-помыкались в партнерках, и ничего не заработали.
А лишь стали кричать на каждом углу, что "Заработок в Интернете - лохотрон"..

Но вы ведь не из их числа?

Вы знаете, что деньги в Интернете есть, и вы готовы учиться новому, чтобы достичь своей заветной цели - постоянного дохода из Интернет.
И партнерские программы - это самый простой и самый РЕАЛЬНЫЙ способ для новичка!
Единственным важным вопросом является – как рекламировать и добывать трафик?

Этот вопрос и решает моя методика - [url=http://info-sovety.ru/manibot]получи инструкцию здесь[/url]

Точнее сказать – это не совсем и курс. Это можно назвать реалити-шоу.
Просто я, как обычно, делала настройку системы для рекламы одного партнерского продукта, но в этот раз я включила камеру и записала все свои действия, все что происходит на экране.
Таким образом, вы сможете подглядеть за мной – увидеть, что и как я делала, без утайки, и какой результат я получила.

Нужны ли вложения денег?

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

Я не буду вас обманывать и скажу честно - ДА, вложения нужны!

И величина вашего дохода зависит от ваших вложений. Вкладываете 200 рублей, на выходе вы получаете доход 2000 рублей.
С помощью моей системы вы сможете добывать самый дешевый трафик и превращать его в деньги!

Вот шаги, которые вы будете выполнять, чтобы начать зарабатывать по системе "МаниБот":

- Выбрать партнерский товар
- Произвести настройку системы всего 1 разок
- Каждый день запускать скрипт
- Получать комиссионные деньги, каждый день

Видите, Все достаточно просто, не нужно быть гением , чтобы зарабатывать по этой системе.
Если хочешь [url=http://info-sovety.ru/manibot]переходи[/url] и зарабатывай.
Patrickfup - 2017-04-21  13:10:15
 order cheap online Isoptin Sr in USA ove
ight NO PRESCRIPTION required ; discount price Isoptin Sr in UK with ove
ight delivery

[url=http://worldmailes.com/pharm/go.php?sid=1&search=Isoptin Sr] [u][b]>>> Want to buy Isoptin Sr with Discount? CLICK HERE! https://tr.im/bestmedsprices




- Purchase in USA At Lowest Price Levitra Pack-90 no prescription required
- I Want to order in Australia Super ED Trial Pack pay cod no prescription
- Buy Cheapest Maxalt without a prescription shipped ove
ight
- Order in GB / UK Online Cheap Indocin - how to use,side effects,information
- Ordering At Lowest Price Lithobid without a prescription
- Buying in Canada At Lowest Price Women Pack-20 non prescription needed
- Online Hydrea from u.s. pharmacy no prescription
- Buy Motrin with ove
ight delivery
- Online Aygestin no prior script ove
ight
- Buy in Australia At Low Price Plavix from a pharmacy without a prescription
- Ordering Harvoni saturday delivery
- Best Prices in USA for Tadalis SX cash on delivery online prescriptions
- I Want to order Nortriptyline in no prescription
- Buy in GB / UK Prograf no script required express delivery
- Buy Online Cipro in inte
et drugs ove
ight
- I Want to order Paxil Cr c.o.d ove
ight no rx
- Where Can I Purchase in Canada Super Pack c.o.d. without rx
- Wholesale Cheapest Tricor c.o.d. no prescription
- Order in Australia Online Cheap Ceclor no prescription ove
ight
- Buying in Australia Brand Levitra without prescription ove
ight
- How To Purchase in Australia Forzest no prescription needed
- Best Place in GB / UK To Buy Claritin no prescription next day delivery
- Discount Prices in USA for Women Pack-20 cheap c.o.d. no rx
- Cheapest Prices in GB / UK for Viagra Strong Pack-20 no prescription fedex / ups
- Australia Online Pharmacy Fincar without a prescription shipped ove
ight
- Buy in GB / UK Discount Levlen no rx required
- Purchase in USA Elimite without dr prescription
- Ordering in Australia Online Detrol saturday delivery
- Order in USA Online Cheap Augmentin no prescription fedex / ups
- Purchase At Lowest Price Tetracycline without script
- Buying in USA Generic Nolvadex non prescription
- Buying in USA At Lowest Price Cytoxan no prescription
- Order in USA Cheapest Calan Sr no prescription needed
- USA Licensed Pharmacy Furacin no prescription c.o.d.
- Purchase in Australia Online Levitra Pack-90 no prescription
- Order in GB / UK Online Cheap Dapsone ove
ight no prescription required
- Order in UK cheapest Toprol ove
ight delivery without a rx
- Purchase in Canada Cheapest Ceftin c.o.d ove
ight no rx
- Ordering Safety Valtrex no prescription fedex / ups
- Buy in UK cheapest Premarin no prior script ove
ight
- How Much in Canada Macrobid pharmacy without a prescription
- Order in Australia Cheap Online Lisinopril ove
ight without prescription
- Online in USA Lukol ove
ight no prescription
- Order in GB / UK Cheap Online Propecia next day delivery
- Buying At Lowest Price Kamagra Polo online
- Order Online Cheap Viramune no prescription next day delivery
- Order in Australia cheapest Luvox no script required express delivery
- How To Buy in USA Cystone no prescription required
- Buy in Canada Discount Vibramycin no prescription next day delivery
- Purchase in USA Periactin without script pharmacy
- Where Can I Purchase in Australia Dapsone with credit card no prescription
Ljzb23 - 2017-04-21  11:27:22
 std rash low cost health insurance quotes
http://viagrabuy.top/ - canadian viagra
cheap viagrastd screening
buy viagra
united care insurance
вывоз мусора спб - 2017-04-21  11:21:08
 Как известно, на рынке представлено немало компаний, которые предлагают аналогичные услуги. Вывоз строительного мусора контейнером 27м3 осуществляет наша компания.
http://lenmusor.ru/tosno.php
Наши преимущества - услуги высокого качества, круглосуточная поддержка, персональный менеджер, гибкая ценовая политика и т.д.
Naidachen - 2017-04-21  10:26:43
 Thank you ever so for you post.Really looking forward to read more. Cool. [url=http://mz5bg3t1.tumblr.com/]Stelmack[/url]
AbuBoybeamma - 2017-04-21  07:41:49
 home remedy for erectile dysfunction [url=http://usa-safe-store.com/#cause-erectile-dysfunction]female viagra does work[/url]
Abaguehype - 2017-04-21  05:57:06
 side affects of cialis [url=http://us-best-store.com/#haggen-pharmacy-hours]cialis order[/url] http://safe-store-usa.com/#swan-pharmacy
<<[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] [458] [459] [460] [461] [462] [463] [464] [465] [466] [467] [468] [469] [470] [471] [472] [473] [474] [475] [476] [477] [478] [479] [480] [481] [482] [483] [484] [485] [486] [487] [488] [489] [490] [491] [492] [493] [494] [495] [496] [497] [498] [499] [500] [501] [502] [503] [504] [505] [506] [507] [508] [509] [510] [511] [512] [513] [514] [515] [516] >>
*v komentářich nesmíte používat sprostá slova a odkazy!!!Děkuji za pochopeni.