返回列表 发帖

Discuz5.0整合ECMS成功的USER配置例子

<?
$user_tablename="XXX.cdb_members";        //用户表                     (XXX你的数据库名)
$user_userid="uid";          //用户ID字段
$user_username="username";         //用户名字段
$user_password="password";         //密码字段
$user_dopass=0;            //密码保存形式,0为
md5,1为明码,2为双重加密,3为16位md5
$user_rnd="enewsrnd";                                       //随机密码
$user_email="email";          //邮箱字段
$user_registertime="regdate";       //注册时间字段
$user_register=0;           //注册时间保存形式,0
为正常时间,1为数值型
$user_group="enewsgroupid";                                 //会员组字段
$user_userfen="enewsuserfen";                               //点数字段
$user_userdate="enewsuserdate";                             //包月字段
$user_money="enewsmoney";                                   //帐户余额
$user_todaydate="enewstodaydate";                           //下载日期
$user_todaydown="enewstodaydown";                           //当天下载次数
$user_groupid=$public_r[defaultgroupid];     //注册时会员组ID(ecms的会员组)
//其他设置
$user_seting="";           //设置表
$forumgroupid=3;           //论坛的普通会员组id

//会员注册地址
$registerurl="http://bbs.thysea.com/register.php";
//特殊设置(如vbb,molyx)
$user_salt="salt";           //salt
$user_saltnum=3;           //salt随机码字符数
$utfdata=0;             //数据是否是
utf-8编码,0为正常数据,1为utfdata编码

//-----------------------编码转换
function doUtfAndGbk($str,$phome=0)
{global $utfdata;
//正常编码
if(empty($utfdata))
{
  return $str;
    }
//是否支持iconv
if(!function_exists("iconv"))
{
  echo"Iconv is not install!";
  exit();
}
//gbk转utf
if(empty($phome))
{
  $str=iconv("gbk","UTF-8",$str);
}
//utf转gbk
else
{
  $str=iconv("UTF-8","gbk",$str);
}
return $str;
}
//-----------------------登录附加cookie
function AddLoginCookie($r)
{
}
//-----------------------后台修改资料
function admin_EditMember($add,$logininid,$loginin)
{global
$empire,$user_tablename,$user_username,$user_userid,$user_password,$user_dopass,$user_group,$user_email,$user_userfen,$user_m
oney,$user_userdate,$user_saltnum,$user_salt;
if(!trim($add[userid])||!trim($add[email])||!trim($add[username])||!$add[groupid])
{printerror("EmptyEmail","history.go(-1)");}
    //验证权限
    CheckLevel($logininid,$loginin,$classid,"member");
//变量
$add[userid]=(int)$add[userid];
//编码转换
$dousername=$add[username];
$add[username]=doUtfAndGbk($add[username],0);
$add[oldusername]=doUtfAndGbk($add[oldusername],0);
$add[password]=doUtfAndGbk($add[password],0);
$add[email]=doUtfAndGbk($add[email],0);
//修改密码
   if($add[password])
{
    //单重md5
    if(empty($user_dopass))
  {
     $add[password]=md5($add[password]);
     }
  elseif($user_dopass==2)//双重md5
  {
   $salt=make_password($user_saltnum);
   $add[password]=md5(md5($add[password]).$salt);
   $sa=",".$user_salt."='$salt'";
  }
  elseif($user_dopass==3)//16位md5
  {
   $add[password]=substr(md5($add[password]),8,16);
  }
  else
  {}
$add1=",".$user_password."='".$add[password]."'".$sa;
    }
   //修改用户名
if($add[oldusername]<>$add[username])
{
  $num=$empire->gettotal("select count(*) as total from ".$user_tablename." where ".$user_username."='$add
[username]' and ".$user_userid."<>'$add[userid]' limit 1");
  $add1.=",".$user_username."='$add[username]'";
  if($num)
  {
   printerror("ReUsername","history.go(-1)");
  }
}
//包月
if($add[userdate]>0)
{
  $userdate=time()+$add[userdate]*24*3600;
}
//变量
$add[groupid]=(int)$add[groupid];
$add[userfen]=(int)$add[userfen];
$userdate=(int)$userdate;
$add[money]=(float)$add[money];
   $sql=$empire->query("update ".$user_tablename." set ".$user_email."='$add[email]',".$user_group."=$add
[groupid],".$user_userfen."=$add[userfen],".$user_money."=$add[money],".$user_userdate."=$userdate".$add1." where
".$user_userid."='$add[userid]'");
   //附加表
   $addnum=$empire->gettotal("select count(*) as total from phome_enewsmemberadd where userid='$add[userid]'");
   if(empty($addnum))
{
    $sql1=$empire->query("insert into phome_enewsmemberadd(userid,truename,oicq,msn,`call`,phone,address,zip) values
($add[userid],'$add[truename]','$add[oicq]','$add[msn]','$add[call]','$add[phone]','$add[address]','$add[zip]');");
    }
   else
{
    $sql1=$empire->query("update phome_enewsmemberadd set truename='$add[truename]',oicq='$add[oicq]',msn='$add
[msn]',`call`='$add[call]',phone='$add[phone]',address='$add[address]',zip='$add[zip]' where userid='$add[userid]'");
    }
   if($sql)
{
    //操作日志
         insert_dolog("userid=".$add[userid]."<br>username=".$dousername);
    printerror("EditMemberSuccess","ListMember.php");
}
    else
{
  printerror("DbError","history.go(-1)");
}
}
//---------------------后台删除会员
function admin_DelMember($userid,$loginuserid,$loginusername)
{global $empire,$user_tablename,$user_username,$user_userid;
$userid=(int)$userid;
if(empty($userid))
{printerror("NotDelMemberid","history.go(-1)");}
    //验证权限
    CheckLevel($loginuserid,$loginusername,$classid,"member");
$r=$empire->fetch1("select ".$user_username." from ".$user_tablename." where ".$user_userid."='$userid'");
    $sql=$empire->query("delete from ".$user_tablename." where ".$user_userid."='$userid'");
//删除附加表
$sql1=$empire->query("delete from phome_enewsmemberadd where userid='$userid'");
//删除收藏
$del=$empire->query("delete from phome_enewsfava where userid='$userid'");
$del=$empire->query("delete from phome_enewsfavaclass where userid='$userid'");
    if($sql)
{
  $dousername=doUtfAndGbk($r[$user_username],1);
  //操作日志
         insert_dolog("userid=".$userid."<br>username=".$dousername);
  printerror("DelMemberSuccess","ListMember.php");
}
    else
{
  printerror("DbError","history.go(-1)");
}
}
//--------------------后台批量删除会员
function admin_DelMember_all($userid,$logininid,$loginin)
{global $empire,$user_tablename,$user_username,$user_userid;
    //验证权限
     CheckLevel($logininid,$loginin,$classid,"member");
     $count=count($userid);
     if(!$count)
{
   printerror("NotDelMemberid","history.go(-1)");
}
   $j=0;
for($i=0;$i<$count;$i++)
{
      $add.=" ".$user_userid."='$userid[$i]' or";
   $adda.=" userid='$userid[$i]' or";
      $j++;
    }
$add=substr($add,0,strlen($add)-3);
$sql=$empire->query("delete from ".$user_tablename." where".$add);
//删除附加表
$sql1=$empire->query("delete from phome_enewsmemberadd where".$adda);
//删除收藏
$del=$empire->query("delete from phome_enewsfava where".$add);
$del=$empire->query("delete from phome_enewsfavaclass where".$add);
if($sql)
{
//操作日志
         insert_dolog("");
     printerror("DelMemberSuccess","ListMember.php");
    }
else
{
     printerror("DbError","history.go(-1)");
    }
}
//---------------取得邮件地址
function GetUserEmail($userid,$username)
{global $empire,$user_tablename,$user_email,$user_userid;
$r=$empire->fetch1("select ".$user_email." from ".$user_tablename." where ".$user_userid."='$userid' limit 1");
return doUtfAndGbk($r[$user_email],1);
}
//-------------返回修改资料
function ReturnUserInfo($userid)
{global
$empire,$user_tablename,$user_userid,$user_username,$user_email,$user_group,$user_userfen,$user_money,$user_userdate,$user_to
daydown;
$r=$empire->fetch1("select
".$user_username.",".$user_email.",".$user_group.",".$user_userfen.",".$user_money.",".$user_userdate.",".$user_todaydown."
from ".$user_tablename." where ".$user_userid."='$userid' limit 1");
$re[username]=doUtfAndGbk($r[$user_username],1);
$re[email]=doUtfAndGbk($r[$user_email],1);
$re[userfen]=$r[$user_userfen];
$re[money]=$r[$user_money];
$re[groupid]=$r[$user_group];
$re[userdate]=$r[$user_userdate];
$re[todaydown]=$r[$user_todaydown];
return $re;
}
//--------------取得会员投稿数
function TotalUserNews($userid)
{global $empire,$user_tablename;
$r=$empire->fetch1("select count(*) as total from phome_enewsnews where userid='$userid' and ismember=1");
return $r[total];
}
//------------------用户注册
function register($username,$password,$repassword,$email)
{global
$empire,$user_tablename,$public_r,$user_groupid,$user_username,$user_userid,$user_email,$user_password,$user_dopass,$user_rnd
,$user_registertime,$user_register,$user_group,$user_saltnum,$user_salt,$user_seting,$forumgroupid,$registerurl;
//关闭
if($public_r[register_ok])
{printerror("CloseRegister","history.go(-1)");}
if(!empty($registerurl))
{
Header("Location:$registerurl");
exit();
    }
$username=trim($username);
$password=trim($password);
$username=RepPostVar1($username);
$password=RepPostVar1($password);
if(!$username||!$password||!$email)
{printerror("EmptyMember","history.go(-1)");}
//用户字数
$pr=$empire->fetch1("select min_userlen,max_userlen,min_passlen,max_passlen from phome_enewspublic limit 1");
$userlen=strlen($username);
if($userlen<$pr[min_userlen]||$userlen>$pr[max_userlen])
{printerror("FaiUserlen","history.go(-1)");}
//密码字数
$passlen=strlen($password);
if($passlen<$pr[min_passlen]||$passlen>$pr[max_passlen])
{printerror("FailPasslen","history.go(-1)");}
if($repassword!=$password)
{printerror("NotRepassword","history.go(-1)");}
if(!chemail($email))
{printerror("EmailFail","history.go(-1)");}
$check_r=explode("|",$username);
if(count($check_r)!=1)
{printerror("NotSpeWord","history.go(-1)");}
$username=htmlspecialchars($username);
$num=$empire->gettotal("select count(*) as total from ".$user_tablename." where ".$user_username."='$username' limit 1");
if($num)
{printerror("ReUsername","history.go(-1)");}
if($user_register)
{
  $registertime=time();
  $dyh="";
}
else
{
  $registertime=date("Y-m-d H:i:s");
  $dyh="'";
}
$birthday=$y.$m.$d;
$rnd=make_password(12);//产生随机密码
$password=str_replace(" ","",$password);
//单重md5
if(empty($user_dopass))
{
  $password=md5($password);
}
elseif($user_dopass==2)
{
  $salt=make_password($user_saltnum);
  $password=md5(md5($password).$salt);
}
elseif($user_dopass==3)//16位md5
{
  $password=substr(md5($password),8,16);
}
$user_groupid=(int)$user_groupid;
$email=htmlspecialchars(addslashes($email));
$sql=$empire->query("insert into
".$user_tablename."(".$user_username.",".$user_password.",".$user_email.",".$user_registertime.",".$user_group.",".$user_rnd.
") values('$username','$password','$email',".$dyh."$registertime".$dyh.",$user_groupid,'$rnd');");
//取得userid
$userid=$empire->lastid();
if($sql)
{
$set1=setcookie("mloginusername",$username,0,"/","");
$set2=setcookie("mloginuserid",$userid,0,"/","");
$set3=setcookie("mlogingroupid",$user_groupid,0,"/","");
$set4=setcookie("mloginrnd",$rnd,0,"/","");
printerror("RegisterSuccess","../../");
}
else
{printerror("DbError","history.go(-1)");}
}
//---------------------信息修改
function EditInfo($password,$repassword,$oldpassword,$email)
{global
$empire,$user_tablename,$public_r,$user_userid,$user_username,$user_password,$user_dopass,$user_email,$user_salt,$user_saltnu
m;
//是否登陆
$user_r=islogin();
$userid=$user_r[userid];
$username=$user_r[username];
$rnd=$user_r[rnd];
$groupid=$user_r[groupid];
if(!$userid||!$username||!trim($email))
{printerror("NotEmpty","history.go(-1)");}
if(!chemail($email))
{printerror("EmailFail","history.go(-1)");}
$email=htmlspecialchars(addslashes($email));
$post=$_POST;
//编码转换
$username=doUtfAndGbk($username,0);
$email=doUtfAndGbk($email,0);
//修改密码
if($password)
{
if($password!=$repassword)
  {printerror("NotRepassword","history.go(-1)");}
$password=doUtfAndGbk($password,0);
    $oldpassword=doUtfAndGbk($oldpassword,0);
//单重加密
if(empty($user_dopass))
  {
   $password=md5($password);
   $oldpassword=md5($oldpassword);
     }
  //双重加密
  elseif($user_dopass==2)
  {
   $salt=make_password($user_saltnum);
   $password=md5(md5($password).$salt);
   $sa=",".$user_salt."='$salt'";
  }
  elseif($user_dopass==3)//16位md5
  {
   $password=substr(md5($password),8,16);
   $oldpassword=substr(md5($oldpassword),8,16);
  }
  else
  {}
     $num=0;
  //双重md5
  if($user_dopass==2)
  {
  $ur=$empire->fetch1("select ".$user_userid.",".$user_salt.",".$user_password." from ".$user_tablename." where
".$user_username."='$username'");
  $oldpassword=md5(md5($oldpassword).$ur[$user_salt]);
  $num=0;
  if($oldpassword==$ur[$user_password])
   {$num=1;}
  if(empty($ur[$user_userid]))
   {$num=0;}
  }
  else
  {
     $num=$empire->gettotal("select count(*) as total from ".$user_tablename." where ".$user_username."='$username'
and ".$user_password."='".$oldpassword."'");
  }
if(!$num)
  {printerror("FailOldPassword","history.go(-1)");}
$add=",".$user_password."='".$password."'".$sa;
}
    $sql=$empire->query("update ".$user_tablename." set ".$user_email."='$email'".$add." where ".$user_userid."='$userid'");
//附加表
   $addnum=$empire->gettotal("select count(*) as total from phome_enewsmemberadd where userid='$userid'");
   if(empty($addnum))
{
    $sql1=$empire->query("insert into phome_enewsmemberadd(userid,truename,oicq,msn,`call`,phone,address,zip) values
($userid,'$post[truename]','$post[oicq]','$post[msn]','$post[call]','$post[phone]','$post[address]','$post[zip]');");
    }
   else
{
    $sql1=$empire->query("update phome_enewsmemberadd set truename='$post[truename]',oicq='$post[oicq]',msn='$post
[msn]',`call`='$post[call]',phone='$post[phone]',address='$post[address]',zip='$post[zip]' where userid='$userid'");
    }
    if($sql)
    {printerror("EditInfoSuccess","../member/EditInfo");}
    else
    {printerror("DbError","history.go(-1)");}
}
//----------------------------------是否登陆
function islogin()
{global $empire,$editor,$user_tablename,$user_userid,$user_group,$user_groupid,$user_rnd;
if($editor==2)
{$a="../";}
$r[userid]=(int)$_COOKIE['mloginuserid'];
$r[username]=RepPostVar1($_COOKIE['mloginusername']);
$r[rnd]=RepPostVar1($_COOKIE['mloginrnd']);
$r[groupid]=RepPostVar1($_COOKIE['mlogingroupid']);
if(!$r[userid]||!$r[username])
{
$set3=setcookie("return_url",$_SERVER['HTTP_REFERER'],0,"/","");
//printerror("NotLogin",$a."../login");
printerror("NotLogin","history.go(-1)");
}
return $r;
}
//-------------------------------------退出登陆
function loginout1($userid,$username,$rnd)
{global $empire,$public_r;
//是否登陆
$user_r=islogin();
$set1=setcookie("mloginusername","",0,"/","");
$set2=setcookie("mloginuserid","",0,"/","");
$set4=setcookie("mloginrnd","",0,"/","");
$set3=setcookie("mlogingroupid","",0,"/","");
printerror("ExitSuccess","../../");
}
//----------------------------------------登陆
function login1($username,$password,$lifetime,$key,$location)
{global
$empire,$user_tablename,$user_userid,$user_username,$user_password,$user_dopass,$user_group,$user_groupid,$user_rnd,$public_r
,$user_salt,$user_saltnum;
if(!trim($username)||!trim($password))
{printerror("EmptyLogin","history.go(-1)");}
//验证码
if($public_r[loginkey_ok])
{
if($key<>$_COOKIE['checkplkey']||empty($_COOKIE['checkplkey']))
{printerror("FailKey","history.go(-1)");}
}
$username=RepPostVar1($username);
$password=RepPostVar1($password);
//编码转换
$utfusername=doUtfAndGbk($username,0);
$password=doUtfAndGbk($password,0);
if(empty($user_dopass))
{
  $password=md5($password);
}
if($user_dopass==3)//16位md5
{
  $password=substr(md5($password),8,16);
}
//双重md5
$num=0;
if($user_dopass==2)
{
     $ur=$empire->fetch1("select ".$user_userid.",".$user_salt.",".$user_password." from ".$user_tablename." where
".$user_username."='$utfusername'");
  $password=md5(md5($password).$ur[$user_salt]);
  $num=0;
  if($password==$ur[$user_password])
   {$num=1;}
  if(empty($ur[$user_userid]))
   {$num=0;}
    }
else
{
$num=$empire->gettotal("select count(*) as total from ".$user_tablename." where ".$user_username."='$utfusername' and
".$user_password."='".$password."' limit 1");
}
if(!$num)
{
printerror("FailPassword","history.go(-1)");
}
$r=$empire->fetch1("select * from ".$user_tablename." where ".$user_username.
"='$utfusername' limit 1");
$time=date("Y-m-d H:i:s");
$rnd=make_password(12);//取得随机密码
if(empty($r[$user_group]))
{$r[$user_group]=$user_groupid;}
$r[$user_group]=(int)$r[$user_group];
$usql=$empire->query("update ".$user_tablename." set ".$user_rnd."='$rnd',".$user_group."=".$r[$user_group]." where
".$user_userid."='$r[$user_userid]'");
$set1=setcookie("mloginusername",$username,0,"/","");
$set2=setcookie("mloginuserid",$r[$user_userid],0,"/","");
$set3=setcookie("mlogingroupid",$r[$user_group],0,"/","");
$set4=setcookie("mloginrnd",$rnd,0,"/","");
//登录附加cookie
AddLoginCookie($r);
$location=$_COOKIE['return_url'];
if(empty($location))
{$location="../../";}
if(strstr($_SERVER['HTTP_REFERER'],"e/member/iframe"))
{$location="../member/iframe";}
$set5=setcookie("checkplkey","",0,"/","");
if($set1&&$set2)
{
      printerror("LoginSuccess",$location);
    }
else
{
  printerror("NotCookie","history.go(-1)");
}
}
//----------------------------------批量赠送点数
function GetFen_all($cardfen,$userid,$username)
{global $empire,$user_tablename,$user_userfen;
$cardfen=(int)$cardfen;
if(!$cardfen)
{printerror("EmptyGetFen","history.go(-1)");}
//验证权限
CheckLevel($userid,$username,$classid,"card");
$sql=$empire->query("update ".$user_tablename." set ".$user_userfen."=".$user_userfen."+$cardfen");
if($sql)
{
//操作日志
         insert_dolog("cardfen=$cardfen");
printerror("GetFenSuccess","GetFen.php");}
else
{printerror("DbError","history.go(-1)");}
}
//----------------------------------增加点数
function AddInfoFen($cardfen,$userid)
{global $empire,$user_tablename,$user_userfen,$user_userid;
$cardfen=(int)$cardfen;
$sql=$empire->query("update ".$user_tablename." set ".$user_userfen."=".$user_userfen."+".$cardfen." where
".$user_userid."='$userid'");
}
?>

演示地址:http://www.thysea.com/e/member/login/
天空中不曾留下鸟飞的痕迹
但我们毕竟曾经努力的飞过

╱◥█◣ ╱◥█◣
︱田︱田︱︱田︱田︱
╬╬╬╬╬╬╬╬╬╬╬╬╬╬
      ● ╭○╮
    /█∨█\
      ∏    ∏  BLOG:http://blackleaf.thysea.com
天空中不曾留下鸟飞的痕迹
但我们毕竟曾经努力的飞过

返回列表 回复 发帖