Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Perl, PHP: отправка формы на e-mail

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

noki



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
<?
 
function checkmail($str)
{
$badchars = "[ ]+| |\+|=|[|]|{|}|`|\(|\)|,|;|:|!|<|>|%|\*|/|'|\"|~|\?|#|\\$|\\&|\\^|www[.]";
 
return (eregi($badchars,$str));
}
 
function headerconv ($str)
{
$str = trim($str);
$str = stripslashes($str);
 
return $str;
}
 
function htmlconv ($str)
{
 
     if (get_magic_quotes_gpc):
 
     $str = stripslashes($str);
 
     endif;
 
$str = str_replace("\"", "&quot;", $str);
$str = str_replace("<","&lt;",$str);
$str = str_replace(">","&gt;",$str);
$str = str_replace("\r\n", "\n", $str);
$str = str_replace("\r", "\n", $str);
$str = str_replace("\n", "<br>", $str);
$str = str_replace("\$", "&#36;", $str);
$str = str_replace("|", "/", $str);
$str = eregi_replace("(<br>*){2,}","<br><br>",$str);
$str = eregi_replace("[ ]{2,}", " ", $str);
$str = trim($str);
 
return $str;
}
 
include ("config.inc");
 
if ($config[inc_headers] == "on"):
 
include ($config[header]);
 
endif;
 
if ($action != "send"):
 
include ("./form.inc");
 
else:
 
     if ($form[familia] == "" || $form[name] == "" || $form[otchestvo] == "" || $form[day] == "" || $form[month] == "" || $form[year] == "" || $form[cityday] == "" || $form[stranaday] == "" || $form[pol] == "" || $form[educate] == "" || $form[foto] == "" || $form[pochadress] == "" || $form[email] == "" || $form[semia] == "" || $form[deti] == ""):
 
     $errorheader = "<p class=\"T\"><b>СООБЩЕНИЕ НЕ ОТПРАВЛЕНО!</b></p>";
     $errormessage = "<p class=\"T\">Не были заполнены следующие обязательные поля:</p>";
     $errormessage .= "<ol>";
 
<-------------------------------------------------->
          if ($form[foto] == ""): $errormessage .= "<li><p class=\"T\">Ваша Фотография отсутствует</p></li>"; endif;
          <------------------------------->
 
endif;
          
 
     $errormessage .= "</ol>";
     $errormessage .= "<p class=\"T\">Пожалуйста, вернитесь назад и попробуйте снова.</p>";
 
     include ("./error.inc");
 
     else:
 
     $header[familia]  = headerconv($form[familia]);
     $header[name] = headerconv($form[name]);
 
     <---------------------------------->
     $form[foto] = htmlconv($form[foto]);
    <--------------------------------------->
 
          if (!(eregi("([a-z0-9_\-\.])+@([a-z0-9_\-\.])+\.([a-z0-9_\-\.])+",$form[email])) || checkmail($form[email])):
 
          $errorheader = "<p class=\"T\"><b>СООБЩЕНИЕ НЕ ОТПРАВЛЕНО!</b></p>";
          $errormessage  = "<p class=\"T\">Введенный вами адрес E-Mail (".$form[email].") содержит
          недопустимые символы или имеет неправильный формат.</p>";
          $errormessage .= "<p class=\"T\">Пожалуйста, вернитесь назад и попробуйте снова.</p>";
 
          include ("./error.inc");
 
          else:
 
          $contents = file($config[recip_file]);
          $numlines = sizeof($contents);
 
                for ($i=0;$i<$numlines;$i++) {
                $contents[$i] = explode("|",$contents[$i]);
                }
 
          $form[send_to] = $contents[$form[recip]-1][1]."<".$contents[$form[recip]-1][0].">";
 
                 if ($form[sendcopy] == "on"):
 
                 $form[send_to]  = $form[send_to] . ", ";
                 $form[send_to] .= $header[name]."<".$form[email].">";
 
                 endif;
 
                 $sendmessage = "<html>
                                 <head>
                                 <title>".$form[familia]."</title>
                                 </head>
                                 <table border=\"0\" cellpadding=\"2\" cellspacing=\"0\" width=\"100%\">
                                 <tr>
                                 <td><font face=\"Verdana\" size=\"2\">".$form[familia]."<br>".$form[name]."<br>".$form[otchestvo]."<br>".$form[day]."<br>".$form[month]."<br>".$form[year]."<br>".$form[cityday]."<br>".$form[stranaday]."<br>".$form[stranagoo]."<br>".$form[pol]."<br>".$form[educate]."<br>".$form[foto]."<br>".$form[pochadress]."<br>".$form[phone]."<br>".$form[email]."<br>".$form[semia]."<br>".$form[deti]."<br>".$form[message];
 
                      if ($config[features] == "on"):
 
                      $sendmessage .= "<br><br>----------------------
                                       <br>Обозреватель: $HTTP_USER_AGENT
                                       <br>Адрес IP: $REMOTE_ADDR";
                                        
                       endif;
 
                 $sendmessage .= "</font></td>
                                  </tr>
                                  </table>
                                  </body>
                                  </html>";
 
                 $headers  = "MIME-Version: 1.0\n";
                 $headers .= "From: ".$header[name]."<".$form[email].">\n";
                 $headers .= "Content-Type: text/html; charset=".$config[charset]."\n";
                 $headers .= "X-Mailer: PHP/" . phpversion();
 
                 {
                 set_time_limit(30);
 
                      if (mail($form[send_to], $header[familia], $sendmessage, $headers)):
 
                      $okheader = "<p class=\"T\"><b>СООБЩЕНИЕ ОТПРАВЛЕНО!</b></p>";
                      $okmessage  = "<p class=\"T\">Спасибо, ".$form[name].", ваше сообщение успешно отправлено.
                      Мы постараемся вам ответить в течение нескольких часов.";
 
                           if ($sendcopy == "on"):
 
                           $okmessage .= "<p class=\"T\">На ваш E-Mail (".$form[email].") послана копия письма. Через
                           несколько минут вы можете проверить свой почтовый ящик, чтобы убедиться, что отправка прошла успешно.</p>";
 
                           endif;
 
                      include ("./ok.inc");
 
                      else:
 
                      $errorheader = "<p class=\"T\"><b>СООБЩЕНИЕ НЕ ОТПРАВЛЕНО!</b></p>";
                      $errormessage  = "<p class=\"T\">Произошла непредвиденная ошибка при попытке
                      отправить сообщение.</p>";
                      $errormessage .= "<p class=\"T\">Пожалуйста, вернитесь назад и попробуйте снова.
                      Если ошибка будет повторяться, обратитесь к <b><a href=\"mailto:".$config[admin_email]."\">Вебмастеру</a></b>.</p>";
 
                      include ("./error.inc");
 
                      endif;
                  }
          endif;
           
     endif;
 
endif;
 
if ($config[inc_headers] == "on"):
 
include ($config[footer]);
 
endif;
 
?>




Длинные листинги прячем под тег [more] /Cheery/

Всего записей: 9 | Зарегистр. 02-06-2006 | Отправлено: 14:36 01-11-2006 | Исправлено: Cheery, 20:21 01-11-2006
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Интернет » Web-программирование » Perl, PHP: отправка формы на e-mail


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru