做DedeCMS的会员系统有许多常用的功能,有一定的PHP基础是做点开发还是不难。分享最近学习PHP的一个小功能开发经验。前面写过一篇《dede实现会员加V实名认证》,在这个功能基础增加下面的功能:

实现功能:

①会员提交相应内容后发送信息到管理员;

②管理员审核后发送消息到会员短消息。

这两个功能实际上利用的是DedeCMS的短消息功能,

具体步骤:

1.利用Navicat或者phpMyAdmin打开数据库找到dede_member表,新建两个字段

字段名:xingming,类型:varchar,字符长度10;
字段名:shenfenzheng,类型int,字符长度255;

2.在/member目录下新建文件pm_new.php,代码如下

<?php
/**
*会员短消息二次开发
*会员认证
*/ 
require_once(dirname(__FILE__)."/config.php");//www.vi586.com引入公共设置

CheckRank(0,0);
$menutype = 'config';

if($dopost=='save'){
//前台$dopost == 'save'时,接收传输过来数据
$xingming = $_POST['xingming'];
$shenfenzheng = $_POST['shenfenzheng'];

$query = "UPDATE `dede_member` SET `xingming` = '$xingming',`shenfenzheng` = '$shenfenzheng' WHERE mid = '{$cfg_ml->M_ID}'";
$dsql->ExecuteNoneQuery($query); //执行以上sql
//清除缓存
$cfg_ml->DelCache($cfg_ml->M_ID);

$message = "姓名:" . $xingming . "身份证:" . $shenfenzheng; //短消息详细内容
$subject = "[" . $cfg_ml->M_UserName ."] 提交了认证信息,请查阅"; //短消息标题
$sendtime = $writetime = time(); //发布时间

//自动发送信息到管理员(默认为admin,根据实际情况修改),其他具体的字段说明网上查dede_member_pms
$queryToAdmin = "INSERT INTO `dede_member_pms` (`floginid`,`fromid`,`toid`,`tologinid`,`folder`,`subject`,`sendtime`,`writetime`,`hasview`,`isadmin`,`message`) VALUES ('{$cfg_ml->M_LoginID}','{$cfg_ml->M_ID}','1','admin','inbox','$subject','$sendtime','$writetime','0','0','$message'); ";
$dsql->ExecuteNoneQuery($queryToAdmin); //执行以上sql

ShowMsg("已提交信息,等待管理员审核","pm_new.php");
exit();
}
include(DEDEMEMBER."/templets/pm_new.htm");
exit();
?>

3.在/member/templets/,新建文件pm_new.htm,代码如下

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo $cfg_soft_lang; ?>" />
<title>提交内容后发送信息到管理员-<?php echo $cfg_webname; ?></title>
<link href="templets/style/base.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="templets/js/j.js"></script>
<script type="text/javascript" src="templets/js/leftmenu.js"></script>
</head>
<body>
<p id="main">
<?php include(DEDEMEMBER."/templets/head.htm"); ?>
<p id="content" class="w960 clearfix">
<?php include(DEDEMEMBER."/templets/menu.php"); ?>
<p id="mcpmain">
<p id="mainCp">
<!--内容消息提示 -->
<h3 class="meTitle">提交内容后发送信息到管理员</h3>
<form method="post" action="pm_new.php">
<input type="hidden" value="save" name="dopost"/>
<?php
if(defined('UC_API') && @include_once DEDEROOT.'/uc_client/client.php')
{
$data = uc_get_user($cfg_ml->M_LoginID);
echo uc_avatar($data[0]);
}
else
{
?>
<p>真实姓名:<input type="text" name="xingming" class="intxt" value="<?php echo $cfg_ml->fields['xingming'];?>"></p>
<p>身&ensp;份&ensp;证:<input type="text" name="shenfenzheng" class="intxt" value="<?php echo $cfg_ml->fields['shenfenzheng'];?>"></p>
<p><input type="submit" value="提交信息"></p>
<?php } ?>
</form>
</p>
<!--主操作区域 -->
</p>
</p>
<?php include(DEDEMEMBER."/templets/foot.htm"); ?>
</p>
</body>
</html>

功能测试

在/member/pm_new.php,下提交后,在该账号的发件箱是否能看到对应的内容了呢?同样在管理员账号内检查收件箱是否有对应的内容,但是回复功能尚不完善。

免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。