duandao3265 2012-05-06 21:17
浏览 109
已采纳

使用php从表单中收集表单数据并通过电子邮件发送

i am building a website for a boiler engineer, on the site is a form and i want to collect the data provided by the user and send it in an email, the form is as follows -

<form name="fix" method="POST" action="http://localhost/PHP/fixscript.php">
<table width="800" border="0" cellspacing="10" cellpadding="5">
<tr>
<td width="230" valign="top" align="right">First name: </td>
<td width="503" valign="top" align="left">
<input type="text" name="fName" id="fName" size="50" maxlength="20" /></td>
</tr>
<tr>
<td width="230" valign="top" align="right">Surname: </td>
<td width="503" valign="top" align="left">
<input type="text" name="lName" id="lName" size="50" maxlength="20" /></td>
</tr>
<tr>
<td width="230" valign="top" align="right">Contact phone number: </td>
<td width="503" valign="top" align="left">
<input type="text" name="phone" id="phone" size="50" maxlength="20" /></td>
</tr>
<tr>
<td width="230" valign="top" align="right">Email: </td>
<td width="503" valign="top" align="left">
<input type="text" name="email" id="email" size="50" maxlength="75" /></td>
</tr>
<tr>
<td width="230" valign="top" align="right">House name or number: </td>
<td width="503" valign="top" align="left">
<input type="text" name="num" id="num" size="50" maxlength="75" /></td>
</tr>
<tr>
<td width="230" valign="top" align="right">First line of your address: </td>
<td width="503" valign="top" align="left">
<input type="text" name="address1" id="address1" size="50" maxlength="100" /></td>
</tr>
<tr>
<td width="230" valign="top" align="right">Second line of your address: </td>
<td width="503" valign="top" align="left">
<input type="text" name="address2" id="address2" size="50" maxlength="100" /></td>
</tr>
<tr>
<td width="230" valign="top" align="right">Town/City: </td>
<td width="503" valign="top" align="left">
<input type="text" name="city" id="city" size="50" maxlength="50" /></td>
</tr>
<tr>
<td width="230" valign="top" align="right">County: </td>
<td width="503" valign="top" align="left">
<input type="text" name="county" id="county" size="50" maxlength="50" /></td>
</tr>
<tr>
<td width="230" valign="top" align="right">Post code: </td>
<td width="503" valign="top" align="left">
<input type="text" name="postCode" id="postCode" size="50" maxlength="10" /></td>
</tr>
<tr id="fuel">
<td width="230" valign="top" align="right">Fuel Type: </td>
<td width="503" valign="top" align="left">
<input type="radio" name="fuelType" id="fuel1" value="Natural Gas" onclick="showOptions(this);" />
<label for="fuel1">Natural Gas</label>
<input type="radio" name="fuelType" id="fuel2" value="LPG" onclick="showOptions(this);" />
<label for="fuel2">LPG</label>
<input type="radio" name="fuelType" id="fuel3" value="Oil" onclick="showOptions(this);" />
<label for="fuel3">Oil</label>
</td>
</tr>
<tr id="bmgas">
<td width="230" valign="top" align="right">Boiler manufacturer: </td>
<td width="503" valign="top" align="left">
<select name="gas" id="gas" >
<option value="0">Natural Gas</option>
<option value="Alpha Boilers">Alpha Boilers</option>
<option value="Ariston">Ariston</option>
<option value="Baxi">Baxi</option>
<option value="Biasi">Biasi</option>
<option value="Broag">Broag</option>
<option value="Ferroli">Ferroli</option>
<option value="Glowworm">Glowworm</option>
<option value="Halstead Heating">Halstead Heating</option>
<option value="Ideal Boilers">Ideal Boilers</option>
<option value="Ikon">Ikon</option>
<option value="Jaguar">Jaguar</option>
<option value="Johnson &amp; Starlay">Johnson &amp; Starlay</option>
<option value="Keston Boilers">Keston Boilers</option>
<option value="Potterton">Potterton</option>
<option value="Range Powermax">Range Powermax</option>
<option value="Raven Heat">Raven Heat</option>
<option value="Vaillant">Vaillant</option>
<option value="Viessmann">Viessmann</option>
<option value="Vokera">Vokera</option>
<option value="Worcester">Worcester</option>
<option value="Unknown">Unknown</option>
<option value="Not Listed">Not Listed</option>
</select>
</td>
</tr>
<tr id="bmlpg">
<td width="230" valign="top" align="right">Boiler manufacturer: </td>
<td width="503" valign="top" align="left">
<select name="lpg" id="lpg">
<option value="0">LPG</option>
<option value="Alpha Boilers">Alpha Boilers</option>
<option value="Baxi">Baxi</option>
<option value="Keston Boilers">Keston Boilers</option>
<option value="Potterton">Potterton</option>
<option value="Vaillant">Vaillant</option>
<option value="Viessmann">Viessmann</option>
<option value="Worcester">Worcester</option>
<option value="Unknown">Unknown</option>
<option value="Not Listed">Not Listed</option>
</select>
</td>
</tr>
<tr id="bmoil">
<td width="230" valign="top" align="right">Boiler manufacturer: </td>
<td width="503" valign="top" align="left">
<select name="oil" id="oil">
<option value="0">Oil</option>
<option value="Buderas">Buderas</option>
<option value="Danesmoor">Danesmoor</option>
<option value="Firebird">Firebird</option>
<option value="Grant">Grant</option>
<option value="HRM">HRM</option>
<option value="Nuway Oil">Nuway Oil</option>
<option value="Thermeco">Thermeco</option>
<option value="Trianco">Trianco</option>
<option value="Worcester">Worcester</option>
<option value="Unknown">Unknown</option>
<option value="Not Listed">Not Listed</option>
</select>
</td>
</tr>
<tr id="sevice">
<td width="230" valign="top" align="right">Last Service: </td>
<td width="503" valign="top" align="left">
<select name="lastServ" id="lastServ">
<option value="0">Last Service</option>
<option value="6 months">Less than 6 months ago</option>
<option value="1 year">One year ago</option>
<option value="2 years">Two years ago</option>
<option value="never">Never been serviced</option>
<option value="unknown">unknown</option>
</select>
</td>
</tr>
<tr id="message">
<td class="form" width="230" valign="top" align="right">Your message: </td>
<td width="503" valign="top" align="left">
<textarea name="msg" id="msg" cols="40" rows="10"></textarea>
</td>
</tr>
<tr id="message1">
<td width="230" valign="top" align="right">Brief Description of fault: </td>
<td width="503" valign="top" align="left">
<textarea name="msg1" id="msg1" cols="40" rows="10"></textarea>
</td>
</tr>
<tr>
<td width="230" valign="top"> </td>
<td width="503" valign="top" align="left">
<input type="button" name="return" id="return" class="button" value="Return"  onclick="location.reload;" />&nbsp;&nbsp;&nbsp;&nbsp;
<input type="reset" name="reset" class="button2" value="Reset" onclick="hide(bmgas, bmlpg, bmoil);" />&nbsp;&nbsp;&nbsp;&nbsp;
<input type="submit" name="submit" class="button3" value="Submit" onsubmit="checkForm();" />
</td>
</tr>
</table>
</form>

i have the following php to collect the data and send the email, it sends the email but it does not collect any of the data provided..... i get blank emails!

<?php

// VALUES FROM THE FORM

$first      = $_POST['fName'];
$last       = $_POST['lName'];
$phone      = $_POST['phone'];
$email      = $_POST['email'];
$number     = $_POST['num'];
$address1   = $_POST['address1'];
$address2   = $_POST['address2'];
$city       = $_POST['city'];
$county     = $_POST['county'];
$postCode   = $_POST['postCode'];
$fuelType   = $_POST['fuelType'];
$fuelGas    = $_POST['gas'];
$fuelLpg    = $_POST['lpg'];
$fuelOil    = $_POST['oil'];
$lastServ   = $_POST['lastServ'];
$msg        = $_POST['msg'];
$msg1       = $_POST['msg1'];

// CREATE THE EMAIL

$headers    = "Content-Type: text/plain; charset=iso-8859-1
";

$headers    = "From: $first $last <$email>
";

$recipient  = "blah@gmail.com";

$subject    = "Message from blah.com";

$message    = wordwrap($message, $fName, $lName, $phone, $number, $address1, $address2, $city, $county, $postCode, $fuelType, $fuelGas, $fuelLpg, $fuelOil, $lastServ, $msg, $msg1, 1024);



