多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > 讓PHP管理小型的郵件列表

讓PHP管理小型的郵件列表

來源:程序員人生   發布時間:2014-05-09 02:20:49 閱讀次數:3768次

最近有一個讀者問我關于ThickBook新聞列表中處理訂閱/退訂的機制,并且是如何與實際的發送信息相配合,給郵件列表中的所有收信人的。問題提的不錯,有一個相當輕易的方法,但是我首先要說的是我所做的沒有任何投機取巧的地方,因為我非常的酷----就是有,我使用這個方法也只是因為我懶。

注意:在市面上有非常多的郵件列表軟件,可以把它裝在系統上,并且也有一些別的,更多的是結合在一起的腳本集,你 也可以用來做同樣的事情。但是,正如我所說,我是一個懶人,不想下載和安裝任何東西,所以我生成了幾 個相當簡單的頁面,用來執行我所要求的工作。很希望,有人能從中學到一些東西。

首先是訂閱/退訂腳本,它所做的工作就是從數據庫表中增加或刪除記錄。把它叫做"manage.phtml" 或 差不多的什么東西。這樣呢,就需要后臺是某種數據庫,在上面可以創建訂閱表。根據政治中的半數原則,所以我將使用MySQL作為這個例子的數據庫。你可以使用任何你常用的數據庫,只是據PHP手冊替換正確的數據庫相關函數。

在我的訂閱表中,我使用了兩個字段:郵件地址(email_addr)和添加日期(date_added)。你可以根據需要增加字段,或者將date_added字段刪除。在這個例子中,我只是向你展示我做了什么,你可以適當的進行 修改。在我的訂閱表中,email_addr字段是一個不重復字段,意味著你不能增加另一個與之完全一樣的e-mail 地址。這個可以避免重復訂閱,而且當用戶想退訂時,也使刪除記錄的方法變得簡單和可靠。

那么,讓我們創建訂閱/退訂表單吧(manager.phtml或你想起的什么名字)。我使用同一個文件處理訂閱和退訂,也包括表格自身的動作,所以可能有點復雜。我將從頭到尾講解,然后把所有的片段組合在一起,放在一個表單中。

在腳本的開始處,是打開數據庫和預備時間戳。在開始時處理這些不顯眼的東西總是可以為我減輕一點壓力。

  1. // 連接數據庫 
  2. $db = mysql_connect("servername""username""password"or die ("不能連接。"); 
  3. mysql_select_db("yourDB"$dbor die ("不能選擇數據庫。"); 
  4. // 得到時間戳 
  5. $add_date = date("Y-m-d"); 

我們希望$op的值是"ds"。它不是復雜的程序縮寫----我創的,表示"do something(做某事)" 。所以,腳本的第一件事就是查看$op的值是不是等于"ds"。這個值只有當表單被提交后才會被發送上來。所以假如$op的值不是"ds",那么說明用戶還沒有看過表單,所以應該把表單顯示出來:

  1. if ($op != "ds") { 
  2.  
  3. //需要訂閱/退訂 
  4.  
  5. $text_block = " 
  6.  
  7. <form name="form" method=post action="$PHP_SELF"
  8. <input type=hidden name=op value=ds> 
  9.  
  10. <p><strong>your e-mail address:</strong><br> 
  11. <input type=text name="email" size=25></p> 
  12.  
  13. <p><strong>action:</strong><br> 
  14. <input type=radio name="action" value="sub" checked> sub 
  15. <input type=radio name="action" value="unsub"> unsub</p> 
  16.  
  17. <P><input type=submit name="submit" value="do it"></p> 
  18. </form> 
  19. "; 

你會注重到我把文本放在$text_block變量中。通過把文本放在一個變量中,接下來我所要做的就是在后面在主HTML模板內輸出$text_block的值。這是個人習慣問題,你可以根據你喜歡的時間和方式輸出文本。

這個表單的動作是$PHP_SELF ,可以想象一下,它的意思就是當按下了提交按鈕之后,它將會被重新裝入。然后,你可以看到這個表單有三個字段:一個隱藏字段,用于給$op賦值為"ds" ;一個文本字段,叫做"email",在這里用戶將填入他或她的email地址;還有一個是單選按鈕集,叫做"action",根據它,用戶可以決定執行哪一個動作(訂閱或退訂)。

在表單被提交之后,$op將等于"ds",并且$action的值將包含"sub"或"unsub"。那么,我們繼續看上面 的if...語句,一旦提交,它將被跳過(因為$op=="ds")。假如$op的值為"ds"并且$action的值"sub"(訂閱),下面的else if...句被執行。這段代碼檢查e-mail是否已經存在于訂閱表中,假如不存在則將其插入到表中并打印出響應,否則忽略。

  1. else if (($op == "ds") && ($action == "sub")) { 
  2.  
  3. // 檢查郵件還未提交則提交它們,否則返回信息 
  4.  
  5. $check = "select email_addr from subscribers 
  6. where email_addr = "$email""; 
  7.  
  8. $check_result = mysql_query($check
  9. or die("不能執行地e-mail地址的檢查。"); 
  10.  
  11. $check_num = mysql_num_rows($check_result); 
  12.  
  13. if ($check_num == 0) { 
  14.  
  15. // 假如$check_num為0,則沒有找到匹配的記錄,用戶應該被提交 
  16.  
  17. $sql = "insert into subscribers 
  18. values("$email""$add_date")"; 
  19.  
  20. @mysql_query($sqlor die ("Couldn't insert email."); 
  21.  
  22. $text_block = " 
  23. <P>感謝您的注冊!</p> 
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 欧美a级在线 | 国产综合图片 | 欧美一区高清 | 中文字幕免费视频精品一 | 国产精品自产拍在线观看 | aa级国产女人毛片好多水 | 国产精品福利片 | 国产女人精品性视频 | 国产精品一区二区三区免费 | 欧美性猛交xxxx免费看 | 高清欧美色欧美综合网站 | 久久女人天堂 | 国产精品夜色视频一区二区 | 免费看毛片网站 | 国产丰满眼镜女在线观看 | 日本久色 | 精品亚洲欧美高清不卡高清 | 视频一区国产 | 欧美日韩国产一区 | 国产区精品一区二区不卡中文 | 综合99| 亚洲大片免费 | 国产精品视频在线观看 | 琪琪see色原网中文 琪琪理论影院2018中文版 | 俄罗斯free嫩交hd | 无码中文av有码中文av | 日本中文字幕在线观看视频 | 国产免费福利视频一区二区 | 亚洲精品国产一区二区三 | 亚洲天堂一区二区三区四区 | 日本一区二区三区有限公司 | 日本特级全黄一级毛片 | 国产福利在线观看永久免费 | 国产成人乱码一区二区三区 | a4yy私人毛片在线 | 一区二区三区免费观看 | 就要精品综合久久久久五月天 | 欧美一区二区精品 | 2020亚洲男人天堂 | 久久国产精品一区二区三区 | 精品伊人 |