[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не работает форма отправки
reinkarnator
Есть форма HTML документ (test.html) и есть обработчик (feedback.php).Что происходит: при нажатии на "Сабмит" в test.html данные методом ПОСТ отправляются в обработчик,обработчик их принимает,НО почему-то не отправляет на mail. А на эмэйл в свою очередь письма приходят,но без введенной информации. Почему?
Вот код:
test.html



HTML
<html>
<head>
<title></title>
</head>
<body>
<form action="feedback.php" method="POST">
dffsdfsdf:
<input type="text" name="val1" /> <br />
sdfsfsfsdfsdf:
<input type="text" name="val2" /> <br />
sdfsdfsdfsdf:
<input type="text" name="val3" /> <br />
sdfsdfsdfsdfsdf:
<input type="text" name="val4" /> <br />
sfsdfsfsdfsdf:
<input type="text" name="val5" /> <br />
sdfsfsdfsfdfd:
<input type="text" name="val6" /> <br />
sdfsdsfsdfsdfsdfsd:
<input type="text" name="val7" /> <br />
<input type="submit" value="Go" />
<input type="reset" value="erase all!" />
</form>
</body>
</html>



feedback.php



PHP
?><html>
<head>
<title>fffff</title>
</head>
<body>
<script language="JavaScript">
<!-- JavaScript
function pr(form)
{
//???? ?? ????????? ????
if((form.email.value=="")||(form.name.value==""))
 {
//??????? ??????? ?????????
alert("Please feel all the text boxes!");
//?????????? ????
return false;
 }
//???? ????????? ??? ????
else
//?????????? ??????
return true;
}
// - JavaScript - -->
</script>
<form name="newform" action="" method="post" onsubmit="return pr(newform)">
Введите Ваш э-мэйл:<br />
<input type="text" name="email" > <br />
Введите Ф.И.О:<br />
<input type="text" name="name" > <br />
<input type="submit" name="submit" value="Send mail" />
</form>
<?php

if(isset($_POST['submit'])) {
        
// Insert you code for processing the form here, e.g emailing the submission, entering it into a database.

         
$subject $_POST['name'];
         
$mail $_POST['email'];
         
$val1 $_POST['val1'];
         
$val2 $_POST['val2'];
         
$val3 $_POST['val3'];
         
$val4 $_POST['val4'];
         
$val5 $_POST['val5'];
         
$val6 $_POST['val6'];
         
$val7 $_POST['val7'];
         
$aray=array($val1,$val2,$val3,$val4,$val5,$val6,$val7);
         
$message implode("\n",$aray); //"<b>".$_POST['name']."</b><br>".$_POST['email']."<br>".$_POST['val1']."<br>".$_POST['val2']."<br>".$_POST['val3']."<br>".$_POST['val4']."<br>".$_POST['val5']."<br>".$_POST['val6']."<br>".$_POST['val7']."\r\n";
        
mail("reinkarnator@list.ru"$subject$message,"From:".$_POST['email']."");
}
?>

</body>
</html>




Спустя 22 минуты, 48 секунд (15.07.2009 - 13:45) Plantis написал(а):
А зачем ты создаёшь переменную $mail = $_POST['email']; если потом в отправке письма исплользуешь $message,"From:".$_POST['email']."");

Чтото я не понял.

$message = implode("\n",$aray); //"<b>".$_POST['name']."</b><br>".$_POST['email']."<br>".$_POST['val1']."<br>".$_POST['val2']."<br>".$_POST['val3']."<br>".$_POST['val4']."<br>".$_POST['val5']."<br>".$_POST['val6']."<br>".$_POST['val7']."\r\n";
// это вроде для комментариев.



Поробуй сделать так
PHP
$email $row["email"];

$feedback 
Hello



"
;









$toadress "$email";

$fromadress "a@a.kiev.ua";

$subject "abstract";

$content "customer name :".$surname."\n"

            
."customer email: ".$email."\n"

            
."customer comments : \n ".$feedback."\n";







mail("$email","$subject","$feedback","From: <$fromadress>\r\nContent-type:text/plain;charset=utf-8");

