dqyz48470 2013-04-06 14:17
浏览 11
已采纳

无法让我的PHP Form Mailer工作

I'm new to PHP scripts, so when I decided to have an 'Order Form' on my site, I started with an 'off the shelf' (ie, Googled and started with someone else’s code) form and edited it. However, I can't get it to post any emails to me. My form code looks like this (I will post an image when my REP points are high enough):

<form action="form.php">
Name: <input type="text" name="Name" value="" size="60"> <font color=red>*</font><br>
Address: <input type="text" name="Address" value="" size="58"> <font color=red>*</font><br>
E-mail: <input type="text" name="Email" value="" size="60"> <font color=red>*</font><br><br>
Campaign No: <input type="text" name="BookNumber" value="" size="2"> <font color=red>*</font><br><br>
<table border=1><tr><td>Page No. </td><td>Product No. </td><td>Product Name </td><td>Shade/Fragrance </td><td>QTY </td><td>Unit Price </td><td>Total Price </td></tr>
<tr><td>
    <input type="text" name="Item1Page" value="" size="3">
</td><td>
    <input type="text" name="Number1" value="" size="5">
</td><td>
    <input type="text" name="Product1" value="" size="50">
</td><td>
    <input type="text" name="Fragrance1" value="" size="15">
</td><td>
    <input type="text" name="QTY1" value="" size="2">
</td><td>
    <input type="text" name="Uprice1" value="" size="6">
</td><td>
    <input type="text" name="Tprice1" value="" size="6">
</td></tr>
<tr><td>
    <input type="text" name="Item2Page" value="" size="3">
</td><td>
    <input type="text" name="Number2" value="" size="5">
</td><td>
    <input type="text" name="Product2" value="" size="50">
</td><td>
    <input type="text" name="Fragrance2" value="" size="15">
</td><td>
    <input type="text" name="QTY2" value="" size="2">
</td><td>
    <input type="text" name="Uprice2" value="" size="6">
</td><td>
    <input type="text" name="Tprice2" value="" size="6">
</td></tr>
<tr><td>
    <input type="text" name="Item3Page" value="" size="3">
</td><td>
    <input type="text" name="Number3" value="" size="5">
</td><td>
    <input type="text" name="Product3" value="" size="50">
</td><td>
    <input type="text" name="Fragrance3" value="" size="15">
</td><td>
    <input type="text" name="QTY3" value="" size="2">
</td><td>
    <input type="text" name="Uprice3" value="" size="6">
</td><td>
    <input type="text" name="Tprice3" value="" size="6">
</td></tr>
<tr><td>
    <input type="text" name="Item4Page" value="" size="3">
</td><td>
    <input type="text" name="Number4" value="" size="5">
</td><td>
    <input type="text" name="Product4" value="" size="50">
</td><td>
    <input type="text" name="Fragrance4" value="" size="15">
</td><td>
    <input type="text" name="QTY4" value="" size="2">
</td><td>
    <input type="text" name="Uprice4" value="" size="6">
</td><td>
    <input type="text" name="Tprice4" value="" size="6">
</td></tr>
<tr><td>
    <input type="text" name="Item5Page" value="" size="3">
</td><td>
    <input type="text" name="Number5" value="" size="5">
</td><td>
    <input type="text" name="Product5" value="" size="50">
</td><td>
    <input type="text" name="Fragrance5" value="" size="15">
</td><td>
    <input type="text" name="QTY5" value="" size="2">
</td><td>
    <input type="text" name="Uprice5" value="" size="6">
</td><td>
    <input type="text" name="Tprice5" value="" size="6">
</td></tr>
<tr><td>
    <input type="text" name="Item6Page" value="" size="3">
</td><td>
    <input type="text" name="Number6" value="" size="5">
</td><td>
    <input type="text" name="Product6" value="" size="50">
</td><td>
    <input type="text" name="Fragrance6" value="" size="15">
</td><td>
    <input type="text" name="QTY6" value="" size="2">
</td><td>
    <input type="text" name="Uprice6" value="" size="6">
</td><td>
    <input type="text" name="Tprice6" value="" size="6">
</td></tr>
<tr><td>
    <input type="text" name="Item7Page" value="" size="3">
</td><td>
    <input type="text" name="Number7" value="" size="5">
</td><td>
    <input type="text" name="Product7" value="" size="50">
</td><td>
    <input type="text" name="Fragrance7" value="" size="15">
</td><td>
    <input type="text" name="QTY7" value="" size="2">
</td><td>
    <input type="text" name="Uprice7" value="" size="6">
