織夢如何自定義表單客戶提交后如何發到自己郵箱?


織夢網站自定義表單設置好后會提交到后台,但是很多管理員不會經常注意到信息,所以我現在給大家分享一下將自定義表單信息提交到指定郵箱:

1、首先在織夢網站后台,進入系統--系統基本參數--核心設置里面,如下圖:
將紅色標注的填寫為自己的郵箱帳號(同一個賬號哦)
 
 
2、打開網站根目錄下的plus文件夾,里面有個diy.php文件(表單提交后處理文件),打開它,在85行上下有如下代碼: $query = "INSERT INTO `{$diy->table}` (`id`, `ifcheck` $addvar)  VALUES (NULL, 0 $addvalue); ";這個代碼就是將表單數據寫入數據庫,那么我們就在他下方,加上發送郵件的功能(最下方有我改得diy.php代碼 UTF8的! 直接復制放進去! 改下第88行的name):
 
  1. $mailtitle = "用戶訂單信息";//郵件標題   
  2.   
  3. $mailbody = "稱呼:{$name}\r\n郵箱:{$email}\r\n所在城市:{$city}\r\n國家:{$guojia}\r\n電話:{$tel}\r\n類別:{$qudao}";//$name中name是該input元素的id號   
  4.   
  5. $headers = $cfg_adminemail;//用我們剛才設置的管理員郵箱發送   
  6.   
  7. $mailtype = 'TXT';//郵件類型為文本類型   
  8.   
  9. require_once(DEDEINC.'/mail.class.php');//加載織夢的郵件庫   
  10.   
  11. $smtp = new smtp($cfg_smtp_server,$cfg_smtp_port,true,$cfg_smtp_usermail,$cfg_smtp_password);//創建smtp服務   
  12.   
  13. $smtp->debug = false;//不起用調試   
  14.   
  15. $smtp->sendmail($cfg_smtp_usermail,$cfg_webname ,$cfg_smtp_usermail, $mailtitle, $mailbody, $mailtype);//發送郵件  
 
 
 
 
3、(一般都是國內服務器!不加沒什么事!)加上第二步給的代碼,就可以實現管理員郵箱給自己發信,內容通過id號獲取,不過美國主機是限制自己給自己發郵件的,所以在第二步代碼的最后一句,要將其改下:$smtp->sendmail($cfg_smtp_usermail,$cfg_webname ,$cfg_smtp_usermail, $mailtitle, $mailbody, $mailtype);//發送郵件,sendmail(收件人,網站名,發件人,郵件標題,郵件內容,郵件類型),將收件人重新定義一個,比如:
 
$cfg_smtp_usermail2="xxxx@qq.com";
 
$smtp->sendmail($cfg_smtp_usermail2,$cfg_webname ,$cfg_smtp_usermail, $mailtitle, $mailbody, $mailtype);
 
這樣就可以收到啦。




