remove all client code, add fresh server code

parent 0a5f1794
configuration.php
/* Плагин: сервис опечаток от компании Etersoft
* email: info@etersoft.ru
* автор: barbass@etersoft.ru
* дата: 2012-04-18
*/
//////////////////////////////////////////////////////
window.document.onkeydown = function(e) {
if (e.ctrlKey==1 && e.keyCode == 13) {
ETY.control_panel();
}
}
var ETY = {
time: 0, //время последнего запроса
server_url: "http://eterfund.ru/api/typos/server.php",
select_text: "",
//Выделенный текст
get_select_text: function() {
var text = String(window.getSelection()).trim().substr(0, 50);
if (typeof(text) == 'undefined') {
text = "";
}
return text;
},
control_panel: function() {
if (document.getElementById("e_typos_div").style.display == "block") {
this.close();
} else {
this.div();
ETY.select_text = ETY.get_select_text();
}
},
div: function() {
//Определяем на какой позиции X, Y всплывет элемент
var top = window.pageYOffset + window.innerHeight/3;
var left = window.pageXOffset + window.innerWidth/3;
document.getElementById("e_typos_div").style.top = top + "px";
document.getElementById("e_typos_div").style.left = left + "px";
document.getElementById("e_typos_error").style.display = "none";
document.getElementById("e_typos_comment").value = "";
document.getElementById("e_typos_div").style.display = "block";
},
close: function() {
document.getElementById("e_typos_div").style.display = "none";
},
post_data: function() {
var this_url = window.location.href; //Текущая страница
var post_text;
if (ETY.select_text == "") {
post_text = ETY.get_select_text();
} else {
post_text = ETY.select_text;
}
var new_text = ETY.get_select_text();
if (new_text != ETY.select_text && new_text.length != 0) {
post_text = new_text;
}
//Выделенный текст
var user_comment = document.getElementById("e_typos_comment").value.trim().substr(0, 50);
if (user_comment == '') {
user_comment = "";
}
if (post_text.length == 0) {
this.error("red", "Вы ничего не выделили");
} else if (post_text.length < 5) {
this.error("red", "Выделенный текст слишком короток");
} else if (post_text.length > 30) {
this.error("red", "Выделенный текст слишком длинный");
} else {
ETY.select_text = post_text;
//Ajax-запрос
this.ajax_query(this.server_url, "e_typos_url="+this_url+"&e_typos_comment="+encodeURIComponent(user_comment)+"&e_typos_error_text="+encodeURIComponent(post_text));
}
},
//Отправка запроса
ajax_query: function(url, post_data) {
this.error("black", "Идет отправка данных...");
var XHR = window.XDomainRequest || window.XMLHttpRequest;
request = new XHR;
//Если не поддерживаются кроссдоменные запросы
if (request.withCredentials == undefined) {
var old_url = window.location.href;
newWin = window.open(url+'&e_typos_oldbrowser=1', '_blank');
window.parent.focus();
this.error("green", "Спасибо за ваше внимание");
window.setTimeout('ETY.close()', 2000);
return false;
}
var result = this.timer();
if (result == 0) {
this.error("red", "Не отправляйте данные часто");
return false;
} else {
this.time = this.now_time();
this.set_storage("etersoft_typos/"+window.location.hostname+"", this.time);
}
request.open("POST", url, true);
request.setRequestHeader("Content-type","application/x-www-form-urlencoded");
request.onload = function() {
var response = request.responseText;
switch (response) {
case '10robot':
ETY.error("red", "Есть подозрения что вы робот");
break;
case '10dataerror':
ETY.error("red", "Данные некорректны");
break;
case '10siteerror':
ETY.error("red", "Данный сайт не поддерживается");
break;
case '10emailerror':
ETY.error("red", "Сервер не смог отправить письмо");
break;
case '10win':
ETY.error("green", "Спасибо за ваше внимание");
window.setTimeout('ETY.close()', 2000);
break;
case '10inserterror':
ETY.error("red", "Ошибка добавления данных");
break;
case '10servererror':
ETY.error("red", "На сервере произошла ошибка");
break;
case '10timeerror':
ETY.error("red", "Не отправляйте данные часто");
break;
default:
ETY.error("red", "На сервере произошла ошибка");
break;
}
}
request.onerror = function() {
ETY.error("red", "Ошибка отправки данных. Повторите позже");
this.time = 0;
}
request.send(post_data);
},
error: function(color, text) {
document.getElementById("e_typos_error").style.display = "block";
document.getElementById("e_typos_error").innerHTML = text;
document.getElementById("e_typos_error").style.color = color;
document.getElementById("e_typos_error").style.borderColor = color;
},
text: function(text) {
document.getElementById("e_typos_user_text").style.display = "block";
document.getElementById("e_typos_user_text").innerHTML = "Ваш текст: "+text;
},
timer: function() {
var sec = this.now_time();
var time_s = this.get_storage("etersoft_typos/"+window.location.hostname+"");
if (time_s != 0) {
this.time = time_s;
}
if (this.now_time() - parseFloat(this.time) < 60000) {
return 0;
} else {
return 1;
}
},
now_time: function() {
var day = new Date();
var sec = day.getTime();
return sec;
},
get_storage: function(key) {
if (window['sessionStorage'] != null) {
if (!sessionStorage.getItem(key+"")) {
return 0;
} else {
var data = sessionStorage.getItem(key+"");
return data;
}
} else {
return 0;
}
},
set_storage: function(key, data) {
if (window['sessionStorage'] != null) {
sessionStorage.setItem(key+"", data);
}
}
}
<?php
/*************************************
* Вспомогательные функции:
* - работа с письмами
* - работа с данными сессии
* - получение REQUEST-данных
* - проверка ip и header-ов пользователя
* - валидация данных
* - вывод текста в json-формате
* - работа с url-ми
*************************************/
/*Отправка email-ов*/
function sendMail($subject,$body, $to, $from_email, $from_name, $type = 'plain') {
$headers = "X-PHP-Script: ".$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]." for ".$_SERVER['SERVER_ADDR']."\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Return-path: <".$from_email.">\r\n";
$headers .= "Content-type: text/".$type."; format=flowed; charset=utf-8; reply-type=original\r\n";
$headers .= "Content-Transfer-Encoding: 8bit\r\n";
$headers .= "X-Priority: 3\r\n";
$headers .= "X-MSMail-Priority: Normal\r\n";
$headers .= "X-Mailer: Automatic PHP Script\r\n";
$headers .= "From:".$from_name."<".$from_email.">\r\n";
if (mail($to, $subject, $body, $headers)) {
return true;
} else {
return false;
}
}
/*Формирование списка кому отправлять email-ы*/
function toEmail($data) {
$to = "";
$count = count($data);
for ($i = 0; $i < $count; $i++) {
$to .= $data[$i]['email'];
if ($i < ($count - 1)) {
$to .= ",";
}
}
return $to;
}
/*Проверяем хэдеры на "человечость"*/
function checkHeader() {
if ( empty($_SERVER['HTTP_ACCEPT']) ||
empty($_SERVER['HTTP_ACCEPT_ENCODING']) ||
empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) ||
empty($_SERVER['HTTP_CONNECTION'])
) {
return false;
}
return true;
}
/*Получаем ip*/
function getIp() {
$ip = '';
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} elseif (!empty($_SERVER['REMOTE_ADDR'])) {
$ip = $_SERVER['REMOTE_ADDR'];
} else {
return false;
}
return $ip;
}
/*Выводим массив в json-формате*/
function echoJsonData($data) {
global $userdata;
if ($userdata['old_browser'] == 1) {
echo " <script type='text/javascript'>window.close();</script>";
} else {
echo json_encode($data);
}
return true;
}
/*Устанавливаем данные в сессию*/
function setSession($key, $value) {
$_SESSION[strval($key)] = serialize($value);
}
//Получаем данные из сессии
function getSession($key) {
return (isset($_SESSION[strval($key)])) ? unserialize($_SESSION[strval($key)]) : false;
}
/*Получаем request-данные*/
function getRequest($key = '', $return = false) {
return (isset($_REQUEST[$key])) ? trim($_REQUEST[$key]) : $return;
}
/*Проверка данных*/
function validate() {
global $error, $code_language, $_language;
if (!checkHeader() && !getIp()) {
$error = $_language[$code_language]["error_header"];
return false;
}
if (strlen(rawurldecode(getRequest('url', ''))) <= 0) {
$error = $_language[$code_language]["error_url"];
return false;
}
if (!checkUrl(getRequest('url', ''))) {
$error = $_language[$code_language]["error_valid_url"];
return false;
}
if (strlen(getRequest('text', '')) < 5 || strlen(getRequest('text', '')) > 30) {
$error = sprintf($_language[$code_language]["error_text"], 5, 30, strlen(getRequest('text', '')));
return false;
}
if (strlen(getRequest('comment', '')) > 30) {
$error = sprintf($_language[$code_language]["error_text"], strlen(getRequest('text', '')));
return false;
}
return true;
}
/*Проверка url-а*/
function checkUrl($url = '') {
//удаление опасных сиволов
$url = trim(preg_replace("/[^\x20-\xFF]/","",@strval($url)));
//проверяем УРЛ на правильность
if (!preg_match("~^(?:(?:https?|ftp|telnet)://(?:[a-z0-9_-]{1,32}".
"(?::[a-z0-9_-]{1,32})?@)?)?(?:(?:[a-z0-9-]{1,128}\.)+(?:com|net|".
"org|mil|edu|arpa|gov|biz|info|aero|inc|name|[a-z]{2})|(?!0)(?:(?".
"!0[^.]|255)[0-9]{1,3}\.){3}(?!0|255)[0-9]{1,3})(?:/[a-z0-9.,_@%&".
"?+=\~/-]*)?(?:#[^ '\"&<>]*)?$~i", $url)) {
return false;
}
return true;
}
function getFormatingUrl($url) {
//удаление опасных сиволов
$url = trim(preg_replace("/[^\x20-\xFF]/","",@strval($url)));
//если нет протокола - добавляет http://
if (!strstr($url,"://")) {
$url = "http://".$url;
}
//заменить протокол на нижний регистр: hTtP -> http
$url = preg_replace("~^[a-z]+~ie","strtolower('\\0')", $url);
return $url;
}
?>
<html>
<head>
<meta charset="utf-8" />
</head>
<body>
<style>
#e_typos_div {
border: 1px solid #4169e1;
-moz-user-select: none;
-webkit-user-select: none;
display:none;
z-index:10000;
position:absolute;
font-family: Arial, Sans-Serif;
font-size: 15px;
background-color: white;
padding: 1px 3px 3px 3px;
width:350px;
box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5);
text-align: center;
}
#e_typos_title {
text-align: left;
padding: 0.5em 0.5em 0.5em 1em;
background: #4169e1;
color: white;
margin-top: 2px;
}
#e_typos_close {
cursor: pointer;
opacity: 0.5;
margin-left: 190px;
}
#e_typos_close:hover {
opacity: 1;
}
#e_typos_desc {
font-size: 13px;
}
#e_typos_div input {
font-family: Arial, Sans-Serif;
font-size: 13px;
margin-bottom: 5px;
padding: 3px;
}
#e_typos_error {
display: none;
}
.e_typos_button {
border-radius: 10px;
border: 1px solid #d0d0d0;
background-image: -webkit-linear-gradient(top, rgba(255, 255, 255, 0), rgba(0, 0, 0, 0.2));
background-image: -moz-linear-gradient(top, rgba(255, 255, 255, 0), rgba(0, 0, 0, 0.2));
background-image: -o-linear-gradient(top, rgba(255, 255, 255, 0), rgba(0, 0, 0, 0.2));
background-image: -ms-linear-gradient(top, rgba(255, 255, 255, 0), rgba(0, 0, 0, 0.2));
background-image: linear-gradient(top, rgba(255, 255, 255, 0), rgba(0, 0, 0, 0.2));
background-color:#FFFFFF !important;
}
.e_typos_button:hover {
border: 1px solid #d0d0d0;
background-color:#DDDDDD !important;
border-radius: 10px;
}
</style>
<div id="e_typos_div">
<div id="e_typos_title">
<span>Сервис опечаток</span>
<span title="Закрыть окно" id="e_typos_close" onclick="ETY.close();"><b>х</b></span>
</div>
<p id="e_typos_desc">Выделите текст и нажмите кнопку "Отправить"</p>
<p>
<nobr>Комментарий: <input type="text" id="e_typos_comment" name="e_typos_comment" size='19' maxlength="50" placeholder="Должна быть буква..."/></nobr>
</p>
<p id="e_typos_error"></p>
<p>
<input type="button" title="Отправить сообщение об опечатке" value="Отправить" class="e_typos_button" onclick="ETY.post_data();" />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="button" title="Закрыть окно" value="Закрыть" class="e_typos_button" onclick="ETY.close();" />
</p>
</div>
<div style='white-space: pre;'>
</br>
Ехал грека через реку. Не будет мира вне власти моей. Я тучка, тучка, тучка, я вовсе не медведь</p>
Нажмите Ctrl+Enter
gfhgf fghfghfgjfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgfh<br> fghgfhgfhfghfgfffffffffgfhgf fghfghfgjfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhgf fghfghfgjfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhgf fghfghfgjfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhgf fghfghfgjfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhgf fghfghfgjfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhgf fghfghfgjfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhgf fghfghfgjfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhgf fghfghfgjfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhgf fghfghfgjfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhgf fghfghfgjfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhgf fghfghfgjfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhgf fghfghfgjfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhgf fghfghfgjfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhgf fghfghfgjfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhgf fghfghfgjfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhgf fghfghfgjfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhgf fghfghfgjfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhgf fghfghfgjfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhgf fghfghfgjfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhgf fghfghfgjfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhgf fghfghfgjfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhgf fghfghfgjfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhgf fghfghfgjfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhgf fghfghfgjfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhgf fghfghfgjfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhgf fghfghfgjfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhgf fghfghfgjfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhgf fghfghfgjfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhgf fghfghfgjfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghk
gfhgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgf<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hfggjhfgm,hgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hgfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
h gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
fg<br>gjhfgm,hgv
hgfh
gfv<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hg v
hgfvgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh<br>
g v
hg v vgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gf<br>gfhgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgf<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hfggjhfgm,hgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hgfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
h gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
fg<br>gjhfgm,hg
gfhgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgf<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hfggjhfgm,hgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hgfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
h gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
fg<br>gjhfgm,hg
gfhgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgf<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hfggjhfgm,hgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hgfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
h gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
fg<br>gjhfgm,hg
<p>Ехал грека через реку. Не будет мира вне власти моей. Я тучка, тучка, тучка, я вовсе не медведь</p>
Нажмите Ctrl+Enter
gfhgf fghfghfgjfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgfh<br> fghgfhgfhfghfgfffffffff
gfhgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgf<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hfggjhfgm,hgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hgfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
h gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
fg<br>gjhfgm,hgv
hgfh
gfv<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hg v
hgfvgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh<br>
g v
hg v vgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gf<br>gfhgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgf<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hfggjhfgm,hgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hgfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
h gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
fg<br>gjhfgm,hg
gfhgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgf<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hfggjhfgm,hgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hgfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
h gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
fg<br>gjhfgm,hg
gfhgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgf<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hfggjhfgm,hgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hgfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
h gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
fg<br>gjhfgm,hg<p>Ехал грека через реку. Не будет мира вне власти моей. Я тучка, тучка, тучка, я вовсе не медведь</p>
Нажмите Ctrl+Enter
gfhgf fghfghfgjfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgfh<br> fghgfhgfhfghfgfffffffff
gfhgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgf<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hfggjhfgm,hgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hgfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
h gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
fg<br>gjhfgm,hgv
hgfh
gfv<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hg v
hgfvgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh<br>
g v
hg v vgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gf<br>gfhgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgf<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hfggjhfgm,hgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hgfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
h gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
fg<br>gjhfgm,hg
gfhgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgf<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hfggjhfgm,hgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hgfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
h gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
fg<br>gjhfgm,hg
gfhgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgf<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hfggjhfgm,hgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hgfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
h gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
fg<br>gjhfgm,hg<p>Ехал грека через реку. Не будет мира вне власти моей. Я тучка, тучка, тучка, я вовсе не медведь</p>
Нажмите Ctrl+Enter
gfhgf fghfghfgjfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgfh<br> fghgfhgfhfghfgfffffffff
gfhgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgf<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hfggjhfgm,hgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hgfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
h gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
fg<br>gjhfgm,hgv
hgfh
gfv<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hg v
hgfvgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh<br>
g v
hg v vgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gf<br>gfhgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgf<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hfggjhfgm,hgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hgfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
h gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
fg<br>gjhfgm,hg
gfhgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgf<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hfggjhfgm,hgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hgfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
h gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
fg<br>gjhfgm,hg
gfhgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgf<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hfggjhfgm,hgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hgfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
h gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
fg<br>gjhfgm,hg<p>Ехал грека через реку. Не будет мира вне власти моей. Я тучка, тучка, тучка, я вовсе не медведь</p>
Нажмите Ctrl+Enter
gfhgf fghfghfgjfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgfh<br> fghgfhgfhfghfgfffffffff
gfhgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgf<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hfggjhfgm,hgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hgfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
h gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
fg<br>gjhfgm,hgv
hgfh
gfv<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hg v
hgfvgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh<br>
g v
hg v vgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gf<br>gfhgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgf<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hfggjhfgm,hgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hgfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
h gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
fg<br>gjhfgm,hg
gfhgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgf<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hfggjhfgm,hgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hgfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
h gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
fg<br>gjhfgm,hg
gfhgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgf<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hfggjhfgm,hgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hgfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
h gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
fg<br>gjhfgm,hg<p>Ехал грека через реку. Не будет мира вне власти моей. Я тучка, тучка, тучка, я вовсе не медведь</p>
Нажмите Ctrl+Enter
gfhgf fghfghfgjfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgfh<br> fghgfhgfhfghfgfffffffff
gfhgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgf<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hfggjhfgm,hgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hgfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
h gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
fg<br>gjhfgm,hgv
hgfh
gfv<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hg v
hgfvgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh<br>
g v
hg v vgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gf<br>gfhgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgf<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hfggjhfgm,hgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hgfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
h gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
fg<br>gjhfgm,hg
gfhgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgf<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hfggjhfgm,hgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hgfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
h gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
fg<br>gjhfgm,hg
gfhgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgf<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hfggjhfgm,hgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hgfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
h gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
fg<br>gjhfgm,hg<p>Ехал грека через реку. Не будет мира вне власти моей. Я тучка, тучка, тучка, я вовсе не медведь</p>
Нажмите Ctrl+Enter
gfhgf fghfghfgjfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgfh<br> fghgfhgfhfghfgfffffffff
gfhgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgf<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hfggjhfgm,hgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hgfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
h gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
fg<br>gjhfgm,hgv
hgfh
gfv<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hg v
hgfvgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh<br>
g v
hg v vgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gf<br>gfhgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgf<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hfggjhfgm,hgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hgfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
h gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
fg<br>gjhfgm,hg
gfhgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgf<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hfggjhfgm,hgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hgfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
h gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
fg<br>gjhfgm,hg
gfhgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgf<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hfggjhfgm,hgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hgfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
h gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
fg<br>gjhfgm,hg<p>Ехал грека через реку. Не будет мира вне власти моей. Я тучка, тучка, тучка, я вовсе не медведь</p>
Нажмите Ctrl+Enter
gfhgf fghfghfgjfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgfh<br> fghgfhgfhfghfgfffffffff
gfhgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgf<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hfggjhfgm,hgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hgfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
h gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
fg<br>gjhfgm,hgv
hgfh
gfv<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hg v
hgfvgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh<br>
g v
hg v vgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gf<br>gfhgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgf<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hfggjhfgm,hgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hgfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
h gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
fg<br>gjhfgm,hg
gfhgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgf<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hfggjhfgm,hgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hgfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
h gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
fg<br>gjhfgm,hg
gfhgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgf<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hfggjhfgm,hgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hgfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
h gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
fg<br>gjhfgm,hg<p>Ехал грека через реку. Не будет мира вне власти моей. Я тучка, тучка, тучка, я вовсе не медведь</p>
Нажмите Ctrl+Enter
gfhgf fghfghfgjfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgfh<br> fghgfhgfhfghfgfffffffff
gfhgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgf<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hfggjhfgm,hgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hgfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
h gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
fg<br>gjhfgm,hgv
hgfh
gfv<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hg v
hgfvgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh<br>
g v
hg v vgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gf<br>gfhgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgf<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hfggjhfgm,hgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hgfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
h gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
fg<br>gjhfgm,hg
gfhgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgf<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hfggjhfgm,hgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hgfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
h gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
fg<br>gjhfgm,hg
gfhgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
gfhgf<br>gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hfggjhfgm,hgfhgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
hgfgjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
h gjhfgm,hgfhnfghnlfghlgfhgflhfghklgfhkghkgfhkgfkhhjkgfhklfghjh
fg<br>gjhfgm,hg
</div>
<script src="etersoft_typos.js"></script>
</body>
<?php
/*Языковые сообщения*/
//Error
$_language['ru']['error_time_activity'] = "Вы слишком часто отправляете данные";
$_language['ru']['error_connect_database'] = "Ошибка при подключении к базе данных";
$_language['ru']['error_database'] = "Ошибка при работе с базой данных";
$_language['ru']['error_header'] = "Отсутствуют ip или заголовки ответа";
$_language['ru']['error_url'] = "Отсутствует url сайта";
$_language['ru']['error_valid_url'] = "Не верный формат url-а сайта";
$_language['ru']['error_text'] = "Длина текста должна быть от %s до %s символов (сейчас: %s)";
$_language['ru']['error_comment'] = "Длина комментария должна быть до 30 символов (сейчас: %s)";
$_language['ru']['error_support_site'] = "Сайт не поддерживается";
//Success
$_language['ru']['text_success'] = "Данные сохранены. Спасибо за внимание!";
//Mail
$_language['ru']['mail_subject'] = "Сообщение об опечатке";
$_language['ru']['mail_from'] = "Служба опечаток Etersoft";
$_language['ru']['mail_error'] = "Ошибка при отправлении письма";
$_language['ru']['mail_site'] = "Сайт:";
$_language['ru']['mail_url'] = "Ссылка:";
$_language['ru']['mail_click_url'] = "нажмите";
$_language['ru']['mail_comment'] = "Комментарий:";
$_language['ru']['mail_text'] = "Текст с опечаткой:";
?>
<?php
/* Цель: Скрипт обработки опечаток
* @автор: barbass@
* @дата: 2012-04-24
* автор: barbass@
* дата: 2012-04-24
*/
header('Access-Control-Allow-Origin: *');
require_once('configuration.php');
require_once('functions.php');
require_once('language.php');
/*Начинаем сессию*/
if (!session_id()) {
session_start();
}
/*Если часто отправляет (более 1 в минуту)*/
$last_activity = get_session('last_activity');
if ($last_activity) {
if ((time() - $last_activity) <= 60) {
$ajax_mess = "10timeerror";
print_text($ajax_mess);
/*Определяем переменные*/
$error = '';
$userdata = array(
'url' => '',
'text' => '',
'comment' => '',
'old_browser' => 0
);
$code_language = DEFAULT_LANGUAGE;
/*Определяем какой язык использовать (или же оставляем по-умолчанию)*/
if (in_array(getRequest('language', 'ru'), $LANGUAGES)) {
$code_language = getRequest('language', 'ru');
}
/*Если часто отправляет (более 1 раза в минуту)*/
$last_time_activity = getSession('last_activity');
setSession('last_activity', time());
if ($last_time_activity) {
if ((time() - $last_time_activity) <= MIN_TIME) {
echoJsonData(array('success' => 'false', 'message' => $_language[$code_language]['error_time_activity']));
return;
}
}
/*Подключение к базе данных*/
try {
$DBH = new PDO("mysql:host=$db_host;dbname=$db_name", $db_user, $db_pass, array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''));
$DBH = new PDO(DB_DRIVER.":host=".DB_HOSTNAME.";dbname=".DB_DATABASE, DB_USERNAME, DB_PASSWORD, array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''));
} catch (PDOException $e) {
$ajax_mess = "10servererror";
print_text($ajax_mess);
return;
echoJsonData(array('success' => 'false', 'message' => $_language[$code_language]['error_connect_database']));
return false;
}
////////////////////////////////////////////////////////////////////////
//Проверка данных
if (!check_header() || !get_ip()) {
$ajax_mess = "10robot";
print_text($ajax_mess);
return;
if (!validate()) {
echoJsonData(array('success' => 'false', 'message' => $error));
return false;
}
if (!isset($_REQUEST['e_typos_url']) || !isset($_REQUEST['e_typos_error_text'])) {
$ajax_mess = "10dataerror";
print_text($ajax_mess);
return;
}
if (!isset($_REQUEST['e_typos_comment'])) {
$comment = '';
} else {
$comment = trim(htmlspecialchars(substr(rawurldecode($_REQUEST['e_typos_comment']), 0, 50)));
}
$url = trim(htmlspecialchars(substr($_REQUEST['e_typos_url'], 0, 300)));
$error_text = trim(htmlspecialchars(substr(rawurldecode($_REQUEST['e_typos_error_text']), 0, 30)));
if (!isset($_REQUEST['e_typos_oldbrowser'])) {
$oldbrowser = 0;
} else {
$oldbrowser = intval($_REQUEST['e_typos_oldbrowser']);
}
if ($url == '' || $error_text == '' || strlen($error_text) < 5) {
$ajax_mess = "10dataerror";
print_text($ajax_mess);
return;
}
//TODO - работу со старыми бразуерами будем подерживать или нет? Если будем, то надо доработать работу на стороне сервера (закрытие окна)
$userdata['old_browser'] = getRequest('old_browser', 0);
$userdata['comment'] = htmlspecialchars(rawurldecode(getRequest('comment', '')));
$userdata['url'] = getFormatingUrl(rawurldecode(getRequest('url', '')));
$userdata['text'] = htmlspecialchars(rawurldecode(getRequest('text', '')));
$mas_url = parse_url($url);
if (!isset($mas_url['host'])) {
$ajax_mess = "10dataerror";
print_text($ajax_mess);
/*Парсим сайт для получения коренного сайта*/
$mas_url = parse_url($userdata['url']);
if (!isset($mas_url['host'])) {
echoJsonData(array('success' => 'false', 'message' => $_language[$code_language]["error_valid_url"]));
return;
}
}
////////////////////////////////////////////////////////////////////////
/**********************************
* Основная часть работы:
* - получения данных по сайту
* - сохранение текста с ошибкой
* - отправка писем
**********************************/
////////////////////////////////////////////////////////////////////////
//Достаем номер сайта ?нужно ли? и емайлы пользователей
/*Достаем номер сайта и email-ы пользователей*/
try {
$query_emails = "SELECT r.id_site AS site, u.email AS email
$query_emails = "SELECT r.id_site AS id_site,
u.email AS email
FROM users AS u, responsible AS r
WHERE r.id IN (
SELECT r.id
......@@ -88,151 +87,57 @@ try {
WHERE s.site = ?
AND r.id_site = s.id
AND r.status = '1')
AND r.id_user=u.id";
AND r.id_user = u.id";
$STH = $DBH->prepare($query_emails);
$STH->execute(array($mas_url["host"]));
if ($STH->rowCount() != 0) {
$i = 0;
if ($STH->rowCount() > 0) {
$email_users = array();
while ($row = $STH->fetch(PDO::FETCH_ASSOC)) {
$email_users[$i]['site'] = $row['site'];
$email_users[$i]['email'] = $row['email'];
$i++;
$email_users[] = array(
'id_site' => $row['id_site'],
'email' => $row['email']
);
}
} else {
$email_users = 0;
$email_users = false;
}
} catch (PDOException $e) {
$ajax_mess = "10servererror";
print_text($ajax_mess);
echoJsonData(array('success' => 'false', 'message' => $_language[$code_language]["error_support_site"]));
return;
}
if ($email_users !== 0) {
/*Если активных пользователей за сайт нет, то возвращаем сообщение об ошибке*/
if ($email_users) {
try {
$data = array($email_users[0]['site'], $url, $error_text,$comment, 0);
$STH = $DBH->prepare("INSERT INTO messages (id_site, link, error_text, comment, date, status) VALUES (?, ?, ?, ?, DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s'), ?)");
if(!$STH->execute($data)){
// Ошибка insert-запроса
print_r($STH->errorInfo());
print_text("10inserterror");
return;
}
$data = array('NULL', $email_users[0]['id_site'], $userdata['url'], $userdata['text'], $userdata['comment'], 0);
$STH = $DBH->prepare("INSERT INTO messages (id, id_site, link, error_text, comment, datetime, status) VALUES (?, ?, ?, ?, ?, DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s'), ?)");
$STH->execute($data);
} catch (PDOException $e) {
$ajax_mess = "10inserterror";
print_text($ajax_mess);
echoJsonData(array('success' => 'false', 'message' => $_language[$code_language]['error_database']));
return;
}
if ($comment == '') {
$comment = 'Пользователь не оставил комментарий';
}
$message_email = "<p>".$_language[$code_language]['mail_site']." <a href=".$mas_url["scheme"]."://".$mas_url["host"].">".$mas_url["scheme"]."://".$mas_url["host"]."</a></p>";
$message_email .= "<p>".$_language[$code_language]['mail_url']." <a href=".htmlspecialchars($userdata['url']).">".$_language[$code_language]['mail_click_url']."</a>"." (".$userdata['url'].")"."</p>";
$message_email .= "<p>".$_language[$code_language]['mail_text']." ".htmlspecialchars($userdata['text'])."</p>";
$message_email .= "<p>".$_language[$code_language]['mail_comment']." ".htmlspecialchars($userdata['comment'])."</p>";
$message_email = "<p>Сайт: <a href=".$mas_url["scheme"]."://".$mas_url["host"].">".$mas_url["scheme"]."://".$mas_url["host"]."</a></p>";
$message_email .= "<p>Ссылка: <a href=$url>нажмите</a>"." (".$url.")"."</p>";
$message_email .= "<p>Текст с опечаткой: ".$error_text."</p>";
$message_email .= "<p>Комментарий: ".$comment."</p>";
$subject = '=?utf-8?B?'.base64_encode($_language[$code_language]['mail_subject']).'?=';
$subject = '=?utf-8?B?'.base64_encode("Сообщение об опечатке").'?=';
$to = toEmail($email_users);
$to = to_email($email_users);
/*FIXED какая почта?*/
$from_email = "typos@etersoft.ru";
$from_name = '=?utf-8?B?'.base64_encode("Служба опечаток Etersoft").'?=';
$from_email = EMAIL;
$from_name = '=?utf-8?B?'.base64_encode($_language[$code_language]['mail_from']).'?=';
$result = sendmail($subject, $message_email, $to, $from_email, $from_name, 'html');
if (!$result) {
$ajax_mess = "10emailerror";
print_text($ajax_mess);
if(sendMail($subject, $message_email, $to, $from_email, $from_name, 'html')) {
echoJsonData(array('success' => 'true', 'message' => $_language[$code_language]['text_success']));
return;
} else {
set_session('last_activity', time());
$ajax_mess = "10win";
print_text($ajax_mess);
echoJsonData(array('success' => 'false', 'message' => $_language[$code_language]['mail_error']));
return;
}
} else {
$ajax_mess = "10siteerror";
print_text($ajax_mess);
echoJsonData(array('success' => 'false', 'message' => $_language[$code_language]['error_support_site']));
return;
}
////////////////////////////////////////////////////////////////////////
//Вспомогательные функции
//Отправка email-ов
function sendmail($subject,$body, $to, $from_email, $from_name, $type = 'plain') {
$headers = "X-PHP-Script: ".$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]." for ".$_SERVER['SERVER_ADDR']."\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Return-path: <".$from_email.">\r\n";
$headers .= "Content-type: text/".$type."; format=flowed; charset=utf-8; reply-type=original\r\n";
$headers .= "Content-Transfer-Encoding: 8bit\r\n";
$headers .= "X-Priority: 3\r\n";
$headers .= "X-MSMail-Priority: Normal\r\n";
$headers .= "X-Mailer: Automatic PHP Script\r\n";
$headers .= "From:".$from_name."<".$from_email.">\r\n";
if (mail($to, $subject, $body, $headers)) {
return true;
} else {
return false;
}
}
//Формирование списка кому отправлять email-ы
function to_email($data) {
$to = "";
$count = count($data);
for ($i = 0; $i < $count; $i++) {
$to .= $data[$i]['email'];
if ($i < ($count - 1)) {
$to .= ",";
}
}
return $to;
}
//Проверяем хэдеры на "человечность"
function check_header() {
if ( ($_SERVER['HTTP_ACCEPT'] == '') &&
($_SERVER['HTTP_ACCEPT_ENCODING'] == '') &&
($_SERVER['HTTP_ACCEPT_LANGUAGE'] == '') &&
($_SERVER['HTTP_CONNECTION'] == '')) {
return false;
} else {
return true;
}
}
//Проверяем ip
function get_ip() {
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} elseif (!empty($_SERVER['REMOTE_ADDR'])) {
$ip = $_SERVER['REMOTE_ADDR'];
} else {
$ip = false;
}
return $ip;
}
function print_text($text) {
global $oldbrowser;
echo $text;
if ($oldbrowser == 1) {
echo " <script type='text/javascript'>window.close();</script>";
}
return true;
}
function set_session($key, $value) {
$_SESSION[strval($key)] = serialize($value);
}
function get_session($key) {
if (isset($_SESSION[strval($key)])) {
return unserialize($_SESSION[strval($key)]);
} else {
return false;
}
}
-- phpMyAdmin SQL Dump
-- version 3.3.10
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Дек 25 2012 г., 14:30
-- Версия сервера: 5.1.63
-- Версия PHP: 5.3.18
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- База данных: `barbass_typos_new`
--
-- --------------------------------------------------------
--
-- Структура таблицы `messages`
--
CREATE TABLE IF NOT EXISTS `messages` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_site` int(11) NOT NULL,
`link` text NOT NULL COMMENT 'Ссылка на страницу',
`error_text` varchar(100) NOT NULL COMMENT 'Выделенный текст ',
`comment` varchar(50) DEFAULT NULL COMMENT 'комментарий пользователя',
`date` datetime NOT NULL,
`status` tinyint(1) NOT NULL COMMENT '1: исправлена, 0: нет',
PRIMARY KEY (`id`),
KEY `id_site` (`id_site`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Сообщения' AUTO_INCREMENT=325 ;
-- --------------------------------------------------------
--
-- Структура таблицы `responsible`
--
CREATE TABLE IF NOT EXISTS `responsible` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_site` int(11) NOT NULL,
`id_user` int(11) NOT NULL,
`status` tinyint(1) NOT NULL COMMENT 'Возможность отписать себя с рассылки',
`date` datetime NOT NULL COMMENT 'Дата регистрации пользователя на сайт',
PRIMARY KEY (`id`),
KEY `id_site` (`id_site`),
KEY `id_user` (`id_user`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Зависимость сайтов и ответственных' AUTO_INCREMENT=34 ;
-- --------------------------------------------------------
--
-- Структура таблицы `sites`
--
CREATE TABLE IF NOT EXISTS `sites` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`site` varchar(150) NOT NULL COMMENT 'Формат: mysite.ru',
`date` datetime NOT NULL COMMENT 'Дата регистрации',
PRIMARY KEY (`id`),
UNIQUE KEY `site` (`site`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Список сайтов' AUTO_INCREMENT=46 ;
-- --------------------------------------------------------
--
-- Структура таблицы `users`
--
CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`login` varchar(100) NOT NULL,
`type` enum('admin','user') NOT NULL DEFAULT 'user' COMMENT 'Тип пользователя',
`email` varchar(100) NOT NULL,
`password` varchar(100) NOT NULL,
`firstname` varchar(100) NOT NULL,
`middlename` varchar(100) NOT NULL,
`lastname` varchar(20) NOT NULL,
`activity` enum('1','0') NOT NULL DEFAULT '0' COMMENT 'Активирован аккаунт',
`date` datetime NOT NULL COMMENT 'Дата добавления',
PRIMARY KEY (`id`),
UNIQUE KEY `email` (`email`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Пользователи системы' AUTO_INCREMENT=55 ;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment