Php 如何?将邮件发送到多个位置
我有一个表单,我需要发布到多个脚本。我怎样才能用最简单的方法做到这一点 我知道可以用Javascript、Curl或Snoopy类来完成,但实际上哪种方法是最简单和最好的 其中一个脚本发送电子邮件,它是一个php文件,另一个托管在其他地方Php 如何?将邮件发送到多个位置,php,forms,Php,Forms,我有一个表单,我需要发布到多个脚本。我怎样才能用最简单的方法做到这一点 我知道可以用Javascript、Curl或Snoopy类来完成,但实际上哪种方法是最简单和最好的 其中一个脚本发送电子邮件,它是一个php文件,另一个托管在其他地方 需要收集两个脚本上的数据。最好的方法是首先将表单提交到本地脚本,然后使用CURL将接收到的(过滤后的)数据发布到远程脚本。那就观察一下反应吧 然后只需发送电子邮件,并在本地脚本中处理来自远程脚本的响应。这就是使用一个操作向多个主机提交表单的结果 我发布了通常的
需要收集两个脚本上的数据。最好的方法是首先将表单提交到本地脚本,然后使用CURL将接收到的(过滤后的)数据发布到远程脚本。那就观察一下反应吧
然后只需发送电子邮件,并在本地脚本中处理来自远程脚本的响应。这就是使用一个操作向多个主机提交表单的结果 我发布了通常的邮件脚本,然后包含了使用Curl发布到第二个主机的代码 下面是实际的代码,使用了一些小的调整,比如不必使用“extract” 可在()找到:
最简单的方法是使用jQuery向每个脚本发送$.ajax(或$.post或$.get),从每个脚本中检索结果,并对结果进行处理
$(document).ready( function(){
$('#mySubmitButton').click(function(){
//Send data to the email script
$.post( 'send-email.php', $('form').serialize(), function(data, textStatus) {
//data is the result from the script
alert(data);
});
//Send data to the other script
$.post( 'my-other-script.php', $('form').serialize(), function(data, textStatus) {
//data is the result from the script
alert(data);
});
});
});
更新:
serialize命令是正在发送的数据。看看jQuery序列化函数。它基本上只接受表单中的各种输入、选择、文本区域、复选框等,并将它们放入如下字符串中:
RePost "http://www.SomeOtherDomain.com/SomeOtherScript.asp"
myNameInput=john&active=on&whateverSelected=3
它只是表单元素名称及其值的字符串。这就是通过ajax命令发送到外部脚本的内容
另一个注意事项是,在执行序列化时,确保所有表单元素都有一个name属性,而不仅仅是一个id。序列化不会注意它们的id。只有他们的名字。我只需要用ASP。我想在一个域上的电子邮件处理脚本中发布一个表单,并通过单击一个按钮在另一个域上的MySQL数据库上记录该操作。这在许多其他情况下也可能有用 在HTML表单定义上不能有多个操作。因此,只需将其发送到一个位置,处理表单,然后将表单“重新发布”到另一个位置。您可以在任意长度的脚本“链”中执行此操作 首先将此ASP子例程添加到脚本中。如果您使用的是PHP或其他语言,您只需将这些代码翻译成您自己的语言,这个概念就行了
sub RePost( Destination )
RePostString = "<HTML><BODY>" & vbCRLF
if( (Trim(Destination) <> "") and (Request.ServerVariables("REQUEST_METHOD") = "POST") ) then
RePostString = RePostString & "<FORM METHOD=POST NAME=""RePostForm"" ACTION=""" & Destination & """>" & vbCRLF
for each Item in request.form
if( not len(item) <= 0 ) Then
RePostString = RePostString & "<INPUT TYPE=HIDDEN NAME=""" & item & """ VALUE=""" & Request.form( item ) & """>" & vbCRLF
end if
next
RePostString = RePostString & "</FORM>" & vbCRLF & _
"<script language=""JavaScript"" type=""text/javascript""> window.onLoad = document.RePostForm.submit(); </script>"
else
RePostString = "<CENTER><H1><BR><BR>Sorry! Internal Scripting Error Encountered!</H1></CENTER>" & vbCRLF
end if
RePostString = RePostString & "</BODY></HTML>"
Response.Write( RePostString )
end sub
如果需要,在所有脚本上重复链接过程,最后您可能希望重定向到原始域(表单来源)上的页面,或者做一些事情向用户显示成功消息。我同意这一点,我会先发送到本地脚本,清理/etc。然后发送到远程。post脚本之一是否可以是https位置?我看不出您将值传递到脚本的位置。是连载吗?
RePost "http://www.SomeOtherDomain.com/SomeOtherScript.asp"