// SEND THE EMAIL TO YOU

mail($recipient, $subject, $message, $headers);



// REDIRECT TO THE THANKS PAGE

header("location: thanks.php");

?>

please help, many thanks

  • 写回答

3条回答 默认 最新

  • douping6871 2012-05-07 09:13
    关注

    ok i managed to do it with -

    <?php
    
    // VALUES FROM THE FORM
    
    $first      = $_REQUEST['fName'];
    $last       = $_REQUEST['lName'];
    $phone      = $_REQUEST['phone'];
    $email      = $_REQUEST['email'];
    $number     = $_REQUEST['num'];
    $address1   = $_REQUEST['address1'];
    $address2   = $_REQUEST['address2'];
    $city       = $_REQUEST['city'];
    $county     = $_REQUEST['county'];
    $postCode   = $_REQUEST['postCode'];
    $fuelType   = $_REQUEST['fuelType'];
    $fuelGas    = $_REQUEST['gas'];
    $fuelLpg    = $_REQUEST['lpg'];
    $fuelOil    = $_REQUEST['oil'];
    $lastServ   = $_REQUEST['lastServ'];
    $msg        = $_REQUEST['msg'];
    $msg1       = $_REQUEST['msg1'];
    
    $fields = array();
    $fields{"fName"} = "First Name";
    $fields{"lName"} = "Last Name";
    $fields{"phone"} = "Phone Number";
    $fields{"email"} = "Email";
    $fields{"num"} = "House Number or Name";
    $fields{"address1"} = "First Line Of Address";
    $fields{"address2"} = "Second Line Of Address";
    $fields{"city"} = "Town Or City";
    $fields{"county"} = "County";
    $fields{"postCode"} = "Post Code";
    $fields{"fuelType"} = "Fuel Type";
    $fields{"gas"} = "Gas Boiler Type";
    $fields{"lpg"} = "LPG Boiler Type";
    $fields{"oil"} = "Oil Boiler Type";
    $fields{"lastServ"} = "last Serviced";
    $fields{"msg"} = "Message";
    $fields{"msg1"} = "Description of fault";
    
    // CREATE THE EMAIL
    
    $headers    = "Content-Type: text/plain; charset=iso-8859-1
    ";
    
    $headers    = "From: $first $last <$email>
    ";
    
    $recipient  = "blah@gmail.com";
    
    $subject    = "Message from iFixBoilers.com";
    
    $message    = "A message has been sent from: 
    
    "; foreach($fields as $a => $b){ $message .= sprintf("%20s: %s
    ",$b,$_REQUEST[$a]); }
    
    // SEND THE EMAIL TO YOU
    
    mail($recipient, $subject, $message, $headers);
    
    
    
    // REDIRECT TO THE THANKS PAGE
    
    header("location: thanks.php");
    

    ?>

    only thing is the mail comes out like

    A message has been sent from: 
    
              First Name: rob
               Last Name: whatever
            Phone Number: 01901111118
                   Email: blah@gmail.com House Number or Name: 1001 First Line Of Address: where ever crescent Second Line Of Address: bton by sea
            Town Or City: bton
                  County: sussex
               Post Code: bn11 1bb
               Fuel Type: Natural Gas
         Gas Boiler Type: Glowworm
         LPG Boiler Type: 0
         Oil Boiler Type: 0
           last Serviced: 2 years
                 Message: 
    Description of fault: sdfgdfgdgdfgdgdfgdgdgsd
    

    why is house name or number/ first line of address/ second line of address not broken?

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

报告相同问题?

悬赏问题

  • ¥15 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?