2013-06-05 2 views
-1

Я пытаюсь создать простую почтовую форму php.
все им после того, как электронной почты, который имеет видКак добавить пользовательские поля в php-скрипт электронной почты

Name: joe blogs 
Email: [email protected] 
Message: anything. 
Answer 1: Red 
Answer 2: green 
Answer 3: Blue 

в приведенном ниже примере я удалил свой адрес электронной почты ... проблема, я заполнить поля и нажмите кнопку отправки, и я получаю мой сообщение, чтобы сообщить, что сообщение отправлено, но ни одно письмо не приходит. все работало нормально, пока я не добавил поля $ questX, после чего он перестал работать. но я не вижу разницы в имени $ name. так что я очень смущен.

<?php 
if (isset($_REQUEST['email'])) 
//if "email" is filled out, send email 
{ 
//send email 
    $email = $_REQUEST['email'] ; 
    $name = $_REQUEST['name'] ; 
    $quest = $_REQUEST['quest'] ; 
    $questb = $_REQUEST['questb'] ; 
    $questc = $_REQUEST['questc'] ; 
    $subject = "Competition Entry" ; 
    $message = $_REQUEST['message'] ; 
    mail("[email protected]", $subject, "Name:" . $name, "From:" . $email, "Answer 1:" . 
    $quest, "Answer 2:" . $questb, "Answer 3:" . $questc, $message); 
    echo "Thank you for using our mail form"; 
} 
else 
//if "email" is not filled out, display the form 
{ 
    echo "<form method='post' action='win-a-deck2.php'> 
      <label for='name'>Name:</label><input name='name' type='text' placeholder='Enter your fullname'><br> 
      <label for='email'>Email:</label><input name='email' type='text'><br> 
      <label for='message'>Message:</label><br> 
      <input name='message' type='text'><br> 
      <label for='quest'>Question 1:</label><input name='quest' type='text' placeholder='Answer to Question 1'><br> 
      <label for='questb'>Question 2:</label><input name='questb' type='text' placeholder='Answer to Question 2'><br> 
      <label for='questc'>Question 3:</label><input name='questc' type='text' placeholder='Answer to Question 3'><br> 
      <input type='submit'> 
     </form>"; 
} 
?> 
+0

у вас есть $ questc, $ message. Вам нужно, чтобы он был $ questc. $, так как оно дает аргументы функции почты 4, и вам нужно только 3 плюс четвертый аргумент должен быть для настройки заголовков –

ответ

0

Простая форма PHP электронная почта:

<form action="process.php" method="post"> 
<ul style="list-style-type: none;"> 
<li>Name: <input type="text" name="name" size="30" maxlength="40"></li> 
<li>&nbsp;</li> 
<li>Email: <input type="text" name="email" size="30" maxlength="40"></li> 
<li>&nbsp;</li> 
<li><input type="submit" name="submit" value="Send"></li> 
</ul> 
</form> 

Код страницы process.php выглядит следующим образом: -

Thanks, <?php 
@extract($_POST); 
$sub="Form feedback"; 
$name = stripslashes($name); 
$email = stripslashes($email); 
mail('[email protected]',$sub,"$name $email","From: $name <[email protected]>"); 
echo stripslashes($name); 
?> , we will drop you a line shortly. 

Учебник:

http://wickham43.net/formemail.php

Он обрабатывает автоматический ответ и не отвечает.

Кроме того, только для общих целей:

http://php.net/manual/en/function.mail.php

0

Функция почты:

bool mail ( 
1. string $to , 
2. string $subject , 
3. string $message 
4. [, string $additional_headers 
5. [, string $additional_parameters ]]) 

http://www.php.net/manual/en/function.mail.php

Вы используете это так:

mail(
1. "[email protected]", 
2. $subject, 
3. "Name:" . $name, 
4. "From:" . $email, 
5. "Answer 1:" . 
$quest, "Answer 2:" . $questb, "Answer 3:" . $questc 
6. , $message); 

Определенно, вы передаете неправильные параметры функции, поэтому она не работает. Попробуйте следующее:

mail(
"[email protected]", 
$subject, 
"Name:" . $name . "Answer 1:" . $quest, "Answer 2:" . $questb 
. "Answer 3:" . $quest . $message, 
"From:" . $email); 
0

Сначала вы должны отредактировать свою форму, чтобы имя вопроса было массивом. Таким образом, вы можете использовать $ _POST ['questions'] в качестве массива и использовать для него цикл foreach, а не вводить каждый вопрос в свою собственную переменную.

Во-вторых, включите отчет об ошибках и посмотрите, какие ошибки вы получите.

В-третьих, у вас есть слишком много параметров в почте() http://us1.php.net/manual/en/function.mail.php Вы $ до $ предмет, то куча больше строк, которые все должны быть в одной строке $ сообщений.

Смежные вопросы