</td><td>
    <input type="text" name="Tprice7" value="" size="6">
</td></tr>
<tr><td>
    <input type="text" name="Item8Page" value="" size="3">
</td><td>
    <input type="text" name="Number8" value="" size="5">
</td><td>
    <input type="text" name="Product8" value="" size="50">
</td><td>
    <input type="text" name="Fragrance8" value="" size="15">
</td><td>
    <input type="text" name="QTY8" value="" size="2">
</td><td>
    <input type="text" name="Uprice8" value="" size="6">
</td><td>
    <input type="text" name="Tprice8" value="" size="6">
</td></tr>
<tr><td>
    <input type="text" name="Item9Page" value="" size="3">
</td><td>
    <input type="text" name="Number9" value="" size="5">
</td><td>
    <input type="text" name="Product9" value="" size="50">
</td><td>
    <input type="text" name="Fragrance9" value="" size="15">
</td><td>
    <input type="text" name="QTY9" value="" size="2">
</td><td>
    <input type="text" name="Uprice9" value="" size="6">
</td><td>
    <input type="text" name="Tprice9" value="" size="6">
</td></tr>
<tr><td>
    <input type="text" name="Item10Page" value="" size="3">
</td><td>
    <input type="text" name="Number10" value="" size="5">
</td><td>
    <input type="text" name="Product10" value="" size="50">
</td><td>
    <input type="text" name="Fragrance10" value="" size="15">
</td><td>
    <input type="text" name="QTY10" value="" size="2">
</td><td>
    <input type="text" name="Uprice10" value="" size="6">
</td><td>
    <input type="text" name="Tprice10" value="" size="6">
</td></tr>
<tr><td>
    <input type="text" name="Item11Page" value="" size="3">
</td><td>
    <input type="text" name="Number11" value="" size="5">
</td><td>
    <input type="text" name="Product11" value="" size="50">
</td><td>
    <input type="text" name="Fragrance11" value="" size="15">
</td><td>
    <input type="text" name="QTY11" value="" size="2">
</td><td>
    <input type="text" name="Uprice11" value="" size="6">
</td><td>
    <input type="text" name="Tprice11" value="" size="6">
</td></tr>
<tr><td colspan=6 align=right>Order Processing Charge</td><td align=right>$0.80</td></tr>
</table>


<br><br>
<input type="submit" value="Send">
<input type="reset" value="Reset">
</form>

My PHP script looks like this. I assume (being I have used a template and changed it) I have accidentally deleted the wrong line or have a variable not defined properly:

