2017-08-25 85 views
0

我的困境是使用php发送我的表单数据。 当然,我已经看过多篇文章来解决这个问题。 试图适应我的代码以适应要求后,我一直没有成功,因为PHP提交没有完成(我假设。) 具体来说,在提交后,没有内容显示在下一页上,也没有电子邮件窗口弹出。 (我宁愿所有的数据将显示在一个弹出窗口邮寄。 我不会,如果它不是在有可能的伤害,如果只是HTML,CSS,jQuery和PHP语言。)发送带有邮件和收据的PHP信息

如果你需要看到html,我很乐意发布它。

PHP - 代码

<?php 
if(isset($_POST['submit'])){ 
$to = "[email protected]"; // 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。解决了这个问题之后,我会在提交给PHP之前实现Javascript/jQuery脚本来验证表单。 同样,我只是在寻找PHP的解决方案,而不是javascripting。

<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="[email protected]" 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 
+0

嗯。如果您也可以发布表单的HTML,这将会很有帮助。很有可能您的变量名称不匹配或提交无效。 –

+0

我添加了HTML –

回答

-2

了一些用PHP次邮件功能并不如预期的最佳实践工作是用PHP邮件类,这是很容易实现,并给你一个很多空间玩。

Here is the link

-1

我在你的代码

$to = "[email protected]"; // this is your Email address 
$from = $_POST['email']; // this is the sender's Email address 

收件人地址有一个硬编码的电子邮件地址和发件人地址从$_POST['email']到来注意到以下差异。请确保这是正确的...

请参阅下面的PHP邮件脚本,它也具有CC的功能。不需要两个邮件功能。

<?php 
    /* Simple Plain eMail */ 
    $from = "[email protected]"; 
    $to = "[email protected]"; 
    $email_cc = "[email protected]"; 
    $email_bcc = "[email protected]"; 
    $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 function

+0

虽然答案总是赞赏,但请在回答本身中填写您的链接点**(https://meta.stackexchange.com/a/148274)。该网页的链接可能会在未来中断,这可能会降低您的答案**(http://meta.stackexchange.com/a/8259)。事实上,仅仅是一个链接[**的答案可能被删除**](http://stackoverflow.com/help/deleted-answers)。几个句子或一些覆盖链接关键点的示例代码将使您的答案保持健全,即使链接不再有效:​​) –

+0

@ObsidianAge当然,我会添加示例源代码... –

+0

谢谢澄清输入和我感谢您的链接@ B.Balamanigandan。但是,您提供的链接适用于附加元素作为反对表单提交,并且页面上存在一些断开的链接。我相信这个概念是相似的。但我一直在遇到页面仍然无法在本地和在线服务器上加载的问题。我发现了另一个回应我需要的变量的解决方案,但我仍然缺乏。 –

0

这是一个完整的答案,我设法找到了,但是这有最好的结果我想要发生的事情。

<?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); 
    } 
?> 
相关问题