原文来自:https://www.zixuephp.com

DEDECMS会员签到加积分如何实现

1、修改模板页面member\templets\index.htm头部加入js:

  1. <scriptlanguage="javascript"type="text/javascript">
  2. functionajaxSign(){
  3. $.ajax({
  4. type:"get",
  5. url:"http://www.phpfensi.com/member/ajax_sign.php",
  6. data:{uid:<?phpecho$cfg_ml->M_ID;?>,time:newDate()},
  7. success:function(data){
  8. alert(data);
  9. if(data!='今日已签到,请勿重复提交!'||data!='ERROR'){
  10. location.reload(true);
  11. }
  12. },
  13. });
  14. }
  15. </script>

2、然后在需要显示的部分加入<a href="javascript:ajaxSign();" target="_self">签到</a><span>( 每天签到,赠送金币!)</span>

3、上传ajax_sign.php到member目录,可以自己建立个文本文件然后复制以下内容到文本文件里,最后该文件改名为ajax_sign.php,注意后缀名.

ajax_sign.php文件的内容为:

  1. <?php
  2. require_once(dirname(__FILE__).'/config.php');
  3. $uid=isset($uid)?(int)$uid:'';
  4. AjaxHead();if(!emptyempty($uid)){
  5. $sql="SELECT*FROMdetest_memberWHERE`mid`='{$uid}'LIMIT1";
  6. $dsql->Execute('me',$sql);
  7. $arr=$dsql->GetArray('me');
  8. if($arr){
  9. $signdate=date('Y-m-d',$arr['signtime']);
  10. if($signdate<date('Y-m-d')){
  11. $dsql->ExecuteNoneQuery("UPDATE`detest_member`SET`scores`=`scores`+".$GLOBALS['cfg_score_sign'].",`signtime`='".time()."'WHERE`mid`='$uid'LIMIT1");
  12. echo'签到成功!积分增加'.$GLOBALS['cfg_score_sign'].'个';}else{echo'今日已签到,请勿重复提交!';}
  13. }else{//phpfensi.com
  14. echo'ERROR';
  15. }
  16. }else{
  17. echo'您还没有登录请登录!';
  18. }
  19. ?>

4、在dede_member中增加一个字段段名为:signtime 类型为INT 长度值为:12

5、 在系统基本设置 增加新的 变量:

变量名称填:cfg_score_sign

变量类型:文本

参数说明:会员签到所得积分

所属组:互动设置

设置完成后点击 保存变量即可