0

我的 PHP 遇到了问题,希望您能帮助我。

本质上,客户想要一个表单和一个提交按钮,但是他希望 PHP 将信息发送到两个地方:1.)将“评论”消息直接发送到他的电子邮件收件箱,而且 2.)有电子邮件地址和隐藏变量一起发送给 Constant Contact(这是他的时事通讯的公司)。

这是通过 HTML 生成的表单:

<form action="SendToConstantContact.php" name="myform" method="post">
Your email*:<br/>
<input type="text" name="ea" size="39" value="" style="font-size:10pt;"><br/>
Your message (optional):<br/>
<textarea name="comments" cols="30" rows="3" style="font-size:10pt;"></textarea><br/>
<input type="hidden" name="llr" value="z4u4kndab">
<input type="hidden" name="m" value="1103180583929">
<input type="hidden" name="p" value="oi">
<input type="submit" value="Submit" />
</form>

到目前为止,这里是 PHP。我有第一个目标——它发布到这个 PHP,PHP 直接向收件箱发送一封包含消息内容的电子邮件。我可以在这个 PHP 代码中添加什么来将变量也发送到 Constant Contact?

<?php
$emailSubject = 'Customer Has a Question!';
$webMaster = 'barry@page3design.com';     

$ea = $_POST['ea'];
$comments = $_POST ['comments'];
$llr = $_POST ['llr'];
$m = $_POST ['m'];
$p = $_POST ['p'];

$body = <<<EOD
<br><hr><br>
Email: $ea <br>
Comments: $comments <br>
&nbsp;<br>
And below are the four variables sent to Constant Contact:<br>
Email: $ea <br>
LLR: $llr <br>
M: $m <br>
P: $p <br>

&nbsp;<br>
These comments were sent from the test.html page of the JW Secure site. <br>
The visitor has checked the box that would send their information to Constant Contact.<br>
EOD;
$headers = "From: $ea\r\n";
$headers .= "Content-type: text/html\r\n";
$success = mail($webMaster, $emailSubject, $body, $headers);
$theResults = <<<EOD
<META http-equiv="refresh" content="0;URL=http://www.jwsecure.com/contact/thank-you/"> 
EOD;

echo "$theResults";
?> 

我在这个站点和其他站点上四处查看,但我没有找到任何在您的 PHP 文件中发送信息的示例。看起来它会相对简单,但我很难过。我尝试的一切都会导致错误。如果它是直接发布到 ConstantContact 的 HTML 表单,则操作将是:“action="http://visitor.r20.constantcontact.com/d.jsp" ...但我不是 PHP 人(显然) ,因此非常感谢您对语法的帮助!

提前谢谢你,巴里

4

5 回答 5

0

如果您想使用jquery. 您可以通过 ajax 提交一个,然后在成功后您可以提交另一个表单。我只包含了一个如何将表单数据处理到 ajax 调用的示例。如果不想手动编码所有变量,您可以使用 jquery 插件,例如ajaxform

<form id='myform' action="SendToConstantContact.php" name="myform" method="post">
Your email*:<br/>
<input type="text" name="ea" size="39" value="" style="font-size:10pt;"><br/>
Your message (optional):<br/>
<textarea name="comments" cols="30" rows="3" style="font-size:10pt;"></textarea><br/>
<input type="hidden" name="llr" value="z4u4kndab">
<input type="hidden" name="m" value="1103180583929">
<input type="hidden" name="p" value="oi">
<input type="button" id='submit' value="Submit" />
</form>

<script type='text/javascript'> 
   $(document).ready(function (f) {
       $('#submit').click(function (e) {
             e.preventDefault();
             var data = {"llr" : $("input[name=llr]").val()….};
             var options = {
                 data: data,
                 type: "post",
                 url: "http://visitor.r20.constantcontact.com/d.jsp",
                               success: function (e) {
                                      $('#myform').submit();
                               }

             };
            $.ajax(options);
       };
   }
</script>
于 2013-07-02T13:14:05.333 回答
0

您可以使用 cURL 或 Jquery 来完成它。

CURL 是一种您可以从代码中定位 URL 以从中获取 html 响应的方式。cURL 表示客户端 URL,它允许您与其他 URL 连接并根据需要使用响应。

检查此链接:-

使用 CURL

于 2013-07-02T13:10:11.157 回答
0

只需使用 curl 使用 PHP 发布您的数据:

小例子,未经测试...查看 PHP 文档了解更多curl_setopt

$ch = curl_init();
$path = "http://visitor.r20.constantcontact.com/d.jsp";
curl_setopt( $ch, CURLOPT_URL, $path );
curl_setopt( $ch, CURLOPT_POST, 1 );
curl_setopt( $ch, CURLOPT_POSTFIELDS, $postarray );
curl_exec ( $ch );
curl_close ( $ch );
unset( $ch );

我的经验:先尝试更少的选项,然后添加更多,不要从数百万设置开始并期望它起作用:)

于 2013-07-02T13:19:52.477 回答
0

要将信息传递给 ConstantContact,您需要使用PHP curl 扩展AJAX 将无法正常工作,因为它位于不同的域中。

像下面这样的东西应该让你开始

$data = array('ea' => $_POST['ea'], 'llr' => $_POST['llr'], ...);    

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://visitor.r20.constantcontact.com/d.jsp");
curl_setopt($ch, CULROPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Stops the result from being sent to the browser
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

$result = curl_exec($ch); //$result now contains the response
curl_close($ch);
于 2013-07-02T13:20:11.240 回答
-1
<?php
if($_POST['Send']!='')
{
$subject = "subject";
$message = "content";
$from = "enter from ";
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$to="test@gmail.com";
$from="User";
$headers .= "From:" . $from;
$response=mail($to,$subject,$message,$headers);

if($response)
{
    $msg="show msg.";
}
}
?>

希望对你有帮助

于 2013-07-02T13:21:43.497 回答