include "config.php"; $shapka="
"; if (isset($_GET['image'])) { // Функция с цифрами защиты $st="R0lGODlhCgAMAIABAFNTU////yH5BAEAAAEALAAAAAAKAAwAAAI"; // общая часть для всех рисунков function imgwr($st,$num){ if ($num=="0") {$len="63"; $number=$st."WjIFgi6e+QpMP0jin1bfv2nFaBlJaAQA7";} if ($num=="1") {$len="61"; $number=$st."UjA1wG8noXlJsUnlrXhE/+DXb0RUAOw==";} if ($num=="2") {$len="64"; $number=$st."XjIFgi6e+QpMPRlbjvFtnfFnchyVJUAAAOw==";} if ($num=="3") {$len="64"; $number=$st."XjIFgi6e+Qovs0RkTzXbj+3yTJnUlVgAAOw==";} if ($num=="4") {$len="64"; $number=$st."XjA9wG8mWFIty0amczbVJDVHg9oSlZxQAOw==";} if ($num=="5") {$len="63"; $number=$st."WTIAJdsuPHovSKGoprhs67mzaJypMAQA7";} if ($num=="6") {$len="63"; $number=$st."WjIFoB6vxmFw0pfpihI3jOW1at3FRAQA7";} if ($num=="7") {$len="61"; $number=$st."UDI4Xy6vtAIzTyPpg1ndu9oEdNxUAOw==";} if ($num=="8") {$len="63"; $number=$st."WjIFgi6e+QpMP2slSpJbn7mFeWDlYAQA7";} if ($num=="9") {$len="64"; $number=$st."XjIFgi6e+QpMP0jinvbT2FGGPxmlkohUAOw==";} header("Content-type: image/gif"); header("Content-length: $len"); echo base64_decode($number); } // Вывод изображений на экран (все кодированы - робот не пройдёт) if (array_key_exists("image", $_REQUEST)) { $num=$_REQUEST["image"]; for ($i=0; $i<10; $i++) {if (md5($i+$absrand)==$num) {imgwr($st,$i); die();}} } exit;} // Событие добавления сообщения if $event=add if (isset($_GET['event'])) { if ($_GET['event']=="add") { // возвращаем значения данных из формы и присваиваем их переменным if (isset ($_POST['name']) & isset ($_POST['msg']) & isset ($_POST['email'])) {$name=$_POST['name']; $msg=$_POST['msg']; $email=$_POST['email'];} else {exit;} sleep(1); // мелкая защита от БОТОВ. Человеку секунда не время - а прога по подбору ключа - будет работать долго и не загружать сервер if ($antispam!="0") { $bada="$shapka $back Введённый вами код НЕ верен!"; if (isset($_POST['usernum'])) {$usernum=$_POST['usernum'];} else {print"$bada"; exit;} if (isset($_POST['xkey'])) {$xkey=$_POST['xkey'];} else {print"$bada"; exit;} $userkey=md5("$usernum+$absrand"); if ($userkey!=$xkey) {print"$bada"; exit;}} if ($name == "" || strlen($name) > $maxname) {print "$shapka $back ваше имя или пустое, или превышает $maxname символов!"; exit;} if ($msg == "" || strlen($msg) > $maxmsg) {print "$shapka $back ваше сообщение или пустое или превышает $maxmsg символов."; exit;} if (!eregi("^([0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-wyz][a-z](fo|g|l|m|mes|o|op|pa|ro|seum|t|u|v|z)?)$", $email) and $email != "") {print "$shapka $back и введите корректный E-mail адрес!"; exit;} $msg=str_replace("|","I",$msg); $name=wordwrap($name,24,' ',1); // разрываем слишком длинные строки $msg=wordwrap($msg,75,' ',1); $today=mktime(); // производим запись данных в файл по шаблону: собщение|имя|емайл|дата|время|МКТАЙМ| $text="$msg|$name|$email|$date|$time|$today|"; $text=str_replace(" ",' ',$text); $text=str_replace("&",'&',$text); $text=str_replace(">",'>',$text); $text=str_replace("<",'<',$text); $text=str_replace("\"",'"',$text); $text=preg_replace("/\n\n/",'',$text);
$text=preg_replace("/\n/",'
',$text);
$text=preg_replace("/\\\$/",'$',$text);
$text=preg_replace("/\r/",'',$text);
$text=stripslashes($text);
$text=preg_replace("/\\\/",'\',$text);
$text=str_replace("\r\n","
",$text);
$text=str_replace("\n\n",'
',$text);
$text=str_replace("\n",'
',$text);
// Вырезаем 3 и более ентеров
do {$text=str_replace("
","
",$text);} while (preg_match("/
/i",$text));
// Вырезаем 3 и более пробелов подряд
do {$text=str_replace(" "," ",$text);} while (preg_match("/ /i",$text));
$text=str_replace("\t",' ',$text);
$text=str_replace("\r",' ',$text);
$text=str_replace(' ',' ',$text);
if ($antiflud=="1") { // функция АНТИФЛУД здесь!
$linesn = file("guest.dat"); $in=count($linesn);
if ($in > 0) {
$lines=file("guest.dat"); $i=count($lines)-1; $itogo=$i; $dtf=explode("|",$lines[$i]);
$txtback="$dtf[0]|$dtf[1]|$dtf[2]|$dtf[3]|"; $lastmsg=$dtf[5];
$dtb=explode("|",$text);
$txtflud="$dtb[0]|$dtb[1]|$dtb[2]|$dtb[3]|";
$today=mktime();
if (($lastmsg+30)>$today) {
$eshe=($lastmsg+30)-$today; print"$back Чаще 30 секунд запрещено размещать сообщения. Подождите ещё $eshe секунд!"; exit;}
if ($txtflud==$txtback) {print"$back Данное сообщение уже размещено. Флудить в гостевой запрещено!"; exit;} }
}
$fp=fopen("guest.dat","a+");
flock ($fp,LOCK_EX);
fputs($fp,"$text\r\n");
flock ($fp,LOCK_UN);
fclose($fp);
@chmod("guest.dat", 0644);
if ($sendmail=="1") { // отправка сообщения админу на мыло
$headers=null;
$headers.="Content-Type: text/plain; charset=windows-1251\r\n";
$headers.="From: ".$name." <".$email.">\r\n";
$headers.="X-Mailer: PHP/".phpversion()."\r\n";
// Собираем всю информацию в теле письма
$host=$_SERVER["HTTP_HOST"]; $self=$_SERVER["PHP_SELF"];
$allmsg = $gname.chr(13).chr(10).'Новое сообщение в гостевой: http://'.$host.$self.chr(13).chr(10).'Имя: '.$name.chr(13).chr(10).'E-mail: '.$email.chr(13).chr(10).'Сообщение: '.$msg.chr(13).chr(10);
mail("$adminemail", "$gname (сообщение)", $allmsg, $headers); // Отправляем письмо майлеру на съедение ;-)
}
print "$shapka
|
Сегодня $date | Оставить комментарий | Назад |
$dt[1] ($dt[3] $dt[4])
$num |