Спустя 37 минут, 7 секунд (15.07.2009 - 14:22) reinkarnator написал(а):
Про $mail = $_POST['email'];--забыл,но она коду не мешает.

$message = implode("\n",$aray); //"<b>".$_POST['name']."</b><br>".$_POST['email']."<br>".$_POST['val1']."<br>".$_POST['val2']."<br>".$_POST['val3']."<br>".$_POST['val4']."<br>".$_POST['val5']."<br>".$_POST['val6']."<br>".$_POST['val7']."\r\n";
//

да это очередная из попыток,комментарий,но на код опять же не влияет.

$fromadress = "a@a.kiev.ua"; --- мне нужно чтоб адрес вводил сам юзер,для этого и была создана "From:".$_POST['email']."" и сама форма с эмэйлом.

переменная $feedback у тебя здесь заменяет всё что "постится" из test.html,вообще все это дело я затеял ради этих данных (val1,val2,val3,val4,val5...) и убрать это все вместо "Hello" не получится.
Сложность заключается в том,что там 2 формы...одна передаёт значения val1,val2 и т.п. в feedback.php,а вторая в самом feedback.php требует ввода мэйла и имени юзера.
$subject---соответственно тема письма---имя юзера $_POST['name'];
$message --- соответственно содержимое письма---
$aray=array($val1,$val2,$val3,$val4,$val5,$val6,$val7);---обьеденяю в массив
$message = implode("\n",$aray);---разьеденяю построчно.
$_POST['email'];--- адресс отправителя--- получается во второй форме в самом обработчике(впринципе при отправке только эти 2 переменные и отправляются,поэтому письмо не падает в спам,мне же интересно почему письмо дойдя до обработчика и распечатавшись там (echo "$message";), не идет на эмэйл. )

Спустя 7 дней, 19 часов, 13 минут, 4 секунды (23.07.2009 - 09:35) mcfly написал(а):
Цитата (reinkarnator @ 15.07.2009 - 11:22)
Про $mail = $_POST['email'];--забыл,но она коду не мешает.

$message = implode("\n",$aray); //"<b>".$_POST['name']."</b><br>".$_POST['email']."<br>".$_POST['val1']."<br>".$_POST['val2']."<br>".$_POST['val3']."<br>".$_POST['val4']."<br>".$_POST['val5']."<br>".$_POST['val6']."<br>".$_POST['val7']."\r\n";
//

да это очередная из попыток,комментарий,но на код опять же не влияет.

$fromadress = "a@a.kiev.ua"; --- мне нужно чтоб адрес вводил сам юзер,для этого и была создана "From:".$_POST['email']."" и сама форма с эмэйлом.

переменная $feedback у тебя здесь заменяет всё что "постится" из test.html,вообще все это дело я затеял ради этих данных (val1,val2,val3,val4,val5...) и убрать это все вместо "Hello" не получится.
Сложность заключается в том,что там 2 формы...одна передаёт значения val1,val2 и т.п. в feedback.php,а вторая в самом feedback.php требует ввода мэйла и имени юзера.
$subject---соответственно тема письма---имя юзера $_POST['name'];
$message --- соответственно содержимое письма---
$aray=array($val1,$val2,$val3,$val4,$val5,$val6,$val7);---обьеденяю в массив
$message = implode("\n",$aray);---разьеденяю построчно.
$_POST['email'];--- адресс отправителя--- получается во второй форме в самом обработчике(впринципе при отправке только эти 2 переменные и отправляются,поэтому письмо не падает в спам,мне же интересно почему письмо дойдя до обработчика и распечатавшись там (echo "$message";), не идет на эмэйл. )

Ваш код создания и отправки письма не получает знаечния полей из первой формы. Тоесть, вы в хтмлке вводите в форму значения переменных valN, отправляете их в feedback.php. Далее пользователь вводит свое имя и мыло и опять субмиттит. Но в вашем скрипте нет функционала, который бы сохранял данные переменных valN из первой формы, чтобы их можно было получить, когда будет генерироваться мыло.

Их можно либо сохранить в сессию, либо в виде полей hidden поместить на форме ввода имени и мыла
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.