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 関数を正しく使用していないため、文字列を 1 つだけ渡す必要があります。wordwrap に渡す前に文字列を追加します。

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

http://php.net/manual/en/function.wordwrap.phpの wordwrap 関数も参照してください。

于 2012-05-06T21:27:34.303 に答える
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

家の名前や番号/住所の1行目/2行目が壊れていないのはなぜですか?

于 2012-05-07T09:13:59.330 に答える
0

私は問題が何であるかを知っています。ワードラップ引数を間違って使用しているために一部のデータが復活しないことを確認してください。

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

を使用する場合、これは正しくありません。ABOVE コードで$fName宣言されていますが、$city は実際にはローカル変数に転送されます。$_POST['fName']$_POST

$fNameコードを $first およびその他の変数に変更する必要があります。幸運を。

于 2012-05-06T21:57:55.580 に答える