| include('config.inc'); /* укажем, что данные должны передаться скрипту из формы... иначе можно было бы отправить сообщение примерно таким образом: http://myhost.ru/gb/gbadd.php?name=admine&email=you@#admin.com&guesttext=message_have_been_posted спасибо CompDocs */ $name=$_POST['name']; $email=$_POST['email']; $guesttext=$_POST['guesttext']; if ($name !="" and $guesttext !="") { $date=date('d.m.Y'); $time=date('H:i'); // заменяем двоеточия $guesttext = ereg_replace(":::",":::",$guesttext); $name = ereg_replace(":::",":::",$name); $email = ereg_replace(":::",":::",$email); // разрешим только шрифты, картинки и списки // теги как украшение $guesttext = ereg_replace("<", "<", $guesttext); $guesttext = ereg_replace(">", ">", $guesttext); $name = ereg_replace("<", "<", $name); $name = ereg_replace(">", ">", $name); $email = ereg_replace("<", "<", $email); $email = ereg_replace(">", ">", $email); // нет кавычкам! 2=DeaD= thanX! $name = ereg_replace("\"", """, $name); $email = ereg_replace("\"", """, $email); $guesttext = ereg_replace("\"", """, $guesttext); // удаление лишних пробелов // в центре $guesttext=ereg_replace(" +"," ",$guesttext); $name=ereg_replace(" +"," ",$name); $email=ereg_replace(" +"," ",$email); //cправа и слева $name=trim($name); $email=trim($email); $guesttext=trim($guesttext); // перевод строки $guesttext = ereg_replace("\n", " ", $guesttext); // чтобы весь текст был на одной строке! $guesttext = ereg_replace("\r", "", $guesttext); // мегакавычки $name = stripslashes($name); $email = stripslashes($email); $guesttext= stripslashes($guesttext); // правильные тире $guesttext = preg_replace ("/[ ]{1,}-[ ]{1,}/", " — ", $guesttext); $guesttext = preg_replace ("/^- /", "— ", $guesttext); // число-число $guesttext = preg_replace ("/(\d)-(\d)/", "\\1–\\2", $guesttext); // слова с дефисом $guesttext = preg_replace ("/(\S+)-(\S+)/", "\\1-\\2", $guesttext); // частицы и предлоги $guesttext = preg_replace ("/([А-Яа-яA-Za-z]) (ли|ль|же|ж|бы|б)([^А-Яа-яA-Za-z])/", '\\1 \\2\\3', $guesttext); $guesttext = preg_replace ("/(\s)([А-Яа-я]{1})\s/", '\\1\\2 ', $guesttext); // A.C. Пушкин $guesttext = preg_replace ("/([А-ЯA-Z])([\. ]{1})[ ]{0,1}([А-ЯA-Z])([\. ]{1})[ ]{0,1}([А-ЯA-Z][А-Яа-яA-Za-z]*)/", '\\1. \\3. \\5', $guesttext); // Пушкин А. С. $guesttext = preg_replace ("/([А-ЯA-Z][А-Яа-яA-Za-z]*) ([А-ЯA-Z])[\. ]{1}[ ]{0,1}([А-ЯA-Z])\.([,\ )]{1})/", '\\1 \\2. \\3.\\4', $guesttext); // преобразовываем адреса в ссылки! $guesttext = eregi_replace("([_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3}))", "\\0", $guesttext); $guesttext = eregi_replace("((ht|f)tp://www\.|www\.)([a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})((/|\?)[a-z0-9~#%&\\/'_\+=:\?\.-]*)*)", "http://www.\\3", $guesttext); $guesttext = eregi_replace("((ht|f)tp://)((([a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3}))|(([0-9]{1,3}\.){3}([0-9]{1,3})))((/|\?)[a-z0-9~#%&'_\+=:\?\.-]*)*)", "\\0", $guesttext); // делаем "обрезание" слишком большого куска информации $name=substr($name,0,$name_max_size); $email=substr($email,0,$email_max_size); $guesttext=substr($guesttext,0,$message_max_size); // BBcodes $guesttext = ereg_replace("\[b\]", "", $guesttext); $guesttext = ereg_replace("\[\/b\]", "", $guesttext); $guesttext = ereg_replace("\[i\]", "", $guesttext); $guesttext = ereg_replace("\[\/i\]", "", $guesttext); $guesttext = ereg_replace("\[u\]", "", $guesttext); $guesttext = ereg_replace("\[\/u\]", "", $guesttext); $guesttext = ereg_replace("\[red\]", "", $guesttext); $guesttext = ereg_replace("\[\/red\]", " ", $guesttext); $guesttext = ereg_replace("\[green\]", "", $guesttext); $guesttext = ereg_replace("\[\/green\]", " ", $guesttext); $guesttext = ereg_replace("\[blue\]", "", $guesttext); $guesttext = ereg_replace("\[\/blue\]", " ", $guesttext); $guesttext = ereg_replace("\[yellow\]", "", $guesttext); $guesttext = ereg_replace("\[\/yellow\]", " ", $guesttext); // отправка сообщения на мой электронный адрес // сообщение $message .="".$date.", ".$time." \n"; $message .="Имя: ".$name.", e-mail: ".$email."\nСообщение\n"; $message .="".$guesttext."\n "; $message .="----------\r\n"; $message .="Сообщение из гостевой книги"; // заголовки $headers .="From: $site_name <$recipient>\n"; $headers .="X-Mailer: Pseon’s Guestbook\n"; $headers .="X-Priority: 1\n"; $headers .="Content-Type: text/plain; charset=windows-1251\n"; // отправляем все нафиг! mail($recipient, $subject, $message, $headers); $msg="$name:::$email:::$date:::$time:::$guesttext "; $lines = file("guestbook.inc.dat"); $fp = fopen("guestbook.inc.dat", "w"); fwrite($fp, "$msg\n"); for ($i = 0; $i < count($lines); $i++) { @fwrite($fp, "$lines[$i]"); } fclose($fp); clearstatcache(); } // если не удалось, отсылаем его обратно! else { header("Location: gb.php"); } ?> |