当前位置: 首页 > 图文教程 > 网络编程 > PHP > 管理小型的邮件列表

PHP
linux php mysql数据库备份实现代码
php mssql 日期出现中文字符的解决方法
PHP中查询SQL Server或Sybase时TEXT字段被截断的解决方法
php 动态添加记录
php 结果集的分页实现代码
php执行sql语句的写法
php连接mysql数据库代码
php 表单验证实现代码
php URL编码解码函数代码
php 表单数据的获取代码
php 异常处理实现代码
php 删除记录实现代码
php 获取mysql数据库信息代码
PHP 文件类型判断代码
解决163/sohu/sina不能够收到PHP MAIL函数发出邮件的问题
php session 预定义数组
php session 检测和注销
php session处理的定制
php session应用实例 登录验证
php cookis创建实现代码

PHP 中的 管理小型的邮件列表


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 324 ::
收藏到网摘: n/a

       管理小型的邮件列表
  limodou译
  
  
    最近有一个读者问我关于ThickBook新闻列表中处理订阅/退订的机制,并且是如何与实际的发送信息相
  配合,给邮件列表中的所有收信人的。问题提的不错,有一个相当容易的方法,但是我首先要说的是我所做
  的没有任何投机取巧的地方,因为我非常的酷----就是有,我使用这个方法也只是因为我懒。注意,在市面
  上有非常多的邮件列表软件,可以把它装在系统上,并且也有一些别的,更多的是结合在一起的脚本集,你
  也可以用来做同样的事情。但是,正如我所说,我是一个懒人,不想下载和安装任何东西,所以我生成了几
  个相当简单的页面,用来执行我所要求的工作。很希望,有人能从中学到一些东西。
  
    首先是订阅/退订脚本,它所做的工作就是从数据库表中增加或删除记录。把它叫做"manage.phtml" 或
  差不多的什么东西。这样呢,就需要后台是某种数据库,在上面可以创建订阅表。根据政治中的半数原则,
  所以我将使用MySQL作为这个例子的数据库。你可以使用任何你常用的数据库,只是根据PHP手册替换正确的
  数据库相关函数。
  
    在我的订阅表中,我使用了两个字段:邮件地址(email_addr)和添加日期(date_added)。你可以根据需
  要增加字段,或者将date_added字段删除。在这个例子中,我只是向你展示我做了什么,你可以适当的进行
  修改。在我的订阅表中,email_addr字段是一个不重复字段,意味着你不能增加另一个与之完全一样的e-mail
  地址。这个可以避免重复订阅,而且当用户想退订时,也使删除记录的方法变得简单和可靠。
  
    那么,让我们创建订阅/退订表单吧(manager.phtml或你想起的什么名字)。我使用同一个文件处理订
  阅和退订,也包括表格自身的动作,所以可能有点复杂。我将从头到尾讲解,然后把所有的片段组合在一起,
  放在一个表单中。
  
    在脚本的开始处,是打开数据库和准备时间戳。在开始时处理这些不显眼的东西总是可以为我减轻一点
  压力。
  
  --------------------------------------------------------------------------------
  // 连接数据库
  $db = mysql_connect("servername", "username", "password") or die ("不能连接。");
  
  mysql_select_db("yourDB", $db) or die ("不能选择数据库。");
  
  // 得到时间戳
  $add_date = date("Y-m-d"); --------------------------------------------------------------------------------
    我们希望$op的值是"ds"。它不是复杂的程序缩写----我创的,表示"do something(做某事)" 。所以,
  脚本的第一件事就是查看$op的值是不是等于"ds"。这个值只有当表单被提交后才会被发送上来。所以如果
  $op的值不是"ds",那么说明用户还没有看过表单,所以应该把表单显示出来:
  
  --------------------------------------------------------------------------------
  if ($op != "ds") {
  
  //需要订阅/退订
  
  $text_block = "
  
  <form name=\"form\" method=post action=\"$PHP_SELF\">
  <input type=hidden name=op value=ds>
  
  <p><strong>your e-mail address:</strong><br>
  <input type=text name=\"email\" size=25></p>
  
  <p><strong>action:</strong><br>
  <input type=radio name=\"action\" value=\"sub\" checked> sub
  <input type=radio name=\"action\" value=\"unsub\"> unsub</p>
  
  <P><input type=submit name=\"submit\" value=\"do it\"></p>
  </form>
  
  ";
  
  }--------------------------------------------------------------------------------
    你会注意到我把文本放在$text_block变量中。通过把文本放在一个变量中,接下来我所要做的就是在
  后面在主HTML模板内输出$text_block的值。这是个人习惯问题,你可以根据你喜欢的时