繁体   English   中英

通过邮件和收据发送PHP信息

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM