Форма обратной связи не работает, если убрать поле e-mail

K
На сайте с 14.08.2014
Offline
0
1787

Проблема собственно в заголовке. Взял скрипт для отправки данных из формы обратной связи в сети. Но так как не спец, не знаю где в ней строка, которая делает обязательным заполнение поля e-mail. Из форм, где присутствует поле для мыла, данные отлично отправляются мне на почту, а в форме обратного звонка только два поля - "Имя" и "Телефон", и данные оттуда не уходят. Если добавляю поле для e-mail, то работает.

Вот код скрипта:

<?php

function ValidateEmail($email)

{

$pattern = '/^([0-9a-z]([-.\w]*[0-9a-z])*@(([0-9a-z])+([-\w]*[0-9a-z])*\.)+[a-z]{2,6})$/i';

return preg_match($pattern, $email);

}

if ($_SERVER['REQUEST_METHOD'] == 'POST')

{

$mailto = 'katano@my.com';

$mailfrom = isset($_POST['email']) ? $_POST['email'] : $mailto;

$subject = 'Заявка с сайта';

$message = 'Данные, переданные через форму обратной связи:';

$success_url = '';

$error_url = '';

$error = '';

$eol = "\n";

$max_filesize = isset($_POST['filesize']) ? $_POST['filesize'] * 1024 : 1024000;

$boundary = md5(uniqid(time()));

$header = 'From: '.$mailfrom.$eol;

$header .= 'Reply-To: '.$mailfrom.$eol;

$header .= 'MIME-Version: 1.0'.$eol;

$header .= 'Content-Type: multipart/mixed; boundary="'.$boundary.'"'.$eol;

$header .= 'X-Mailer: PHP v'.phpversion().$eol;

if (!ValidateEmail($mailfrom))

{

$error .= "The specified email address is invalid!\n<br>";

}

if (!empty($error))

{

$errorcode = file_get_contents($error_url);

$replace = "##error##";

$errorcode = str_replace($replace, $error, $errorcode);

echo $errorcode;

exit;

}

$internalfields = array ("submit", "reset", "send", "captcha_code");

$message .= $eol;

$message .= "IP Address : ";

$message .= $_SERVER['REMOTE_ADDR'];

$message .= $eol;

foreach ($_POST as $key => $value)

{

if (!in_array(strtolower($key), $internalfields))

{

if (!is_array($value))

{

$message .= ucwords(str_replace("_", " ", $key)) . " : " . $value . $eol;

}

else

{

$message .= ucwords(str_replace("_", " ", $key)) . " : " . implode(",", $value) . $eol;

}

}

}

$body = 'This is a multi-part message in MIME format.'.$eol.$eol;

$body .= '--'.$boundary.$eol;

$body .= 'Content-Type: text/plain; charset=ISO-8859-1'.$eol;

$body .= 'Content-Transfer-Encoding: 8bit'.$eol;

$body .= $eol.stripslashes($message).$eol;

if (!empty($_FILES))

{

foreach ($_FILES as $key => $value)

{

if ($_FILES[$key]['error'] == 0 && $_FILES[$key]['size'] <= $max_filesize)

{

$body .= '--'.$boundary.$eol;

$body .= 'Content-Type: '.$_FILES[$key]['type'].'; name='.$_FILES[$key]['name'].$eol;

$body .= 'Content-Transfer-Encoding: base64'.$eol;

$body .= 'Content-Disposition: attachment; filename='.$_FILES[$key]['name'].$eol;

$body .= $eol.chunk_split(base64_encode(file_get_contents($_FILES[$key]['tmp_name']))).$eol;

}

}

}

$body .= '--'.$boundary.'--'.$eol;

if ($mailto != '')

{

mail($mailto, $subject, $body, $header);

}

header('Location: '.$success_url);

exit;

}

?>

vlad00777
На сайте с 24.12.2009
Offline
119
#1

Удалить:

if (!ValidateEmail($mailfrom))

{
$error .= "The specified email address is invalid!\n<br>";
}

if (!empty($error))
{
$errorcode = file_get_contents($error_url);
$replace = "##error##";
$errorcode = str_replace($replace, $error, $errorcode);
echo $errorcode;
exit;
}
Верстка. Качественно! Адаптивная, резиновая, с параллаксом и прочими плюшками. В ЛС.
K
На сайте с 14.08.2014
Offline
0
#2

Спасибо тебе огромное!!!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий