2013-06-05 62 views
-1

我正在嘗試製作一個簡單的php表單郵件。
所有IM後 有一個電子郵件看起來如何將自定義字段添加到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 你美元,$主題,然後一堆多個字符串這應該都是在ONE $消息字符串。

相關問題