» Главная
eXcode.ru » Статьи » Perl
» Новости
» Опросы
» Файлы
» Журнал



Пользователей: 0
Гостей: 8





Форум на Perl.




Автор: Ковязин Дмитрий, P-Lib(p-lib.narod.ru)
Форум.

Форумы в Интернете можно встретить сплошь и рядом.Ни один уважающий себя сайт не обходится без них. Форум дает возможность узнать мнение посетителей о сайте и о том,что они думают об авторе и о его творениях :). Форум,пример которого я здесь приведу не очень сложный,но он обеспечивает все необходимые функции.Для лучшего понимания имеет смысл разбить его на несколько частей,объяснить каждую в отдельности,а затем объединить все вместе.

Данный форум состоит из следующих частей:

* Главная страница-вывод списка топиков.
* Создание нового топика и запись в файл.
* Создание ответа на топик и запись в файл.

Начнем не с главной страницы,потому что она обобщает всю информацию,а с середины-добавления нового топика.

Добавление нового топика.

Сначала в директории cgi-bin веб-сервера создадим каталог html,куда будут записываться все сообщения. Сразу оговорюсь,что все сообщения пишутся в html-файл:сначала топик и сообщение,затем к нему дописываются ответы. По ходу дела все будет понятно.
Сгенерируем форму для добавления новой темы и сообщения.



#!/usr/local/bin/perl
#Webforum.cgi version 1.01
$request=$ENV{′REQUEST_METHOD′};
$content=$ENV{′CONTENT_LENGTH′};

$cgi="url/cgi-bin";
$url="url/cgi-bin/html";
$dir="/usr/local/apache/cgi-bin/html";

print "Content-type:text/htmlnn";
print <<HTML;
<html><head><style>a:link {text-decoration:none; }</style></head><body>
<h4 align=center><font color="0000ff">New topic</font></h4>
<p align=right><a href="$cgi/webforum.cgi"><font face="ferdana" size=3>
Home</font></a>
<p><form action="$cgi/webforum.cgi" name="newtop" method="GET">
<table width=60% align=center bgcolor="e6e8fa">
<tr><td>
<tr><td>Your nick:<td><input type="text" name="nick" size=20>
<tr><td>Topic name:<td><input type="text" name="theme" size=20>
<tr><td><input type="hidden" name="action" value="ok">
<tr><td colspan=2> Message:<p>
<textarea cols=40 rows=15 name="post" wrap="virtual"></textarea>
<tr><td colspan=2><input type="submit" value="Submit"></table>
HTML


Если данные введены в форму получаем их и декодируем.



@pairs = split(/&/, $query);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$name =~ tr/+/ /;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$name =~ s///g;
$name =~ s/<([^>]|n)*>//g;
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s///g;
$value =~ s/</</g;
$value =~ s/>/>/g;
$value =~ s/cM/ /g;
$value =~ s/|/ /g;
$value =~ tr/ / /s;
$value =~ s/<([^>]|n)*>//g;
$value =~ s/"/"/g;
$value=~s/(http://+S)/<A href="$1">$1</A>/g;
$input{$name} = $value;
}

$nick=$input {′nick′};
$theme=$input {′theme′};
$message=$input {′post′};

#Create new topic.


#Открываем каталог и читаем его содержимое. Файлы в каталог записываются в виде #001.html,002.html и т.д.То есть,каждый вновь записываемый файл,увеличивается #на единицу.Это делается следующим образом.