<?php
if(isset($_POST['email_out'])) {
    if(!isset($_POST['Name']) ||
        !isset($_POST['Email']) ||
        !isset($_POST['Address'])) 
    $email = $_POST['Name']; // required
    $email = $_POST['Address']; // required
    $email = $_POST['Email']; // required
    $email = $_POST['BookNumber'];     
    $email = $_POST['Item1Page'];     
    $email = $_POST['Number1'];
    $email = $_POST['Product1'];
    $email = $_POST['Fragrance1'];
    $email = $_POST['QTY1'];
    $email = $_POST['Uprice1'];
    $email = $_POST['Tprice1'];
    $email = $_POST['Item2Page'];     
    $email = $_POST['Number2'];
    $email = $_POST['Product2'];
    $email = $_POST['Fragrance2'];
    $email = $_POST['QTY2'];
    $email = $_POST['Uprice2'];
    $email = $_POST['Tprice2'];
    $email = $_POST['Item3Page'];     
    $email = $_POST['Number3'];
    $email = $_POST['Product3'];
    $email = $_POST['Fragrance3'];
    $email = $_POST['QTY3'];
    $email = $_POST['Uprice3'];
    $email = $_POST['Tprice3'];
    $email = $_POST['Item4Page'];     
    $email = $_POST['Number4'];
    $email = $_POST['Product4'];
    $email = $_POST['Fragrance4'];
    $email = $_POST['QTY4'];
    $email = $_POST['Uprice4'];
    $email = $_POST['Tprice4'];
    $email = $_POST['Item5Page'];     
    $email = $_POST['Number5'];
    $email = $_POST['Product5'];
    $email = $_POST['Fragrance5'];
    $email = $_POST['QTY5'];
    $email = $_POST['Uprice5'];
    $email = $_POST['Tprice5'];
    $email = $_POST['Item6Page'];     
    $email = $_POST['Number6'];
    $email = $_POST['Product6'];
    $email = $_POST['Fragrance6'];
    $email = $_POST['QTY6'];
    $email = $_POST['Uprice6'];
    $email = $_POST['Tprice6'];
    $email = $_POST['Item7Page'];     
    $email = $_POST['Number7'];
    $email = $_POST['Product7'];
    $email = $_POST['Fragrance7'];
    $email = $_POST['QTY7'];
    $email = $_POST['Uprice7'];
    $email = $_POST['Tprice7'];
    $email = $_POST['Item8Page'];     
    $email = $_POST['Number8'];
    $email = $_POST['Product8'];
    $email = $_POST['Fragrance8'];
    $email = $_POST['QTY8'];
    $email = $_POST['Uprice8'];
    $email = $_POST['Tprice8'];
    $email = $_POST['Item9Page'];     
    $email = $_POST['Number9'];
    $email = $_POST['Product9'];
    $email = $_POST['Fragrance9'];
    $email = $_POST['QTY9'];
    $email = $_POST['Uprice9'];
    $email = $_POST['Tprice9'];
    $email = $_POST['Item10Page'];     
    $email = $_POST['Number10'];
    $email = $_POST['Product10'];
    $email = $_POST['Fragrance10'];
    $email = $_POST['QTY10'];
    $email = $_POST['Uprice10'];
    $email = $_POST['Tprice10'];
    $email = $_POST['Item11Page'];     
    $email = $_POST['Number11'];
    $email = $_POST['Product11'];
    $email = $_POST['Fragrance11'];
    $email = $_POST['QTY11'];
    $email = $_POST['Uprice11'];
    $email = $_POST['Tprice11'];
    $error_message = "";
    $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
  if(!preg_match($email_exp,$email)) {
    $error_message .= 'The Email Address you entered does not appear to be valid.<br />';
  }
    $string_exp = "/^[A-Za-z .'-]+$/";
  if(!preg_match($string_exp,$name)) {
    $error_message .= 'The Name you entered does not appear to be valid.<br />';
  }
  if(!preg_match($string_exp,$address)) {
    $error_message .= 'The address you entered does not appear to be valid.<br />';
  }
    $email_message = "Form details below.

";
    $email_message .= "Name: ".clean_string($Name)."
";
    $email_message .= "Address: ".clean_string($Address)."
";
    $email_message .= "Email: ".clean_string($Email)."
";
    $email_message .= "BookNumber: ".clean_string($BookNumber)."
";
    $email_message .= "Item1Page: ".clean_string($Item1Page)."
";
    $email_message .= "Number1: ".clean_string($Number1)."
";
    $email_message .= "Product1: ".clean_string($Product1)."
";
    $email_message .= "Fragrance1: ".clean_string($Fragrance1)."
";
    $email_message .= "QTY1: ".clean_string($QTY1)."
";
    $email_message .= "Uprice1: ".clean_string($Uprice1)."
";
    $email_message .= "Tprice1: ".clean_string($Tprice1)."
";
    $email_message .= "Item2Page: ".clean_string($Item2Page)."
";
    $email_message .= "Number2: ".clean_string($Number2)."
";
    $email_message .= "Product2: ".clean_string($Product2)."
";
    $email_message .= "Fragrance2: ".clean_string($Fragrance2)."
";
    $email_message .= "QTY2: ".clean_string($QTY2)."
";
    $email_message .= "Uprice2: ".clean_string($Uprice2)."
";
    $email_message .= "Tprice2: ".clean_string($Tprice2)."
";
    $email_message .= "Item3Page: ".clean_string($Item3Page)."
";
    $email_message .= "Number3: ".clean_string($Number3)."
";
    $email_message .= "Product3: ".clean_string($Product3)."
";
    $email_message .= "Fragrance3: ".clean_string($Fragrance3)."
";
    $email_message .= "QTY3: ".clean_string($QTY3)."
";
    $email_message .= "Uprice3: ".clean_string($Uprice3)."
";
    $email_message .= "Tprice3: ".clean_string($Tprice3)."
";
    $email_message .= "Item4Page: ".clean_string($Item4Page)."
";
    $email_message .= "Number4: ".clean_string($Number4)."
";
    $email_message .= "Product4: ".clean_string($Product4)."
";
    $email_message .= "Fragrance4: ".clean_string($Fragrance4)."
";
    $email_message .= "QTY4: ".clean_string($QTY4)."
";
    $email_message .= "Uprice4: ".clean_string($Uprice4)."
";
    $email_message .= "Tprice4: ".clean_string($Tprice4)."
";
    $email_message .= "Item5Page: ".clean_string($Item5Page)."
";
    $email_message .= "Number5: ".clean_string($Number5)."
";
    $email_message .= "Product5: ".clean_string($Product5)."
";
    $email_message .= "Fragrance5: ".clean_string($Fragrance5)."
";
    $email_message .= "QTY5: ".clean_string($QTY5)."
";
    $email_message .= "Uprice5: ".clean_string($Uprice5)."
";
    $email_message .= "Tprice5: ".clean_string($Tprice5)."
";
    $email_message .= "Item6Page: ".clean_string($Item6Page)."
";
    $email_message .= "Number6: ".clean_string($Number6)."
";
    $email_message .= "Product6: ".clean_string($Product6)."
";
    $email_message .= "Fragrance6: ".clean_string($Fragrance6)."
";
    $email_message .= "QTY6: ".clean_string($QTY6)."
";
    $email_message .= "Uprice6: ".clean_string($Uprice6)."
";
    $email_message .= "Tprice6: ".clean_string($Tprice6)."
";
    $email_message .= "Item7Page: ".clean_string($Item7Page)."
";
    $email_message .= "Number7: ".clean_string($Number7)."
";
    $email_message .= "Product7: ".clean_string($Product7)."
";
    $email_message .= "Fragrance7: ".clean_string($Fragrance7)."
";
    $email_message .= "QTY7: ".clean_string($QTY7)."
";
    $email_message .= "Uprice7: ".clean_string($Uprice7)."
";
    $email_message .= "Tprice7: ".clean_string($Tprice7)."
";
    $email_message .= "Item8Page: ".clean_string($Item8Page)."
";
    $email_message .= "Number8: ".clean_string($Number8)."
";
    $email_message .= "Product8: ".clean_string($Product8)."
";
    $email_message .= "Fragrance8: ".clean_string($Fragrance8)."
";
    $email_message .= "QTY8: ".clean_string($QTY8)."
";
    $email_message .= "Uprice8: ".clean_string($Uprice8)."
";
    $email_message .= "Tprice8: ".clean_string($Tprice8)."
";
    $email_message .= "Item9Page: ".clean_string($Item9Page)."
";
    $email_message .= "Number9: ".clean_string($Number9)."
";
    $email_message .= "Product9: ".clean_string($Product9)."
";
    $email_message .= "Fragrance9: ".clean_string($Fragrance9)."
";
    $email_message .= "QTY9: ".clean_string($QTY9)."
";
    $email_message .= "Uprice9: ".clean_string($Uprice9)."
";
    $email_message .= "Tprice9: ".clean_string($Tprice9)."
";
    $email_message .= "Item10Page: ".clean_string($Item10Page)."
";
    $email_message .= "Number10: ".clean_string($Number10)."
";
    $email_message .= "Product10: ".clean_string($Product10)."
";
    $email_message .= "Fragrance10: ".clean_string($Fragrance10)."
";
    $email_message .= "QTY10: ".clean_string($QTY10)."
";
    $email_message .= "Uprice10: ".clean_string($Uprice10)."
";
    $email_message .= "Tprice10: ".clean_string($Tprice10)."
";
    $email_message .= "Item11Page: ".clean_string($Item11Page)."
";
    $email_message .= "Number11: ".clean_string($Number11)."
";
    $email_message .= "Product11: ".clean_string($Product11)."
";
    $email_message .= "Fragrance11: ".clean_string($Fragrance11)."
";
    $email_message .= "QTY11: ".clean_string($QTY11)."
";
    $email_message .= "Uprice11: ".clean_string($Uprice11)."
";
    $email_message .= "Tprice11: ".clean_string($Tprice11)."
";
mail("relay-hosting.secureserver.net", "Website form submission", $email_message, ""); 
}
?>

<html>
<head>
<meta http-equiv="refresh" content="5;URL=welcome.html">
</head>
<body>
Thankyou for your order.<br><br>This page will automatically refresh.
</body>
</html>

The little bit of HTML at the end is my confirmation acknowledgement and is the only bit that seems to work properly.

The email TO tag 'relay-hosting.secureserver.net' is required by GoDaddy to accept and relay my email (according to GoDaddy) as part of their PHP processing.

Before someone comes and says I can do it without PHP and use straight HTML, I know this can be done. However HTML posts to an email client, and I want to ensure people who use mobile devices or do not use email clients (eg. use Gmail via a browser) can also use this form.

  • 写回答

2条回答 默认 最新

  • douqiang6036 2013-04-06 15:11
    关注

    The first parameter to mail() function is To: email address and I see hostname in your sample.

    Also, consider using array with all these form elements and iterating over it when showing the form and getting its data - it will make the code much more readable, I believe

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 蓝牙耳机怎么查看日志
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