X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Форма обратной связи, Всё отправляется, а письмо не приходит...
bcom_hb
bcom_hb
Topic Starter сообщение 27.12.2010, 12:15; Ответить: bcom_hb
Сообщение #1


Добрый день!
Столкнулся с проблемой такого характера.
Простейшая форма в html и не очень сложный скрипт для отправки на php.
При правильном заполении форм заявка отправляется, что подтверждает скрипт - "Заявка отправлена". А письма на почте так и нет.
"Не замыленным" глазом может кто посмотрит, что за косяк-то такой?

Форма:
<FORM ACTION="checkout.php" method='post' id='form'>
<p><h4>ФИО:</h4>
<input id="email" type="text" name="fio" size="100"></p>
<p><h4>Адрес:</h4>
<textarea id="mess" rows="4" name="adres" cols="75"></textarea> </p>
<p><h4>Ваш e-mail:</h4>
<input id="email" type="text" name="email" size="50"></p>
<p><input type="submit" value="Отправить" name="submit" onClick="emailCheckout(this.form)"></p>
</form>


Скрипт:
[PHP]
<?php
$to = 'art-region@mail.ru'; //куда слать письмо
if ( $_SERVER['REQUEST_METHOD']=='POST' )
complete_mail($to);
function complete_mail($to) {
$fio = substr(htmlspecialchars(trim($_POST['fio'])), 0, 150);
$adres = substr(htmlspecialchars(trim($_POST['adres'])), 0, 1000);
$email = substr(htmlspecialchars(trim($_POST['email'])), 0, 50);

unset( $_POST['fio'] );
unset( $_POST['adres'] );
unset( $_POST['email'] );
unset( $_POST['submit'] );

if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $email))
{ output_err(0); }
else if(empty($fio))
{ output_err(1); }
else if(empty($adres))
{ output_err(2); }
else if(empty($_POST['name_1']))
{ output_err(3); }

else {
$content .= "ФИО: ".$fio."\nАдрес: ".$adres."\nE-mail: ".$email."\n\n\nИмя\tКол-во\tЦена\tНалоги\t Описание\n";
$c=0;
foreach ( $_POST as $k => $v ){
if ( $c == 5 ) {
$content .= "\n";
$c = 0;
} else {
++$c;
}
$content .= $v."\t";
}

$subject = 'Заказ с сайта ' . $_SERVER['SERVER_NAME'];
mail($to, $subject, $content, "From:" . $email, "Content-type:text/html; charset = windows-1251");

echo "Заявка отправлена.";
}
}
function output_err($num) {
$err[0] = 'ОШИБКА! Неверно введен e-mail.';
$err[1] = 'ОШИБКА! Не введены контакты.';
$err[2] = 'ОШИБКА! Не введен адрес.';
$err[3] = 'ОШИБКА! Вы ничего не заказали.';
echo '<p>'.$err[$num].'</p>';
}
?>
[/PHP]
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
LifeUP
LifeUP
сообщение 27.12.2010, 13:15; Ответить: LifeUP
Сообщение #2


попробуй, если отправит то подставь просто свои данные.
[PHP]
<form action="" method="post">
ФИО: <input type="text" name="fio" maxlength="150" /><br />
Адрес: <textarea name="adres" cols="75" rows="4"></textarea><br />
Ваш E-mail: <input type="text" name="email" maxlength="50" /><br />
<input type="submit" name="submit" value="Отправить" />
</form>

<?php
$info = '';
if (isset ($_POST['submit']))
{
$fio = isset ($_POST['fio']) ? htmlspecialchars (trim ($_POST['fio'])) : '';
$adres = isset ($_POST['adres']) ? htmlspecialchars (trim ($_POST['adres'])) : '';
$email = isset ($_POST['email']) ? trim ($_POST['email']) : '';

if (strlen ($fio) < 3 || strlen ($fio) > 150) {
$info = 'Фамилия может содержать от 3 до 150 символов';
} elseif (strlen ($adres) < 3 || strlen ($adres) > 1000) {
$info = 'Адрес может содержать от 3 до 1000 символов';
} elseif (!check_email ($email)) {
$info = 'Email введен не верно';
}


if (empty ($info))
{
$komu = 'ghtpp@mail.ru';
$tema = 'Тема письма';
$mag = 'Фамилия: ' . $fio . '<br />Адрес: ' . $adres . '<br />Email: ' . $email;

if (mail ($komu, $tema, $msg))
{
$info = 'Отпарвлено';
}
else
{
$info = 'Ошибка';
}
}
}


function check_email ($email)
{
if (preg_match ('/^([a-z0-9]([\-\_\.]*[a-z0-9])*)+@([a-z0-9]([\-]*[a-z0-9])*\.)+[a-z]{2,6}$/i', $email))
{
return true;
}
else
{
return false;
}
}
echo $info;
?>
[/PHP]

P.S а вообще для нормальной отправки сообщений используй http://phpmailer.worxware.com/index.php
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
bcom_hb
bcom_hb
Topic Starter сообщение 27.12.2010, 15:05; Ответить: bcom_hb
Сообщение #3


не, не работает что-то...

Даже не отправляет... Странно, по коду всё логично!
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
MetSerp
MetSerp
сообщение 27.12.2010, 16:30; Ответить: MetSerp
Сообщение #4


говорит что отправила но письма нет?
Если да то может быть как минимум 2 варианта
1 у хостера отключена функция mail решение, только либо говорить с хостером о ее включении либо менять хостинг
2 если вы это тестируете на денвере, то там стоит заглушка и все письма падают в папку sendmail точное местоположение ее в папке денвера не помню но где то неглубоко.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
bcom_hb
bcom_hb
Topic Starter сообщение 27.12.2010, 16:35; Ответить: bcom_hb
Сообщение #5


Локально не тестирую, тестирую сразу на хостинге, гдё уже разместил 14 сайтов за этот год и все с формами обратной связи.
Что за mail решение? Я думаю, что достаточно чтобы php4 или php5 поддерживал?
Ну вот собственно заготовка самого сайта www.sunkafe.ru
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
MetSerp
MetSerp
сообщение 27.12.2010, 16:38; Ответить: MetSerp
Сообщение #6


bcom, еще забыл, если вы копировали код LifeUP, прямо отсюда то почистите его от того что в него напихал форум, если точнее то вот этот момент
(LifeUP @ 27.12.2010, 15:15) *
<span>
********$komu = '<a class="linkclass" href="mailto:ghtpp@mail.ru">ghtpp@mail.ru</a>';</span>

span там ненужен и обертка в ссылочный тег тоже ненужна, то есть вот так
$komu = ghtpp@mail.ru; вместо всего того балагана
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
MetSerp
MetSerp
сообщение 27.12.2010, 16:41; Ответить: MetSerp
Сообщение #7


(bcom_hb @ 27.12.2010, 18:35) *
Что за mail решение?

это у меня пунктуация контузилась еще больше, там точка между mail и решение должна быть :)
некоторые тарифные планы или хостеры в целом вырубают функцию mail() по средством которой вы пытаетесь отправить письмо, потому она может не работать даже при правильном коде
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
bcom_hb
bcom_hb
Topic Starter сообщение 27.12.2010, 16:54; Ответить: bcom_hb
Сообщение #8


(MetSerp @ 27.12.2010, 18:38) *
bcom, еще забыл, если вы копировали код LifeUP, прямо отсюда то почистите его от того что в него напихал форум, если точнее то вот этот момент

span там ненужен и обертка в ссылочный тег тоже ненужна, то есть вот так
$komu = ghtpp@mail.ru; вместо всего того балагана


Спасибо, почищу код, но что-то мне подсказывает, что ни "спан", ни "обёртка" не могут влиять на передачу, точнее могут, но выдавалась бы просто ошибка в определённой строке. А так ни ошибок, ни письма на почте *-(
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
LifeUP
LifeUP
сообщение 27.12.2010, 16:55; Ответить: LifeUP
Сообщение #9


воспользуйтесь тем скриптом на который я дал ссылку, там есть возможность отправки через smpt. Да и намного удобен он.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Semenovich
Semenovich
сообщение 3.1.2011, 10:17; Ответить: Semenovich
Сообщение #10


[PHP] <?php
$q=$_POST['q'];
if ($q)
{
$name=$_POST['name']; $email=$_POST['email']; $subject=$_POST['subject']; $message=$_POST['message']; // принимаем данные из формы для обработки
$address="напиши сюда свой майл";// ваш адрес на который будут отсылатся письма из формы обратной связи

if ($name && $email && $message) // проверяем заполнены ли все обезятельные поля
{
$message="$name прислал вам сообщение, его email: $email. Тема письма: $subject \n Текст сообщения: \n $message";
$mail = mail($address, $subject, $message, "Content-type:text/plain; charset = windows-1251\r\nFrom:$address");
}
}

$q=$_POST['q'];
if ($q)
{
$name=$_POST['name']; $email=$_POST['email']; $subject=$_POST['subject']; $message=$_POST['message']; // принимаем данные из формы для обработки
$address="напиши сюда свой второй майл";// ваш адрес на который будут отсылатся письма из формы обратной связи

if ($name && $email && $message) // проверяем заполнены ли все обезятельные поля
{
$message="$name прислал вам сообщение, его email: $email. Тема письма: $subject \n Текст сообщения: \n $message";
$mail = mail($address, $subject, $message, "Content-type:text/plain; charset = windows-1251\r\nFrom:$address");
}
}
?>[/PHP] попробуй эту форму. создай отдельный php файл и назови его допустим post.php и внеси туда эти данные и впиши в нужные места два разных ящика. это инклюд. а вот форма для
этого инклюда:[PHP]<?php include("post.php"); ?>
<form action="" method="post">
<p>&nbsp;</p>
<table width="" align="center">
<tr> <td> <div class="nev"><p>Ваше имя*</p></div> </td> <td> <input type="text" name="name"> </td> </tr>
<tr> <td> <div class="nev"><p>Ваш еmail*</p></div> </td> <td> <input type="text" name="email"> </td> </tr>
<tr> <td> <div class="nev"><p>Тема письма</p></div> </td> <td> <input type="text" name="subject"> </td> </tr>
<tr> <td valign="top"> <div class="nev"><p>Сообщение*</p></div> </td> <td> <textarea name="message"> </textarea> </td> </tr>
<tr> <td> <div class="nev"><p><input type="submit" value="Отправить" align="right"></p></div> </td> </tr>
<tr> <td colspan=2>
<?php
if ($q)
{
if (!$name || !$email || !$message) echo "Пожалуйста, заполните все обезятельные поля"; // проверка заполнены ли все обезятельные поля для отправки сообщения + вывод ошибки.
else if ($mail) echo "Письмо успешно отправлено";
}
?> [/PHP]

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Быстрый старт - Всё о накрутке пф за 7 минут
6 waterworld 2275 13.2.2024, 20:08
автор: Думающий
Горячая тема (нет новых ответов) Adsense всё. Как монетизировать трафик из рф?
33 Porsche 5901 23.5.2022, 21:38
автор: kuprum
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыПринимаю заказы на копирайтинг, рерайтинг. Стабильно работаю, всегда на связи
Нужен автор текстов, копирайтер? Обращайтесь
14 KriptoFin 8015 22.9.2020, 18:07
автор: mrSana
Открытая тема (нет новых ответов) Нужен простой лендинг с формой обратной связи
10 Kuzzma 2561 11.9.2020, 21:33
автор: Kuzzma
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыСкрипт на сайте отсылает письмо, а почтовик сайта на сервере пересылать не хочет
3 master-vek 1761 17.7.2020, 16:47
автор: DF™


 



RSS Текстовая версия Сейчас: 29.3.2024, 9:14
Дизайн