opendir (DIR,"$dir");
while (@mes=readdir (DIR)) {
foreach $mes(@mes) {
$count=@mes;
$count++;
$page="00".($count-2);
}


# ($count-2)-это для того,чтобы не считать подкаталоги типа "." и "..". # Проверяем,не являются ли поля формы пустыми. Если нет-открываем файл на запись # и пишем информацию.


if ($nick ne "" && $theme ne "" && $message ne "") {
open (FILE,">$dir/$page.html");
print FILE "<html><head><style>
a:link {text-decoration:none; } </style><title>$theme</title>n";
print FILE "<meta name="author" content="$nick"></head>n";
print FILE "<body bgcolor="f6f8fa">n";
print FILE "<p align=right><a href="$cgi/webforum.cgi?action=reply&file=$page.html">n";
print FILE "<font face="ferdana" size=3>Post reply</font></a>n";
print FILE " <a href="$cgi/webforum.cgi"><font face="ferdana" size=3>
Home
</font></a><p>n";
print FILE "<table width=90% cellpadding=0 cellspacing=0 border=1>n";
print FILE "<tr><td align=center width=150 bgcolor="D5E6E1"><
font face="Arial" size=2 color="808080">Author</font>n";
print FILE "<td bgcolor="D5E6E1"><font face="serif" size=2 color="0000ff">Topic:</font>n";
print FILE "<font face="serif" size=2 color="ff0000">$theme</font></td></tr>n";
print FILE "<tr><td rowspan=2 bgcolor="D5E6E1" align=center>
<font face="serif" size=3 color="ff0000">$nick</font></td>n";
print FILE "<td bgcolor="e6e8fa" height=30>
<font face="serif" size=1 color="000080">Posted:",scalar localtime,"</font></td></tr>n";
print FILE "<tr><td bgcolor="f7f7f7"><font face="serif" size=2 color="000080">
$message</font></td></tr></table>n";
close (FILE);
} else {


#Если одно из полей формы осталось пустым-выдаем ошибку.Это делается для того,чтобы # не создавать пустые файлы,не содержащие информации.Perl′у все равно,что писать :)


print "Content-type:text/htmlnn";
print <<HTML;
<p>
<p>
vp>
<body bgcolor="e6e8fa">
<h4 align=center>Sorry,you didn′t enter your nick or message! </h4>
<p><center>Please,go back and try again
<p><a href="$cgi/webforum.cgi?action=newtop"><font face="ferdana" size=3>
Back</font></a>
</center>
HTML
exit;
}
}
closedir (DIR);
}


# Если все прошло нормально,выносим пользователю благодарность.Новый топик создан.


print "Content-type:text/htmlnn";
print <<HTML;
<p>
<p>
<p>
<body bgcolor="e6e8fa">
<h4 align=center>Thank you,<font color="0000ff">$nick!</font></h4>
<p><center>Your message is added.
<p><a href="$cgi/webforum.cgi"><font face="ferdana" size=3>
View topics</font></a></center>
HTML
</BODY>
</HTML>
HTML



Добавление ответа на топик.

Добавление ответа почти ничем не отличается от добавления топика,единственное отличие- нужно передать адрес страницы,чтобы скрипт знал,куда писать ответ.А он содержится в файле топика.Если посмотреть чуть выше,можно увидеть ссылку <a href="$cgi/webforum.cgi?action=reply&file=$page.html">Post reply</a> В ней и передается адрес страницы.
Генерируем форму:



# Сначала читаем файл в массив.Это делается для того,чтобы поместить его во фрейм ниже формы # на тот случай,если кто-то захочет вставить цитату из предыдущих сообщений.

$page=$input {′file′};

open (FILE,"$dir/$page");
@data=<FILE>;
close (FILE);

print "Content-type:text/htmlnn";
print <<HTML;
<html><head><style>a:link {text-decoration:none; }</style></head><body>
<h4 align=center><font color="0000ff">Post reply</font></h4>
<p align=right><a href="$cgi/webforum.cgi">
<font face="ferdana" size=3>Home</font></a>
<p><form action="$cgi/webforum.cgi" name="reply" method="GET">
<table width=60% align=center bgcolor="e6e8fa">
<tr><td>
Your nick:<td>vinput type="text" name="nick" size=20>
<tr><td><input type="hidden" name="type" value="reply">
<tr><td><input type="hidden" name="action" value="ok">
<tr><td><input type="hidden" name="file" value="$page">
<tr><td colspan=2> Message:<p>
<textarea cols=40 rows=15 name="post"></textarea>
<tr><td colspan=2><input type="submit" value="Submit"></table>
<p><center><iframe src="$dir/$page" width=90% height=300></iframe></center>
HTML

#Reply to topic.

# Снова проверяем,чтобы поля формы не были пустыми. Если все в порядке,открываем файл, # содержащий топик на добавление и дописываем ответ.


if ($nick ne "" && $message ne "" ) {
open (FILE,">>$dir/$page");
print FILE "<table width=90% cellpadding=0 cellspacing=0 border=1>n";
print FILE "<tr><td rowspan=2 bgcolor="f7f7f7" align=center width=150>
<font face="serif" size=3 color="0000ff">$nick</font></td>n";
print FILE "<td bgcolor="e6e8fa" height=30><font face="serif" size=1 color="000080">
Posted:",scalar localtime,"</font></td></tr>n";
print FILE "<tr><td bgcolor="f7f7f7"><font face="serif" size=2>
$message</td></tr></table>n";
close (FILE);
close (FILE);
} else {

# Если одно из полей осталось пустым-выдаем ошибку.


print "Content-type:text/htmlnn";
print <<HTML;
<p>
<p>
<p>
<body bgcolor="e6e8fa">
<h4 align=center>Sorry,you didn′t enter your nick or message! </h4>
<p><center>Please,go back and try again
<p><a href="$cgi/webforum.cgi?action=reply&file=$page.html">
<font face="ferdana" size=3>Back</font></a>
</center>
HTML
exit;
}

# Снова выносим благодарность посетителю.Ответ добавлен.


print "Content-type:text/htmlnn";
print <<HTML;
<p>
<p>
<p>
<body bgcolor="e6e8fa">
<h4 align=center>Thank you,<font color="0000ff">$nick!</font></h4>
<p><center>Your message is added.
<p><a href="$cgi/webforum.cgi"><font face="ferdana" size=3>
View topics</font></a></center>
HTML
</BODY>
</HTML>
HTML



Главная страница.

Ну вот мы,наконец,добрались и до главной страницы.Она выводит список топиков,дату последнего ответа на каждый топик,количество ответов,имя создателя топика.Она заслуживает отдельного описания.

Данные на экран выводятся в виде html-таблицы.



print "Content-type:text/htmlnn";
print <<HTML;
<html><head><title>Webforum ver1.01</title>
<style>a: {text-decoration:none; } </style></head>
<body bgcolor="e6e8fa">
<p>
<p><h4 align=center><font color="0000ff">Webforum</font></h4>
<p align=right><a href="$cgi/webforum.cgi?action=newtop">
<font face="ferdana" size=3>New topic</font></a>
<p><table width=700 cellpadding=0 cellspacing=0 border=1>
<tr bgcolor="D5E6E1"><td align=center width=300 height=50>
<font face="arial" size=2 color="0000ff">Topic name</font></td>
<td align=center width=150 height=50><font face="arial" size=2 color="0000ff">
Topic starter</font></td>
<td align=center width=50 height=50>
<font face="arial" size=2 color="0000ff">Replies</font></td>
<td align=center width=200 height=50>
<font face="arial" size=2 color="0000ff">Last post</font></td></tr>
HTML

# С этим,думаю,все понятно.А теперь более подробно о том, как получить всю эту информацию. # Открываем каталог и читаем сообщения в массив.


opendir (DIR,"$dir");
while (@mes=readdir(DIR)) {
foreach $mes (@mes) {

# Каждый файл в каталоге открываем и читаем в массив.

if (!-d "$dir/$mes" && "$mes" ne "." && "$mes" ne "..") {
$mtime=localtime((stat("$dir/$mes"))[9]);

open (FILE,"$dir/$mes");
@lines=<FILE>;
close (FILE);

# Теперь в каждом файле с помощью регулярных выражений ищем тему топика,имя автора топика # и количество ответов.


foreach $line (@lines) {
if ($line=~ /<title>(.*?)</title>/is) {
$title=$1;
}
if ($line=~ /content="(.*?)"/is) {
$name=$1;
}

# Количество ответов помещаем в массив reply,отнимая единицу,так как первое сообщение-это # сообщение автора топика.


if ($line=~ /^<table(s*)(.*?)>$/i) {
$reply=$1;
push (@reply,$reply);
$char=@reply-1;
}
}

# Печатаем данные в таблицу,после каждой итерации очищая массив reply,чтобы ответы на # каждый топик не складывались после каждой итерации.


print <<HTML;
<tr bgcolor="f7f7f7"><td height=30><a href="$url/$mes">
<font face="serif" size=2>$title</font></a></td>
<td align=center height=30><font face="serif" size=2>$name</font></td>
<td height=30 align=center>$char</td>
<td height=30 align=center><font face="serif" size=2>$mtime</font></td></tr>
HTML
splice (@reply);
}
}
}

