1

我正在为锅炉工程师建立一个网站,网站上有一个表格,我想收集用户提供的数据并通过电子邮件发送,表格如下 -

<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>

我有以下 php 来收集数据并发送电子邮件,它发送电子邮件但它不收集提供的任何数据.....我收到空白电子邮件!

<?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\n";

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

$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");

?>

请帮忙,非常感谢

4

3 回答 3

1

您没有正确使用 wordwrap 函数,您只需要传递一个字符串。在将字符串传递给 wordwrap 之前附加字符串。

$message = $fName . $lName . $...

另请参阅http://php.net/manual/en/function.wordwrap.php上的 wordwrap 功能

于 2012-05-06T21:27:34.303 回答
0

我知道是什么问题,看看有些数据不会恢复,因为你使用了错误的自动换行参数,看看:

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

如果您使用 是不正确的$fName,它$_POST['fName']在您的 ABOVE 代码中声明,但 $city 确实是从转移$_POST到局部变量中的。

您必须将$fName代码更改为 $first 和其他变量。祝你好运。

于 2012-05-06T21:57:55.580 回答
0

好的,我设法做到了-

<?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\n";

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

$recipient  = "blah@gmail.com";

$subject    = "Message from iFixBoilers.com";

$message    = "A message has been sent from: \n\n"; foreach($fields as $a => $b){ $message .= sprintf("%20s: %s\n",$b,$_REQUEST[$a]); }

// SEND THE EMAIL TO YOU

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



// REDIRECT TO THE THANKS PAGE

header("location: thanks.php");

?>

唯一的问题是邮件像

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

为什么房屋名称或号码/第一行地址/第二行地址没有损坏?

于 2012-05-07T09:13:59.330 回答