繁体   English   中英

带验证和贝宝的 PHP 联系表

[英]PHP Contact Form w/ verification & Paypal

目标是让客户填写表格

然后点击提交,这将发送一封电子邮件

然后会出现一条消息

然后重定向到一个简单的 paypal 付款,该付款全部隐藏

我无法将页面打开到 paypal

 <? php // configure $name = $_POST['name']; $from = 'contact <demo@domain.com>'; $sendTo = 'NEWCONTACT<new@gmail.com>'; $subject = 'New contact'; $fields = array('name' => 'Name', 'email' => 'Email', 'residence' => 'Residence', 'qualification' => 'Qualification', 'marital' => 'Marital', 'children' => 'Children', 'income' => 'Income', 'asset' => 'Asset', 'phone' => 'phone', 'nationality' => 'Nationality', 'interested' => 'interested', 'occupation' => 'Occupation', 'soccupation' => 'Spouse Occupation', 'SpouseEducationalQualification' => 'SpouseEducationalQualification', 'history' => 'History', 'source' => 'Source', 'comments' => 'Comments'); // array variable name => Text to appear in the email $okMessage = 'Contact form successfully submitted. Thank you '.$name. ', I will get back to you soon!'; $errorMessage = 'There was an error while submitting the form. Please try again later'; // let's do the sending try { foreach($_POST as $key => $value) { if (isset($fields[$key])) { $emailText. = "<pre>". "$fields[$key]: $value". "</pre>"; } } $headers = array('Content-Type: text/html; charset="UTF-8";', 'From: '.$from, 'Reply-To: '.$from, 'Return-Path: '.$from, ); mail($sendTo, $subject, $emailText, implode("\\n", $headers)); $responseArray = array('type' => 'success', 'message' => $okMessage); } catch (\\Exception $e) { $responseArray = array('type' => 'danger', 'message' => $errorMessage); } if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { $encoded = json_encode($responseArray); header('Content-Type: application/json'); echo $encoded; } else { echo $responseArray['message']; } $query_data = array( 'amount' => '900', 'business' => 'uaetousavisa@gmail.com', 'cmd' => '_xclick', 'currency_code' => 'USD', 'item_number' => $_POST['item_number'], 'item_name' => $_POST['item_name'] ); // redirect to PayPal header('Location: https://www.paypal.com/?'.http_build_query($query_data));
 <form id="contact-form" method="post" action="contact.php" role="form"> <div class="col-md-6"> <div class="form-group"> <input class="form-control" id="form_name" name="name" type="name" placeholder="Your Full Name" required="required" data-error="Firstname is required."> <div class="help-block with-errors"></div> </div> <div class="form-group"> <input class="form-control" id="form_email" name="email" type="email" placeholder="Your email" required="required" data-error="Email is required."> <div class="help-block with-errors"></div> </div> <div class="form-group"> <input class="form-control" id="income" type="text" name="income" placeholder="Net Monthly Income"> </div> </div> <div class="col-md-12"> <button type="submit" class="btn btn-default more-get" name="buy">Submit</button> <div class="messages"></div> </form>

和 php

您在 HTTP 标头中发送混合指令。

虽然您可以同时发送正文数据和重定向标头,但由于将遵循重定向,因此毫无意义。

但真正的问题是您在设置重定向标头( header: location....');之前发送数据( echo ... header: location....'); - 您必须在输出前发送所有标头。

如果您真的想按此顺序回显数据,请按照此处的技巧进行操作: 面试问题:我们可以在标题之前进行回显吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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