print "</table>n";
closedir (DIR);



Ну вот,вроде бы и все.

Конечно,я не реализовал все возможности.Можно добавить регистрацию пользователя,возможность редактирования сообщений и т.д.В дальнейшем я планирую доработать этот форум и сделать его более продвинутым. В данный момент моей целью было объяснить,как это работает.
К началу статьи





Добавил: MadvEXДата публикации: 2007-04-13 17:45:07
Рейтинг статьи:5.00 [Голосов 1]Кол-во просмотров: 19577

Комментарии читателей

Всего комментариев: 207

2019-01-27 01:51:54
KennethJex
<a href=>купить алкоголь в канистрах спб</a>
Прокуратурой было установлено, что в Интернете на сайте http://alcohol. велась круглосуточная торговля алкогольной продукцией в канистрах по 5 литров. На сайте при этом отсутствовала информация о юридическом лице. Не была размещена и лицензия, позволяющая вести торговлю спиртным.
<a href=><img src="http://sprin-bux.ru/konyak-garling/imgs/12546587-konyak-extra-kupit-eristavi.jpg"></a>
В результате проверки ведомство пришло к выводу, что информация, размещенная на сайте, является запрещенной к распространению на территории РФ. Сайт был заблокирован.
<a href=>алкоголь купить интернет магазин дешево</a>
Крем от геморроя «Здоров» Неизвестный через окно влез в квартиру в Пушкине и украл медали, ордена и коллекцию серебряных монет В Гатчине мужчина украл бутылку дешевого виски, оглушил охранника и сбежал из магазина Двое молодых людей получили огнестрельные ранения головы после ссоры в Приморском районе Петербурга Музеи Северной столицы: куда сходить в Санкт-Петербурге в воскресенье 13 января Машина KIA Яндекс.Такси протаранила железную ограду на Свердловской набережной Петербурга Волейбольный “Зенит” Санкт-Петербурга выиграл у “Енисея” из Красноярска со счетом 3:0 Житель Красногвардейского района Петербурга снял с воздуха автобус на Заневском, сбивший заграждения (видео) На границе США и Мексики нашли тайный туннель — уже третий за последний месяц Более 200 протестующих задержаны в Париже: полиция использовала слезоточивый газ Санкт-Петербург ждет пасмурное воскресенье и новый снегопад ближе к вечеру 13 января Украинский полковник признал беспомощность собственной армии.
<a href=><img src="http://i.ytimg.com/vi/TNEV5WtcQes/hqdefault.jpg"></a>
<a href=>вино в канистрах купить в спб</a>
Вот это достижение! Откроют другой сайт.Делов то.
<a href=>вино в канистрах купить в спб</a> - Алкоголь в канистрах в спб.
<a href=><img src="http://u3.good.ua/img/original/345203/prodam-kanistry-plastmassovye-bu-20-litrov.jpg"></a>
Для добавления комментария требуется авторизоваться на сайте.

2019-01-20 20:07:19
KennethJex
<a href=>магазин алкоголя в спб</a>
2.4. В случае утраты, кражи или повреждения Карты О’КЕЙ Участник обязан сообщить об этом Организатору по телефону Горячей линии Программы или оставить соответствующее заявление сотрудникам магазина О’КЕЙ. После получения сообщения Организатор производит блокировку такой Карты О’КЕЙ, а Участник вправе бесплатно получить новую Карту О’КЕЙ с сохранением на ней имеющейся информации. Замена утраченной Карты О’КЕЙ осуществляется в течение 30 (тридцати) рабочих дней с даты получения сообщения об утрате Карты О’КЕЙ. Организатор не несет ответственности за несанкционированное использование третьими лицами Карты О’КЕЙ до ее блокировки. Блокирование и бесплатная замена утраченной Карты О’КЕЙ, предусмотренные настоящим пунктом, возможны при условии, что Участник своевременно заполнил Анкету достоверными сведениями о себе и давал согласие на обработку персональных данных при оформлении Карты О’КЕЙ.
<a href=><img src="http://xn--80aaa0cvac.xn--90acjmnnc1hybf.su/media/advert_images/Black_label_дубликаты_алкоголя_оптом_89250744406.jpg.500x350_q85_crop.jpg"></a>
2.5. Организатор вправе прекратить участие в Программе любого Участника и заблокировать Карту О’КЕЙ без уведомления в любом из следующих случаев:
<a href=>заказать алкоголь на дом спб</a>
· Участник не соблюдает настоящие Условия, а также условия акций и иных предложений Программы О’КЕЙ, обязательным требованием участия в которых является владение картой О’КЕЙ;
<a href=><img src="http://easycocktailrecipe.com/wp-content/uploads/2014/02/how-to-drink-scotch-660x330.jpg"></a>
<a href=>алкоголь в канистрах спб</a>
· Участник совершил или намеревается совершить действия, расцениваемые Организатором как мошеннические, обманные или иные противоправные действия, которые повлекли или могут повлечь за собой материальные, нематериальные и прочие неблагоприятные последствия как для Организатора, так и для самого Участника или иных Участников, а также любого третьего лица;
<a href=>алкоголь в канистрах спб</a> - Алкоголь в канистрах в спб.
<a href=><img src="http://sprin-bux.ru/kupit-konyak-br/imgs/15714670-horoshee-nedorogoe-polusladkoe-vino-horoshee.jpg"></a>
· Участник злоупотребляет какими-либо правами, предоставляемыми Участнику в рамках Программы;

2019-01-09 13:12:57
OrenAvt0dat
<a href=https://avtomix56.ru/evakuator/>эвакуатор оренбург цена за км</a>
Быстрая и качественная грузоперевозка от нашей транспортной компании Оренбурга &quot,Автоальянс&quot,. Доставляем груз в сроки.
<a href=https://avtomix56.ru/evakuator/><img src="http://bodoon.ru/upload/normal/prodam_gazel_passazhirskaya_14556.jpg"></a>
Грузоперевозки в Оренбурге недорого. Срочная и надежная доставка всех видов грузов по Оренбургу и области. Обширный автопарк техники «Газель». Профессиональная команда водителей, грузчиков и экспедиторов. Выгодные тарифы на услуги.
<a href=https://avtomix56.ru/evakuator/>эвакуатороренбургнедорого</a>
<h1>Транспортные компании оренбурга</h1> Ваша заявка получена. Теперь нужно чуть-чуть подождать. В течении 1 часа наш логист подберет наиболее выгодный тариф и позвонит Вам. Ваша заявка получена. Теперь нужно чуть-чуть подождать. В течении 1 часа наш логист подберет наиболее выгодный тариф и позвонит Вам. НАШИ СЕРВИСЫ. График работы представительств в праздничные дни (23 февраля и 8 марта) Уважаемые Клиенты! Ознакомьтесь с графиком работы представительств в праздничные дни (23 февраля и 8 марта) Возобновлена доставка грузов до города Нарьян-Мар. В связи с открытием зимника возобновлена доставка грузов автотранспортом до города Нарьян-Мар. Груз, находящийся в представительстве города Архангельск, будет отправляться по графику: еженедельно, каждую пятницу. Тендер на поставку ИТ-оборудования. Транспортная компания «КИТ» объявляет тендер на поставку системных блоков и мониторов. Бесплатное перемещение груза между терминалами в г. Екатеринбург. Для Вашего удобства, груз, пришедший на склад Екатеринбург-Юг (ул. 8 Марта, 269), теперь может быть бесплатно перемещен на терминалы Екатеринбург-Запад (ул. Маневровая, 41) и Екатеринбург-Север (пр. Космонавтов, 11) для выдачи. Увеличение сроков забора и доставки груза в г. Москва и г. Казань. В связи с неблагоприятными погодными условиями в г. Москва и г. Казань возможно увеличение сроков забора и доставки груза. Приносим извинения за доставленные неудобства. Гарантируем перевозку груза в указанные сроки."> Перевозки из Москвы в Сибирь еще быстрее! Гарантируем перевозку груза в указанные сроки. - ежедневно из Москвы в Новосибирск, Томск, Кемерово, Новокузнецк, Барнаул - за 4 дня.
<a href=https://avtomix56.ru/evakuator/><img src="http://gazel-time.ru/uploads/posts/2016/1/kuplju-staruju-gazel-1.jpg"></a>
<a href=https://avtomix56.ru/evakuator/>эвакуаторы оренбурга</a>
Транспортировка груза в Оренбурге и , доставка груза, найти транспорт для переезда на orenburg.buyreklama.com
https://avtomix56 - Заказать Газель дешево по Оренбургу и области от 400 руб
<a href=https://avtomix56.ru/evakuator/><img src="http://realguy.ru/wp-content/uploads/Nuzhen-li-tahograf-na-Gazel...jpg"></a>
Грузоперевозки от 300 руб., заказ газели от 290 руб., грузчики от 80 руб., лояльные цены, хорошие отзывы, 61-0000 телефон в Оренбурге

2019-01-02 15:42:35
AnnaPycle
<a href=https://child-blog.ru/children/vybor-imeni/kak-nazvat-rebenka-s-24-sentyabrya-po-23-oktyabrya-2018-g-po-svyattsam.html>имя мальчику рожденному в декабре</a>
Третий триместр.
<a href=https://child-blog.ru/beremennost/problemy/tonus-matki-pri-beremennosti-simptomy-i-prichiny.html><img src="http://diet-clinica.ru/images/do_goda_iskuss.jpg"></a>
Беременность по месяцам.
<a href=https://child-blog.ru/children/newborn-care/aptechka-dlya-novorozhdennogo-rebenka.html>аптечка новорожденного</a>
Как только вы забеременеете, ваш малыш начнет расти и из совсем микроскопического зародыша за несколько месяцев превратится в карапуза ростом около полуметра. Темпы его роста во много раз превышают ваши темпы роста во время беременности.
<a href=https://child-blog.ru/rody/chto-vzyat-s-soboj-v-roddom-polnyj-spisok-samogo-neobhodimogo.html><img src="http://detkuuchim.ucoz.ru/vospitaniereben/vospitanie_rebenka.jpg"></a>
<a href=https://child-blog.ru/rody/chto-vzyat-s-soboj-v-roddom-polnyj-spisok-samogo-neobhodimogo.html>что с собой взять в роддом</a>
Если вам не интересно читать о развитии малыша по неделям, то ниже — экспресс-обзор процессов, проходящих в организме ребенка по месяцам. Здесь мы совсем не будем затрагивать аспекты, касающиеся будущей мамы.
https://child-blog.ru - Беременность, роды, мама и дети. Календарь беременности по неделям
<a href=https://child-blog.ru/beremennost/kalendar-beremennosti/12-nedelya-beremennosti.html><img src="http://www.babylessons.ru/wp-content/uploads/2009/08/7.jpg"></a>
1-ый месяц беременности.

2018-12-20 19:41:39
GeliaVor
Мы платим за лайки! - Выплаты по требованию!

Наш сервис предоставляет настоящие лайки на фото заказчиков, которые готовы платить за качество.

Именно для этого мы и набираем удалённых сотрудников, которые будут выполнять работу, то есть ставить лайки и получить за это деньги.

Чтобы стать нашим удалённым сотрудником и начать ставить лайки, зарабатывая при этом 45 рублей за 1 поставленный лайк,

