PHP表单有多个动作

时间:2011-12-13 02:07:20

标签: php forms action

我有一个我正在处理的邮件列表表单需要让用户通过电子邮件订阅多个电子邮件列表,这些邮件列表基于他们选择的复选框。现在订阅邮件列表,它只是通过电子邮件发送 - list _#@ domain.com

我很好奇是否可以使用PHP进行此类操作,然后根据是否选中相关的复选框将电子邮件发送到不同的列表?

3 个答案:

答案 0 :(得分:3)

当然可以!只需使用PHP的mail function即可通过用户在网络表单中指定的电子邮件地址向所需的收件人发送邮件。

但是,有一点需要注意:您可能会遇到一些邮件服务器和人工创建的“From”标题(如邮件功能中使用的那些)。出于安全原因,如果某条消息似乎对它的来源不明确(即:意外的发送方IP),则某些服务器会将违规的IP列入黑名单,从而无法将该IP的邮件发送到该服务器。您可能会更好,包括订阅者在电子邮件主题或正文中的地址,并使用该数据(而不是From标题)将收件人添加到您的邮件列表中。

编辑:还值得注意的是,如果有可能在邮件脚本的一次执行中订阅许多邮件列表(阅读:发送许多电子邮件),您可能希望放弃mail()之类的内容,例如{ {3}}。原因是mail()必须为它发送的每条消息打开一个新的SMTP套接字,而上面提到的包更适合批量发送邮件。

答案 1 :(得分:0)

我个人会在2个单独的函数中运行它,1个用于订阅电子邮件列表,第二个函数用于发送邮件。

在不知道您用于存储订阅数据的数据库或结构的情况下,我将创建function以将订阅信息插入数据库中。我可能这样做的方式(仅仅是为了数据库结构的灵活性)是构建array订阅的邮件列表并使用foreach循环进行循环。

接下来是实际发送的电子邮件,我会设置一个特殊的邮件帐户,其中包含我将发送给它的所有电子邮件别名,然后我会使用“将邮件传输(或轮询)到我的系统中” CRON作业“,当CRON正在运行时,我会通过SMTP通过我首选的ISP或SMTP服务器发送邮件。这又是一个自定义函数,但我过去使用过Pear SMTP处理程序。如果你快速谷歌搜索“php smtp处理程序”,那里有许多SMTP处理程序。

我希望这会有所帮助。

答案 2 :(得分:0)

这是一个使用单选按钮的简单表单操作。

 <html>
 <head>
 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
 <link rel="stylesheet" href="style.css" />
 <script type="text/javascript">
 $(document).ready(function() {
      $('input[type=submit]').click(function(e){
      e.preventDefault();   
      var id = $('input[type=radio]:checked').attr('id');
           if(id == "radio1") {
                //do an ajax call to a php file to subscribe
           } else if(id == "radio2") {
                //do an ajax call to a php file to mail
           } else {
                //do an ajax call to a php file to others
           }
      });
 });
 </script>
 </head>
 <body>
 <form>
 <input type='text' id='fname' name='fname'>
 <input type='text' id='lname' name='lname'>
 <input type='radio' id='radio1' name='lname'>
 <input type='radio' id='radio2' name='lname'>
 <input type='radio' id='radio3' name='lname'>
 <input type='submit' value='submit'>
 </form>

 </body>
 </html>

*注意:我使用单选按钮限制用户只选择一个选项