|
|
|
| Люди помогите пожалйста молю! Есть скрип на пхп для отправки письма! Там есть фигня "правильности" написанного (Все поля для заполнения обязательные). Как сделать некоторые поля не обязательные для ЗАПОЛНЕНИЯ??? Вот скрипт
<?php
error_reporting(0);
require("./config.inc");
require("./header.inc");
# Функции
function formtohtml ($str) {
if (get_magic_quotes_gpc()) {
$str = stripslashes($str);
}
$str = trim($str);
$str = htmlspecialchars ($str, ENT_QUOTES);
$str = str_replace("|", "/", $str);
$str = str_replace("\r", "", $str);
$str = str_replace("\n", "<br>", $str);
$str = eregi_replace("(<br>*){2,}","<br><br>",$str);
$str = eregi_replace("[ ]{2,}", " ", $str);
return $str;
}
function htmltoform ($str) {
$str = str_replace("&", "&", $str);
$str = str_replace(""", "\"", $str);
$str = str_replace("'", "'", $str);
$str = str_replace("<", "<", $str);
$str = str_replace(">", ">", $str);
$str = str_replace("<br>", "\r\n", $str);
return $str;
}
# Отправка
if (!empty($_GET['a']) and $_GET['a'] == "m") {
$var['fields'] = array("name"=>"имя", "email"=>"e-mail", "subject"=>"заголовок", "message"=>"текст сообщения");
$notice['error'] = array();
foreach ($var['fields'] as $key => $value) {
if (empty($_POST[$key]) || (($_POST[$key] = formtohtml($_POST[$key])) == "0")) $notice['error'][] = $value;
}
if (empty($notice['error'])) {
if (preg_match("/^([a-z,0-9,_,\-,\.])+\@([a-z,0-9,_,\-])+(\.([a-z,0-9])+)+$/",$_POST['email'])) {
$t['c'] = file($config['recip_f']);
$t['n'] = sizeof($t['c']);
for ($i=0;$i<$t['n'];$i++) {
$t['c'][$i] = explode("|",trim($t['c'][$i]));
}
if (!empty($_POST['recip']) and !empty($t['c'][$_POST['recip']-1])) {
$var['recip_n'] = $t['c'][$_POST['recip']-1][1];
$var['recip_e'] = $t['c'][$_POST['recip']-1][0];
if (function_exists("imap_binary")) {
function mail_convert($str) {
$str = trim(imap_binary(addcslashes($str, "\"!@\\!@(!@)")));
return $str;
}
$var['subj'] = "=?Windows-1251?B?".trim(imap_binary(htmltoform($_POST['subject'])))."?=";
$var['header'] = "From: =?Windows-1251?B?".mail_convert(htmltoform($_POST['name']))."?= <".$_POST['email'].">\r\n";
$var['header'] .= "MIME-Version: 1.0\r\n";
$var['header'] .= "Content-Transfer-Encoding: 8bit\r\n";
$var['header'] .= "Content-Type: text/plain; charset=\"Windows-1251\"\r\n";
$var['header'] .= "X-Mailer: PHP v.".phpversion();
$var['message'] = htmltoform($_POST['message']);
$var['company'] = htmltoform($_POST['company']);
$var['adres'] = htmltoform($_POST['adres']);
$var['inn'] = htmltoform($_POST['inn']);
$var['kpp'] = htmltoform($_POST['kpp']);
$var['pc'] = htmltoform($_POST['pc']);
$var['kc'] = htmltoform($_POST['kc']);
$var['bank'] = htmltoform($_POST['bank']);
$var['bik'] = htmltoform($_POST['bik']);
$var['name'] = htmltoform($_POST['name']);
$var['dolshosti'] = htmltoform($_POST['dolshosti']);
$var['telephone'] = htmltoform($_POST['telephone']);
$var['message'] .= "\r\n\r\n---------------------------------------\r\nПолное название организации: ".$_POST['company'];
$var['message'] .= "\r\n\r\n---------------------------------------\r\nАдрес: ".$_POST['adres'];
$var['message'] .= "\r\n\r\n---------------------------------------\r\nИНН: ".$_POST['inn'];
$var['message'] .= "\r\n\r\n---------------------------------------\r\nКПП: ".$_POST['kpp'];
$var['message'] .= "\r\n\r\n---------------------------------------\r\nР/с: ".$_POST['pc'];
$var['message'] .= "\r\n\r\n---------------------------------------\r\nК/с: ".$_POST['kc'];
$var['message'] .= "\r\n\r\n---------------------------------------\r\nБанк: ".$_POST['bank'];
$var['message'] .= "\r\n\r\n---------------------------------------\r\nБИК: ".$_POST['bik'];
$var['message'] .= "\r\n\r\n---------------------------------------\r\nФИО участника: ".$_POST['name'];
$var['message'] .= "\r\n\r\n---------------------------------------\r\nДолжность: ".$_POST['dolshosti'];
$var['message'] .= "\r\n\r\n---------------------------------------\r\nРабочий телефон: ".$_POST['telephone'];
# Пытаемся послать сообщение
if (mail("=?Windows-1251?B?".mail_convert(htmltoform($var['recip_n']))."?= <".$var['recip_e'].">",$var['subj'],$var['message'],$var['header'])) {
$notice['ok'] = "Сообщение успешно отправлено";
}
else {
$notice['error'] = "Системная ошибка - сбой функции "mail"";
}
}
else {
$notice['error'] = "Ошибка программы - недоступна функция "imap_binary"";
}
}
else {
$notice['error'] = "Ошибка настоек программы - неверный получатель";
}
}
else {
$notice['error'] = "Пожалуйста, проверьте правильность e-mail";
}
}
else {
$notice['error'] = "Пожалуйста, введите ".implode(", ",$notice['error']);
}
}
echo "<table border=\"0\" cellpadding=\"3\" cellspacing=\"0\">\r\n";
if (empty($notice['ok'])) {
echo "<form name=\"SM\" method=\"POST\" action=\"".$_SERVER['PHP_SELF']."?a=m\">\r\n";
}
else {
echo "<form name=\"GT\" method=\"get\" action=\"".$config['url_path']."\">\r\n";
}
# Сообщение о завершении / ошибке
if (!empty($notice)) {
echo "<tr><td align=\"center\">";
if (!empty($notice['ok'])) {
echo "<p><b><font color=\"#2869A3\">".$notice['ok']."!</font></b></p>";
}
elseif (!empty($notice['error'])) {
echo "<p><b><font color=\"#800000\">".$notice['error']."!</font></b></p>";
}
echo "</td></tr>\r\n";
}
# Вывод формы
if (empty($notice['ok'])) {
echo "<tr><td align=\"center\">";
require("./form.inc");
echo "</td></tr>\r\n";
}
echo "<tr><td align=\"center\"><table border=\"0\" cellpadding=\"5\" cellspacing=\"0\"><tr><td>";
# Кнопки
if (empty($notice['ok'])) {
echo "<input type=\"submit\" value=\"Отправить\"></td>\r\n";
echo "<td><input type=\"reset\" value=\"Сбросить\">\r\n";
}
else {
echo "<input type=\"submit\" value=\"".$config['url_name']."\">\r\n";
}
echo "</td></tr></table></td></tr>\r\n";
?>
|
| |
|
|
|
|
|
|
|
для: hz
(26.01.2006 в 15:54)
| | убрать проверку if (empty(...)) на те поля, которые можно оставить пустыми | |
|
|
|
|
|
|
|
для: elenaki
(26.01.2006 в 16:41)
| | А где именно убирать!!!! Я в php мало че понимаю!!! | |
|
|
|