Вам достаточно просто зарегистрироваться на нашем сервисе.

Ознакомьтесь с правилами и условиями на нашем блоге: > <a href=http://like-money.ru>www.like-money.ru</a> <

Вывод заработанных средств ежедневно в течении нескольких минут.

2018-12-08 08:06:02
AnnaFub

Очень понравился сеанс с гадалкой Раисой. Я то обратилась с более-менее легким вопросом, хотела чтобы погадали на картах таро Никогда не видела чтобы так точно гадали на картах таро. Все предсказания сбылись. Рекомендую всем 8914706-95-63

2018-11-01 17:32:49
Nrnexjc
Пройдите 1 регистрацию, сделайте 2 действия
и получайте от 8950 рублей каждые сутки в автоматическом режиме.

Мы гарантируем:
- Первый заработок в течении 60 минут.
- Стабильный доход 24 часа в сутки.
- Поступление денег без задержек.
- Для России, стран СНГ и Европы.
- Без вложений и установки ПО.
- Специально для новичков и людей без опыта.

Более подробная информация у нас на блоге: > https://prostowmr.blogspot.com/ <

2018-11-01 12:39:27
GeliaVor
Мы платим за лайки! - Выплаты ежедневно!

Наш сервис предоставляет настоящие лайки на фотографии заказчиков, которые готовы платить за качество.

Именно для этого мы и набираем удалённых сотрудников, которые будут выполнять работу, то есть ставить лайки и получить за это деньги.

Чтобы стать нашим удалённым сотрудником и начать ставить лайки, зарабатывая при этом 45 рублей за 1 поставленный лайк,

Вам достаточно просто зарегистрироваться на нашем сервисе.

Ознакомьтесь с правилами и условиями на нашем блоге: > https://optimdoxod.blogspot.com/ <

Вывод заработанных средств ежедневно в течении нескольких минут.

2018-11-01 09:04:57
GeliaVor
Платим за лайки! - Оплата сдельная!

Наш сервис предоставляет настоящие лайки на фото заказчиков, которые готовы платить за качество.

Именно для этого мы и набираем удалённых сотрудников, которые будут выполнять работу, то есть ставить лайки и зарабатывать за это деньги.

Чтобы стать нашим удалённым сотрудником и начать ставить лайки, зарабатывая при этом 45 рублей за 1 поставленный лайк,

достаточно просто зарегистрироваться на нашем сервисе.

Ознакомьтесь с правилами и условиями на нашем блоге: > https://optimdoxod.blogspot.com/ <

Вывод заработанных средств ежедневно в течении нескольких минут.

2018-09-11 11:34:25
CharlesVes
Лекарства со всего света для вас

<a href=https://apteka-onko.ru/product-category/effektivnye-sredstva-lecheniya-raka/>зелбораф вемурафениб 44</a>
<a href=https://apteka-onko.ru/product-category/effektivnye-sredstva-lecheniya-raka/>имбрувика</a>
<a href=https://apteka-onko.ru/product-category/effektivnye-sredstva-lecheniya-raka/>тайверб цена</a>


<a href=https://apteka-onko.ru/product-category/effektivnye-sredstva-lecheniya-raka/>дженерик ибрутиниб</a>
<a href=https://apteka-onko.ru/product-category/effektivnye-sredstva-lecheniya-raka/>линпарза олапариб цена</a>
<a href=https://apteka-onko.ru/product-category/effektivnye-sredstva-lecheniya-raka/>капрелса купить</a>
Ваше имя: *
Текст записи: *
Имя:

Пароль:



Регистрация

Какую музыку вы предпочитаете?
Techno
11% (29)
Rap
10% (26)
Rock
48% (126)
Trance
10% (27)
Pop
7% (17)
house
5% (13)
Классическую
7% (19)
Я не слушаю музыку
2% (4)

Проголосовало: 261
Если программист идет в 3 часа дня на работу, то он в отпуске.
Рейтинг: 6.8/10 (6)
Посмотреть все анекдоты