PHP:PHP中的一个表单,一个提交,几个“操作”

时间:2013-07-02 13:03:52

标签: php forms

我遇到了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人员(显然) ,所以非常感谢语法帮助!

提前谢谢你, 百里

5 个答案:

答案 0 :(得分:0)

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

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

检查此链接: -

Working with CURL

答案 1 :(得分: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>

答案 2 :(得分: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 );

我的经验:首先尝试更少的选项,然后添加更多选项,不要使用数百万个设置启动并期望它能够正常工作:)

答案 3 :(得分:0)

要将信息传递给ConstantContact,您需要使用PHP curl extension 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);

答案 4 :(得分:-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.";
}
}
?>

希望它会帮助你