论坛类有会员互动的网站来说,用户发布文章、评论文章、签到等都能为用户增加积分,而DedeCMS自带的会员系统并没有会员签到增加积分的功能,下面分享这个功能的实现方法,经织梦58测试成功。

1.操作数据库,增加一个字段名为signtime,类型为INT,长度20

也可以利用系统的SQL命令

ALTER TABLE `dede_member` ADD COLUMN `signtime` int(20) NULL

2.增加系统变量;

变量名:cfg_score_sign
变量值:10(根据自己需要填写)
变量类型:文本
参数说明:会员签到所得积分
所属组:互动设置

3.打开/member/templets/index.htm,</head>之前增加以下代码

<script language='javascript' type='text/javascript'>
function ajaxSign(){
$.ajax({
type:"get",
url:"http://www.dede58.com/member/ajax_sign.php",
data:{uid:<?php echo $cfg_ml->M_ID;?>},time:new Data()},
success:function(data){
alert(data);
if(data !='今日已签到,请勿重复提交!' || data !='ERROR'){
location.reload(true);
}
},
});
}
</script>

4.在需要显示的地方加入

<a href="javascript:ajaxSign();" target="_self">签到</a><span>(每天签到,赠送金币!)</span>

5.建立ajax_sign.php文件,传到member目录,PHP文件代码如下

<?php 
require_once(dirname(__FILE__).'/config.php'); 
$uid = isset($uid) ? (int)$uid : ''; 
AjaxHead();if(!empty($uid)) { 
$sql = "SELECT * FROM dede_member WHERE `mid`='{$uid}' LIMIT 1"; 
$dsql->Execute('me',$sql); 
$arr = $dsql->GetArray('me'); 
if ($arr) { 
$signdate = date('Y-m-d', $arr['signtime']); 
if ($signdate < date('Y-m-d')) { 
$dsql->ExecuteNoneQuery("UPDATE `dede_member` SET `scores`=`scores`+" . $GLOBALS['cfg_score_sign'] . ", `signtime`='" . time() . "' WHERE `mid`='$uid' LIMIT 1"); 
echo '签到成功!积分增加' . $GLOBALS['cfg_score_sign'] . '个'; } else { echo '今日已签到,请勿重复提交!'; } 
} else { //www.vi586.com 
echo 'ERROR'; 
} 
}else{ 
echo '您还没有登录请登录!'; 
} 
?>

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

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