[英]Sending PHP Information with Mail and Receipt
我的困境是使用php发送表单数据。 当然,我已经看了多篇文章来自己解决这个问题。 在尝试修改我的代码以符合要求之后,我一直没有成功,因为php提交未完成(我认为是。)特别是,在单击Submit之后,下一页没有显示任何内容,也没有弹出电子邮件窗口。 (我希望所有数据都显示在弹出式邮件窗口中。如果只使用html,css,jquery和php语言,即使不在可能的范围内,我也不会受到伤害。)
如果您需要查看html,我也很乐意将其发布。
PHP-代码
<?php
if(isset($_POST['submit'])){
$to = "random@example.com"; // this is your Email address
$from = $_POST['email']; // this is the sender's Email address
$client = $_POST['client'];
$first_name = $_POST['fname'];
$last_name = $_POST['lname'];
$date = $_POST['date'];
$checkin = $_POST['datepicker'];
$due = $_POST['duedate'];
$state = $_POST['state'];
$zip = $_POST['zipcode'];
$phone = $_POST['phoneno'];
$confirm = $_POST['confirm'];
$file1 = $_POST['file1'];
$file2 = $_POST['file2'];
$prime = $_POST['prime'];
$sec = $_POST['second'];
$tri = $_POST['third'];
$dim = $_POST['dimtype'];
$width = $_POST['width'];
$length = $_POST['length'];
$details = $_POST['details'];
$design = $_POST['design'];
$subject = "Form submission";
$subject2 = "Copy of your form submission";
$message = $first_name . " " . $last_name . " wrote the following:" . "\n\n" . $_POST['details'];
$message2 = "Here is a copy of your message " . $first_name . "\n\n" . $_POST['details'];
$headers = "From:" . $from;
$headers2 = "From:" . $to;
mail($to,$subject,$message,$headers);
mail($from,$subject2,$message2,$headers2); // sends a copy of the message to the sender
echo "Mail Sent. Thank you " . $client . ", we will contact you shortly.";
// Function to validate against any email injection attempts
{
$injections = array('(\n+)',
'(\r+)',
'(\t+)',
'(%0A+)',
'(%0D+)',
'(%08+)',
'(%09+)'
);
$inject = join('|', $injections);
$inject = "/$inject/i";
if(preg_match($inject,$str))
{
return true;
}
else
{
return false;
}
}
?>
HTML-这基本上是HTML的一种形式,用户可以用来填写基本信息。 解决此问题后,我将实现Javascript / jQuery脚本来验证表单,然后再将其提交给PHP。 同样,我只是在寻找PHP的解决方案,而不是使用JavaScript。
<form id="project_form" action="_php/mobile.php" method="post" autocomplete="on">
<label for="client">Project Name:</label>
<br />
<input type="text" class="val" placeholder="Ace Designs" name="client" id="client">
<br />
<label for="last_name">Last Name:</label>
<br />
<input type="text" class="val" placeholder="Earl" name="lname" id="lname">
<br />
<label for="first_name">First Name:</label>
<br />
<input type="text" class="val" placeholder="Torey" name="fname" id="fname">
<br />
<label for="email">Email:</label>
<br />
<input type="text" class="val" placeholder="YourAceDesigner@gmail.com" id="email">
<br />
<label for="date">Date:</label>
<br />
<input type="text" class="val" placeholder="03/07/2017" name="date" id="date">
<br />
<label for="checkin">Check-In Date:</label>
<br />
<input type="text" class="val" name="datepicker" id="datepicker">
<script>
$(function() {
$("#datepicker").datepicker({
minDate: -20,
maxDate: "+1M +10D"
});
});
</script>
<br />
<label for="checkin">Check-In Date:</label>
<br />
<input type="text" class="val" placeholder="03/14/2017" name="checkin" id="checkin">
<br />
<label for="state">State:</label>
<br />
<select name="state" id="state" style="margin:.1em 0em 1em .8em; width: 13.3em;">
<option value="blank">Select State</option>
<option value="AL">Alabama</option>
<option value="AK">Alaska</option>
<option value="AZ">Arizona</option>
<option value="AR">Arkansas</option>
<option value="CA">California</option>
<option value="CO">Colorado</option>
<option value="CT">Connecticut</option>
<option value="DE">Delaware</option>
<option value="DC">District Of Columbia</option>
<option value="FL">Florida</option>
<option value="GA">Georgia</option>
<option value="HI">Hawaii</option>
<option value="ID">Idaho</option>
<option value="IL">Illinois</option>
<option value="IN">Indiana</option>
<option value="IA">Iowa</option>
<option value="KS">Kansas</option>
<option value="KY">Kentucky</option>
<option value="LA">Louisiana</option>
<option value="ME">Maine</option>
<option value="MD">Maryland</option>
<option value="MA">Massachusetts</option>
<option value="MI">Michigan</option>
<option value="MN">Minnesota</option>
<option value="MS">Mississippi</option>
<option value="MO">Missouri</option>
<option value="MT">Montana</option>
<option value="NE">Nebraska</option>
<option value="NV">Nevada</option>
<option value="NH">New Hampshire</option>
<option value="NJ">New Jersey</option>
<option value="NM">New Mexico</option>
<option value="NY">New York</option>
<option value="NC">North Carolina</option>
<option value="ND">North Dakota</option>
<option value="OH">Ohio</option>
<option value="OK">Oklahoma</option>
<option value="OR">Oregon</option>
<option value="PA">Pennsylvania</option>
<option value="RI">Rhode Island</option>
<option value="SC">South Carolina</option>
<option value="SD">South Dakota</option>
<option value="TN">Tennessee</option>
<option value="TX">Texas</option>
<option value="UT">Utah</option>
<option value="VT">Vermont</option>
<option value="VA">Virginia</option>
<option value="WA">Washington</option>
<option value="WV">West Virginia</option>
<option value="WI">Wisconsin</option>
<option value="WY">Wyoming</option>
</select>
<br />
<label for="zip">Zip Code:</label>
<br />
<input type="text" class="val" placeholder="99999 or 99999-99" name="duedate" id="zip">
<br />
<label for="phone">Phone No:</label>
<br />
<input type="text" class="val" placeholder="800-999-9999" name="phone" id="phone">
<br />
<div id="field" style="text-align: center;">
<h3 style="
background-color:#5f2b87;
color:#fff;
padding: .7em 0em .7em; 0em;
margin-top:1em;
margin-bottom:.3em;">
Contact Information</h3>
<div name="optionz">
Design:
<select id="design" name='design' style="margin-top:1em;">
<option value="0" disabled selected>Choose Design</option>
<option value="166.25">Logo</option>
<option value="256.25">Brochure(6pages)</option>
<option value="35.25">Print Illustration</option>
<option value="120.25">Vector Illustration</option>
<option value="41.25">Flyer/Handbill</option>
<option value="41.00">Flyer(template)</option>
<option value="66.75">Banner</option>
<option value="250">Billboard</option>
<option value="131.25">Business Card</option>
<option value="412.75">Website(static)</option>
<option value="1212.75">Website(dynamic)</option>
<option value="262.75">Website(Template)</option>
<option value="60.25">Photography (1HR)</option>
<option value="106.25">Photography (3HR)</option>
<option value="231.25">Photography (6HR)</option>
<option value="326.25">Photography (8HR)</option>
</select>
<br /> Confirm:
<select id="confirm" name='confirm' style="margin-top:1em;">
<option disabled selected>Confirm Design</option>
<option>Logo</option>
<option>Brochure(6pages)</option>
<option>Print Illustration</option>
<option>Vector Illustration</option>
<option>Flyer/Handbill</option>
<option>Flyer(template)</option>
<option>Banner</option>
<option>Billboard</option>
<option>Business Card</option>
<option>Website(static)</option>
<option>Website(dynamic)</option>
<option>Website(Template)</option>
<option>Photography (1HR)</option>
<option>Photography (3HR)</option>
<option>Photography (6HR)</option>
<option>Photography (8HR)</option>
</select>
<br />
<input type="hidden" value="" id="my_hidden_field" />
</div>
<br />
<div name="files" id="files">
File Types
<br />
<select name="file1">
<option disabled selected>Choose File</option>
<option>.eps</option>
<option>.jpeg</option>
<option>.jpeg2000</option>
<option>.tiff</option>
<option>.gif</option>
<option>.bmp</option>
<option>.png</option>
<option>.pdf</option>
<option>.pbm</option>
<option>.psd</option>
<option>.ai</option>
<option>.indd</option>
<option>.dwt</option>
<option>other</option>
</select>
<select name="file2">
<option disabled selected>Choose File</option>
<option>.jpeg</option>
<option>.jpeg2000</option>
<option>.tiff</option>
<option>.gif</option>
<option>.bmp</option>
<option>.png</option>
<option>.eps</option>
<option>.pdf</option>
<option>.pbm</option>
<option>.psd</option>
<option>.ai</option>
<option>.indd</option>
<option>.dwt</option>
<option>other</option>
</select>
</div>
<br />
<div name="colors" id="colorz">
Color Scheme
<br />
<input name="prime" size="8" class="jscolor {hash:true}">
<input name="second" size="8" class="jscolor {hash:true}">
<input name="third" size="8" class="jscolor {hash:true}">
</div>
<br />
<div name="dimensions" id="dimenz">
Dimensions
<br />
<select name="dimtype">
<option disabled selected>Unit of Measure</option>
<option>Pixels</option>
<option>Points</option>
<option>Picas</option>
<option>Inches</option>
<option>Millimeters</option>
<option>Centimeters</option>
</select>
<br />
<input size="6" name="width" placeholder="WIDTH" type="number">
<br />
<input size="6" name="length" placeholder="LENGTH" type="number">
</div>
<br />
<div>
Project Notes:
<br />
<textarea name="details" rows="6" cols="40" style="margin-top: 1em;"></textarea>
</div>
<div style="color:#fff;">
Total:
<div name="sum" id='sum'>$0.00</div>
</div>
<div id="float">
<input type="submit" id="sub" name="sub" value="Submit">
<input type="reset" id="reset" name="reset" value="Reset">
</div>
</form>
enter code here
这是我设法找到的完整答案,但这是我想要实现的最好结果。
<?php
if(isset($_POST['submit'])){
Project Name: <?php echo $_POST["client"]; ?><br />
Email: <?php echo $_POST["email"]; ?><br />
Date: <?php echo $_POST["date"]; ?><br />
Check-In: <?php echo $_POST["datepicker"]; ?><br />
Due Date: <?php echo $_POST["duedate"]; ?><br />
State: <?php echo $_POST["state"]; ?><br />
Zip: <?php echo $_POST["zipcode"]; ?><br />
Phone No: <?php echo $_POST["phoneno"]; ?><br />
Design: <?php echo $_POST["confirm"]; ?><br />
File1: <?php echo $_POST["file1"]; ?><br />
File2: <?php echo $_POST["file2"]; ?><br />
Color1: <?php echo $_POST["prime"]; ?><br />
Color2: <?php echo $_POST["second"]; ?><br />
Color3: <?php echo $_POST["third"]; ?><br />
Dimension Type: <?php echo $_POST["dimtype"]; ?><br />
Width: <?php echo $_POST["width"]; ?><br />
Length: <?php echo $_POST["length"]; ?><br />
Details: <?php echo $_POST["details"]; ?>
<br /><br />
Price: <?php echo $_POST["design"]; ?>
$headers = "From:" . $from;
$headers2 = "From:" . $to;
mail($to,$subject,$message,$headers);
mail($from,$subject2,$message2,$headers2);
}
?>
我注意到您的代码中存在以下差异
$to = "random@example.com"; // this is your Email address
$from = $_POST['email']; // this is the sender's Email address
该收件人地址具有一个硬编码的电子邮件地址,而发件人地址来自$_POST['email']
。 请确保这是正确的...
请参考以下PHP Mail Script,它也具有CC的功能。 不需要两个邮件功能。
<?php
/* Simple Plain eMail */
$from = "support@bbminfo.com";
$to = "abc@gmail.com";
$email_cc = "info@bbminfo.com";
$email_bcc = "xyz@yahoo.com";
$subject = "Invitation for New YGen SEO Tool";
$message = "Dear User, We are very glad to inform and invite you, that BBM's YGen SEO Tool (bbminfo.com) is now ready to launch on 15th August, 2013.";
/* Header Information */
$header = "From: " . strip_tags($from) . "\r\n";
$header .= "Cc: " . strip_tags($email_cc) . "\r\n";
$header .= "Bcc: " . strip_tags($email_bcc) . "\r\n";
$header .= "Reply-To: " . strip_tags($from) . "\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-Type: text/plain; charset=us-ascii\r\n";
$flg = mail($to, $subject, $message, $header);
if($flg == true) {
echo("Your message has been sent.");
} else {
echo("Failed to sent.");
}
?>
我认为它将帮助您...
请参考以下链接以获取有关PHP Mail函数的更多信息
在php中,有时邮件功能无法正常运行,最佳实践是使用php mailer类,该类易于实现,并为您提供了很多使用空间。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.