帖子详情
 
 
  • [帝国cms教程]帝国cms支持手机号码登陆的教程
  • 白银会员 Ecmsphp开发中心 只看楼主 4 年前
  • 帝国cms支持手机号码登陆介绍,是教大家如何使用函数二次开发手机号码登陆的教程。


    修改  e/member/class/member_loginfun.php  函数qlogin


    //登录

    function qlogin($add){

    global $empire,$dbtbpre,$public_r,$ecms_config;

    if($ecms_config['member']['loginurl'])

    {

    Header("Location:".$ecms_config['member']['loginurl']);

    exit();

    }

    $dopr=1;

    if($_POST['prtype'])

    {

    $dopr=9;

    }

    $username=trim($add['username']);

    $password=trim($add['password']);

    if(!$username||!$password)

    {

    printerror("EmptyLogin","history.go(-1)",$dopr);

    }

    $tobind=(int)$add['tobind'];

    //验证码

    $keyvname='checkloginkey';

    if($public_r['loginkey_ok'])

    {

    ecmsCheckShowKey($keyvname,$add['key'],$dopr);

    }

    $username=RepPostVar($username);

    $password=RepPostVar($password);

    $num=0;

    /*

    *查询会员附加表手机号码字段(也可以是其他字段,自己看着来调整)

    */

    $useradd=$empire->fetch1("select userid from {$dbtbpre}enewsmemberadd where phone='$username' limit 1");

    if($useradd[userid]){

        $r=$empire->fetch1("select ".eReturnSelectMemberF('*')." from ".eReturnMemberTable()." where ".egetmf('userid')."='$useradd[userid]' limit 1");

    }else{

        $r=$empire->fetch1("select ".eReturnSelectMemberF('*')." from ".eReturnMemberTable()." where ".egetmf('username')."='$username' limit 1");

    }

    if(!$r['userid'])

    {

    printerror("FailPassword","history.go(-1)",$dopr);

    }

    $username=$r[username]; //重新复制用户名

    if(!eDoCkMemberPw($password,$r['password'],$r['salt']))

    {

    printerror("FailPassword","history.go(-1)",$dopr);

    }

    if($r['checked']==0)

    {

    if($public_r['regacttype']==1)

    {

    printerror('NotCheckedUser','../member/register/regsend.php',1);

    }

    else

    {

    printerror('NotCheckedUser','',1);

    }

    }

    //绑定帐号

    if($tobind)

    {

    MemberConnect_BindUser($r['userid']);

    }

    $rnd=make_password(20);//取得随机密码

    //默认会员组

    if(empty($r['groupid']))

    {

    $r['groupid']=eReturnMemberDefGroupid();

    }

    $r['groupid']=(int)$r['groupid'];

    $lasttime=time();

    //IP

    $lastip=egetip();

    $lastipport=egetipport();

    $usql=$empire->query("update ".eReturnMemberTable()." set ".egetmf('rnd')."='$rnd',".egetmf('groupid')."='$r[groupid]' where ".egetmf('userid')."='$r[userid]'");

    $empire->query("update {$dbtbpre}enewsmemberadd set lasttime='$lasttime',lastip='$lastip',loginnum=loginnum+1,lastipport='$lastipport' where userid='$r[userid]'");

    //设置cookie

    $lifetime=(int)$add['lifetime'];

    $logincookie=0;

    if($lifetime)

    {

    $logincookie=time()+$lifetime;

    }

    $set1=esetcookie("mlusername",$username,$logincookie);

    $set2=esetcookie("mluserid",$r['userid'],$logincookie);

    $set3=esetcookie("mlgroupid",$r['groupid'],$logincookie);

    $set4=esetcookie("mlrnd",$rnd,$logincookie);

    //验证符

    qGetLoginAuthstr($r['userid'],$username,$rnd,$r['groupid'],$logincookie);

    //登录附加cookie

    AddLoginCookie($r);

    $location="../member/cp/";

    $returnurl=getcvar('returnurl');

    if($returnurl)

    {

    $location=$returnurl;

    }

    if(strstr($_SERVER['HTTP_REFERER'],"e/member/iframe"))

    {

    $location="../member/iframe/";

    }

    if(strstr($location,"enews=exit")||strstr($location,"e/member/register")||strstr($_SERVER['HTTP_REFERER'],"e/member/register"))

    {

    $location="../member/cp/";

    $_POST['ecmsfrom']='';

    }

    ecmsEmptyShowKey($keyvname);//清空验证码

    $set6=esetcookie("returnurl","");

    if($set1&&$set2)

    {

    //易通行系统

    DoEpassport('login',$r['userid'],$username,$password,$r['salt'],$r['email'],$r['groupid'],$r['registertime']);

    $location=DoingReturnUrl($location,$_POST['ecmsfrom']);

    printerror("LoginSuccess",$location,$dopr);

        }

    else

    {

    printerror("NotCookie","history.go(-1)",$dopr);

    }

    }


    以上是支持手机号码登陆的教程。

  • 收藏 推荐 打赏微信打赏 举报
共有条回复