加入收藏 | 最新开课 | 最新资讯
  • 泉州浮桥企业公司办公文
  • 泉州鲤城浮桥金龙街道、
  • 泉州鲤城浮桥、中山公园
  • 泉州浮桥电脑设计培训中
  • 2018高考完了我要学电脑设
  • 泉州鲤城photoshop淘宝详情
  • 平面广告包装ps/cad/cd-201
  • 福建百科教育泉州专业a
  • 泉州浮桥金龙AUTOCAD机械零
  • Win10开机密码忘了?教你破
  • 泉州电脑设计培训班欢迎您来学习!
    泉州电脑培训班 > 在线学习 > javascript学习 >
    全部课程 专业课程 精品课程 软件课程 职业认证 学历教育 全部课程大集结

    泉州网页设计培训-DEDECMS自定义表单发送到邮箱

    时间:2018-03-09 22:41   来源:泉州培训班   作者:李老师15905099719   点击: 次 (责任编辑:admin)
    DEDECMS自定义表单发送到邮箱
    泉州网页设计培训-DEDECMS自定义表单发送到邮箱


    DEDECMS自定义表单发送到邮箱-道成设计
    $query = "INSERT INTO `{$diy->table}` (`id`, `ifcheck` $addvar)  VALUES (NULL, 0 $addvalue); ";
    if($dsql->ExecuteNoneQuery($query))  
    之间
    插入以下代码【下面所有蓝色字体都是】

    $addvalue_ary  = explode(',', $addvalue);
    //因为DEDE是将所有表单数据提交过来,所以这里需要分隔一下。
    $addvar_ary  = array(
    0 => '客户地址',
    1 => '客户姓名',
    2 => '联系电话',
    3 => '邮箱',
    4 => '留言内容',
    5 => '可以一直加N个',
    );
    $text = '';
    foreach($addvar_ary as $key=>$value)
    {
    $text.=$value.': '.$addvalue_ary[$key].'<br>';
    }
    $mailmy = '收件邮箱地址,第二个邮箱地址,第三个邮箱地址';
    $mailtitle = "收到的邮件的标题";
    $mailbody = $text;
    $headers = $cfg_adminemail;
    $mailtype = 'HTML';
    require_once(DEDEINC.'/mail.class.php');//注意这里要载入mail类
    $smtp=new smtp($cfg_smtp_server,$cfg_smtp_port,true,$cfg_smtp_usermail,$cfg_smtp_password);
    $smtp->debug = false;
    $smtp->sendmail($mailmy,$cfg_webname ,$cfg_smtp_usermail, $mailtitle, $mailbody, $mailtype);


    <?php
     
    /**
     
     *
     
     * 自定义表单
     
     *
     
     * @version        $Id: diy.php 1 15:38 2010年7月8日Z tianya $
     
     * @package        DedeCMS.Site
     
     * @copyright      Copyright (c) 2007 - 2010, DesDev, Inc.
     
     * @license        http://help.dedecms.com/usersguide/license.html
     
     * @link           http://www.dedecms.com
     
     */
     
    require_once(dirname(__FILE__)."/../include/common.inc.php");
    require_once(DEDEINC.'/membermodel.cls.php');
     
     
    $diyid = isset($diyid) && is_numeric($diyid) ? $diyid : 0;
     
    $action = isset($action) && in_array($action, array('post', 'list', 'view')) ? $action : 'post';
     
    $id = isset($id) && is_numeric($id) ? $id : 0;
     
     
     
    if(empty($diyid))
     
    {
     
        showMsg('非法操作!', 'javascript:;');
     
        exit();
     
    }
     
     
     
    require_once DEDEINC.'/diyform.cls.php';
     
    $diy = new diyform($diyid);
     
     
     
    /*----------------------------
     
    function Post(){ }
     
    ---------------------------*/
     
    if($action == 'post')
     
    {
     
        if(empty($do))
     
        {
     
            $postform = $diy->getForm(true);
     
            include DEDEROOT."/templets/plus/{$diy->postTemplate}";
     
            exit();
     
        }
     
        elseif($do == 2)
     
        {
     
           //验证码验证
            $svali = GetCkVdValue();
             if(preg_match("/1/",$safe_gdopen)){
                 if(strtolower($vdcode)!=$svali || $svali=='')
                 {
                     ResetVdValue();
                     ShowMsg('验证码错误!', '-1');
                     exit();
                 } 
             }
     
            $dede_fields = empty($dede_fields) ? '' : trim($dede_fields);
     
            $dede_fieldshash = empty($dede_fieldshash) ? '' : trim($dede_fieldshash);
     
            if(!empty($dede_fields))
     
            {
     
                if($dede_fieldshash != md5($dede_fields.$cfg_cookie_encode))
     
                {
     
                    showMsg('数据校验不对,程序返回', '-1');
     
                    exit();
     
                }
     
            }
     
            $diyform = $dsql->getOne("select * from dede_diyforms where diyid='$diyid' ");
     
            if(!is_array($diyform))
     
            {
     
                showmsg('自定义表单不存在', '-1');
     
                exit();
     
            }
     
     
     
            $addvar = $addvalue = '';
     
     
     
            if(!empty($dede_fields))
     
            {
     
                $fieldarr = explode(';', $dede_fields);
     
                if(is_array($fieldarr))
     
                {
     
                    foreach($fieldarr as $field)
     
                    {
     
                        if($field == '') continue;
     
                        $fieldinfo = explode(',', $field);
     
                        if($fieldinfo[1] == 'textdata')
     
                        {
     
                            ${$fieldinfo[0]} = FilterSearch(stripslashes(${$fieldinfo[0]}));
     
                            ${$fieldinfo[0]} = addslashes(${$fieldinfo[0]});
     
                        }
     
                        else
     
                        {
     
                            ${$fieldinfo[0]} = GetFieldValue(${$fieldinfo[0]}, $fieldinfo[1],0,'add','','diy', $fieldinfo[0]);
     
                        }
     
                        $addvar .= ', `'.$fieldinfo[0].'`';
     
                        $addvalue .= ", '".${$fieldinfo[0]}."'";
     
                    }
     
                }
     
     
     
            }
     
     
     
            $query = "INSERT INTO `{$diy->table}` (`id`, `ifcheck` $addvar)  VALUES (NULL, 0 $addvalue); ";
     
     
     
     
     
     
     
    $addvalue_ary  = explode(',', $addvalue);
     
    //因为DEDE是将所有表单数据提交过来,所以这里需要分隔一下。
     
    $addvar_ary  = array(
     
    0 => '客户姓名',
     
    1 => '联系电话',
     
    2 => '邮箱',
     
    3 => '留言内容',
     
    );
     
     
     
    $text = '';
     
    foreach($addvar_ary as $key=>$value)
     
    {
     
    $text.=$value.': '.$addvalue_ary[$key].'<br>';
     
    }
     
     
     
    $mailmy = '1166545@qq.com';
     
    $mailtitle = "道成网站留言";
     
    $mailbody = $text;
     
    $headers = $cfg_adminemail;
     
    $mailtype = 'HTML';
     
    require_once(DEDEINC.'/mail.class.php');//注意这里要载入mail类
     
    $smtp = new smtp($cfg_smtp_server,$cfg_smtp_port,true,$cfg_smtp_usermail,$cfg_smtp_password);
     
    $smtp->debug = false;
     
    $smtp->sendmail($mailmy,$cfg_webname ,$cfg_smtp_usermail, $mailtitle, $mailbody, $mailtype);
     
     
     
     
     
            if($dsql->ExecuteNoneQuery($query))
     
            {
     
                $id = $dsql->GetLastID();
     
                if($diy->public == 2)
     
                {
     
                    //diy.php?action=view&diyid={$diy->diyid}&id=$id
     
                    $goto = "diy.php?action=list&diyid={$diy->diyid}";
     
                    $bkmsg = '发布成功,现在转向表单列表页...';
     
                }
     
                else
     
                {
     
                    $goto = !empty($cfg_cmspath) ? $cfg_cmspath : '/';
     
                    $bkmsg = '发布成功,请等待管理员处理...';
     
                }
     
                showmsg($bkmsg, $goto);
     
            }
     
        }
     
    }
     
    /*----------------------------
     
    function list(){ }
     
    ---------------------------*/
     
    else if($action == 'list')
     
    {
     
        if(empty($diy->public))
     
        {
     
            showMsg('后台关闭前台浏览', 'javascript:;');
     
            exit();
     
        }
     
        include_once DEDEINC.'/datalistcp.class.php';
     
        if($diy->public == 2)
     
            $query = "SELECT * FROM `{$diy->table}` ORDER BY id DESC";
     
        else
     
            $query = "SELECT * FROM `{$diy->table}` WHERE ifcheck=1 ORDER BY id DESC";
     
     
     
        $datalist = new DataListCP();
     
        $datalist->pageSize = 10;
     
        $datalist->SetParameter('action', 'list');
     
        $datalist->SetParameter('diyid', $diyid);
     
        $datalist->SetTemplate(DEDEINC."/../templets/plus/{$diy->listTemplate}");
     
        $datalist->SetSource($query);
     
        $fieldlist = $diy->getFieldList();
     
        $datalist->Display();
     
    }
     
    else if($action == 'view')
     
    {
     
        if(empty($diy->public))
     
        {
     
            showMsg('后台关闭前台浏览' , 'javascript:;');
     
            exit();
     
        }
     
     
     
        if(empty($id))
     
        {
     
            showMsg('非法操作!未指定id', 'javascript:;');
     
            exit();
     
        }
     
        if($diy->public == 2)
     
        {
     
            $query = "SELECT * FROM {$diy->table} WHERE id='$id' ";
     
        }
     
        else
     
        {
     
            $query = "SELECT * FROM {$diy->table} WHERE id='$id' AND ifcheck=1";
     
        }
     
        $row = $dsql->GetOne($query);
     
     
     
        if(!is_array($row))
     
        {
     
            showmsg('你访问的记录不存在或未经审核', '-1');
     
            exit();
     
        }
     
     
     
        $fieldlist = $diy->getFieldList();
     
        include DEDEROOT."/templets/plus/{$diy->viewTemplate}";
     
    }

    此方式的好处是:邮件可以发送到指定的多个邮箱
      自定义表单,由于其具有很强的灵活性,在织梦系统中经常用于留言、下单等等,而后台去查看留言或者订单就不是很方便,所以便有了发送表单信息到邮箱的需求,百度一下会发现这种文章不少,但是很少有真正能用的,或者是说不适合5.7的版本,之前道成也尝试过其他的方法,虽然有可以成功的,但是比较繁琐或者不稳定,甚至有的需要安装插件的,给网站带来安全隐患,自然是舍弃不用了。

      要实现将自定义表单信息发送到邮箱,一般来说需要三个步骤:

      1,配置smtp信息
      这个可以在系统后台配置然后用变量调用,或者明文配置也可以。
      一般推荐用后台配置方便修改

      2,修改diy.php
      文件位置/plus/diy.php,这个很常用的,熟悉dede的都知道
      具体可以参考我之前修改过的一个diy.php文件
    上一篇:泉州网页设计培训班-dede:sql 万能标签使用
    下一篇:实现网站访问次数统计JavaScript代码,网页培训