下面是我個人的測試diy.php代碼
第八十八行非常重要!  你要把你表單里面的name全部放進去! 內容才可以!
 
    1. <?php   
    2. /**
    3.  *  
    4.  * 自定義表單  
    5.  *  
    6.  * @version        $Id: diy.php 1 15:38 2010年7月8日Z tianya $  
    7.  * @package        DedeCMS.Site  
    8.  * @copyright      Copyright (c) 2007 - 2010, DesDev, Inc.  
    9.  * @license        http://help.dedecms.com/usersguide/license.html  
    10.  * @link           http://www.dedecms.com  
    11.  */  
    12. require_once(dirname(__FILE__)."/../include/common.inc.php");   
    13.   
    14. $diyid = isset($diyid) && is_numeric($diyid) ? $diyid : 0;   
    15. $action = isset($action) && in_array($action, array('post', 'list', 'view')) ? $action : 'post';   
    16. $id = isset($id) && is_numeric($id) ? $id : 0;   
    17.   
    18. if(emptyempty($diyid))   
    19. {   
    20.     showMsg('非法操作!', 'javascript:;');   
    21.     exit();   
    22. }   
    23.   
    24. require_once DEDEINC.'/diyform.cls.php';   
    25. $diy = new diyform($diyid);   
    26.   
    27. /*----------------------------
    28. function Post(){ }  
    29. ---------------------------*/  
    30. if($action == 'post')   
    31. {   
    32.     if(emptyempty($do))   
    33.     {   
    34.         $postform = $diy->getForm(true);   
    35.         include DEDEROOT."/templets/plus/{$diy->postTemplate}";   
    36.         exit();   
    37.     }   
    38.     elseif($do == 2)   
    39.     {   
    40.         $dede_fields = emptyempty($dede_fields) ? '' : trim($dede_fields);   
    41.         $dede_fieldshash = emptyempty($dede_fieldshash) ? '' : trim($dede_fieldshash);   
    42.         if(!emptyempty($dede_fields))   
    43.         {   
    44.             if($dede_fieldshash != md5($dede_fields.$cfg_cookie_encode))   
    45.             {   
    46.                 showMsg('數據校驗不對,程序返回', '-1');   
    47.                 exit();   
    48.             }   
    49.         }   
    50.         $diyform = $dsql->getOne("select * from dede_diyforms where diyid='$diyid' ");   
    51.         if(!is_array($diyform))   
    52.         {   
    53.             showmsg('自定義表單不存在', '-1');   
    54.             exit();   
    55.         }   
    56.   
    57.         $addvar = $addvalue = '';   
    58.   
    59.         if(!emptyempty($dede_fields))   
    60.         {   
    61.   
    62.             $fieldarr = explode(';', $dede_fields);   
    63.             if(is_array($fieldarr))   
    64.             {   
    65.                 foreach($fieldarr as $field)   
    66.                 {   
    67.                     if($field == '') continue;   
    68.                     $fieldinfo = explode(',', $field);   
    69.                     if($fieldinfo[1] == 'textdata')   
    70.                     {   
    71.                         ${$fieldinfo[0]} = FilterSearch(stripslashes(${$fieldinfo[0]}));   
    72.                         ${$fieldinfo[0]} = addslashes(${$fieldinfo[0]});   
    73.                     }   
    74.                     else  
    75.                     {   
    76.                         ${$fieldinfo[0]} = GetFieldValue(${$fieldinfo[0]}, $fieldinfo[1],0,'add','','diy', $fieldinfo[0]);   
    77.                     }   
    78.                     $addvar .= ', `'.$fieldinfo[0].'`';   
    79.                     $addvalue .= ", '".${$fieldinfo[0]}."'";   
    80.                 }   
    81.             }   
    82.   
    83.         }   
    84.   
    85.         $query = "INSERT INTO `{$diy->table}` (`id`, `ifcheck` $addvar)  VALUES (NULL, 0 $addvalue); ";   
    86. $mailtitle = "用戶訂單信息";//郵件標題   
    87.     
    88. $mailbody = "稱呼:{$name}\r\n郵箱:{$email}\r\n電話:{$tele}\r\n手機:{$sj}\r\n地址:{$dz}\r\n說明:{$sm}";//$name中name是該input元素的id號   
    89.     
    90. $headers = $cfg_adminemail;//用我們剛才設置的管理員郵箱發送   
    91.     
    92. $mailtype = 'TXT';//郵件類型為文本類型   
    93.     
    94. require_once(DEDEINC.'/mail.class.php');//加載織夢的郵件庫   
    95.     
    96. $smtp = new smtp($cfg_smtp_server,$cfg_smtp_port,true,$cfg_smtp_usermail,$cfg_smtp_password);//創建smtp服務   
    97.     
    98. $smtp->debug = false;//不起用調試   
    99.     
    100. $smtp->sendmail($cfg_smtp_usermail,$cfg_webname ,$cfg_smtp_usermail, $mailtitle, $mailbody, $mailtype);//發送郵件   
    101.   
    102.         if($dsql->ExecuteNoneQuery($query))   
    103.         {   
    104.             $id = $dsql->GetLastID();   
    105.             if($diy->public == 2)   
    106.             {   
    107.                 //diy.php?action=view&diyid={$diy->diyid}&id=$id   
    108.                 $goto = "diy.php?action=list&diyid={$diy->diyid}";   
    109.                 $bkmsg = '發布成功,現在轉向表單列表頁...';   
    110.             }   
    111.             else  
    112.             {   
    113.                 $goto = !emptyempty($cfg_cmspath) ? $cfg_cmspath : '/';   
    114.                 $bkmsg = '發布成功,請等待管理員處理...';   
    115.             }   
    116.             showmsg($bkmsg, $goto);   
    117.         }   
    118.     }   
    119. }   
    120. /*----------------------------
    121. function list(){ }  
    122. ---------------------------*/  
    123. else if($action == 'list')   
    124. {   
    125.     if(emptyempty($diy->public))   
    126.     {   
    127.         showMsg('后台關閉前台瀏覽', 'javascript:;');   
    128.         exit();   
    129.     }   
    130.     include_once DEDEINC.'/datalistcp.class.php';   
    131.     if($diy->public == 2)   
    132.         $query = "SELECT * FROM `{$diy->table}` ORDER BY id DESC";   
    133.     else  
    134.         $query = "SELECT * FROM `{$diy->table}` WHERE ifcheck=1 ORDER BY id DESC";   
    135.   
    136.     $datalist = new DataListCP();   
    137.     $datalist->pageSize = 10;   
    138.     $datalist->SetParameter('action', 'list');   
    139.     $datalist->SetParameter('diyid', $diyid);   
    140.     $datalist->SetTemplate(DEDEINC."/../templets/plus/{$diy->listTemplate}");   
    141.     $datalist->SetSource($query);   
    142.     $fieldlist = $diy->getFieldList();   
    143.     $datalist->Display();   
    144. }   
    145. else if($action == 'view')   
    146. {   
    147.     if(emptyempty($diy->public))   
    148.     {   
    149.         showMsg('后台關閉前台瀏覽' , 'javascript:;');   
    150.         exit();   
    151.     }   
    152.   
    153.     if(emptyempty($id))   
    154.     {   
    155.         showMsg('非法操作!未指定id', 'javascript:;');   
    156.         exit();   
    157.     }   
    158.     if($diy->public == 2)   
    159.     {   
    160.         $query = "SELECT * FROM {$diy->table} WHERE id='$id' ";   
    161.     }   
    162.     else  
    163.     {   
    164.         $query = "SELECT * FROM {$diy->table} WHERE id='$id' AND ifcheck=1";   
    165.     }   
    166.     $row = $dsql->GetOne($query);   
    167.   
    168.     if(!is_array($row))   
    169.     {   
    170.         showmsg('你訪問的記錄不存在或未經審核', '-1');   
    171.         exit();   
    172.     }   
    173.   
    174.     $fieldlist = $diy->getFieldList();   
    175.     include DEDEROOT."/templets/plus/{$diy->viewTemplate}";   
    176. }  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM