member_loginfun.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. <?php
  2. //--------------- 登录函数 ---------------
  3. //登录
  4. function qlogin($add){
  5. global $empire,$dbtbpre,$public_r,$ecms_config;
  6. if($ecms_config['member']['loginurl'])
  7. {
  8. Header("Location:".$ecms_config['member']['loginurl']);
  9. exit();
  10. }
  11. $dopr=1;
  12. if($_POST['prtype'])
  13. {
  14. $dopr=9;
  15. }
  16. $username=trim($add['username']);
  17. $password=trim($add['password']);
  18. if(!$username||!$password)
  19. {
  20. printerror("EmptyLogin","history.go(-1)",$dopr);
  21. }
  22. $tobind=(int)$add['tobind'];
  23. //验证码
  24. $keyvname='checkloginkey';
  25. if($public_r['loginkey_ok'])
  26. {
  27. ecmsCheckShowKey($keyvname,$add['key'],$dopr);
  28. }
  29. $username=RepPostVar($username);
  30. $password=RepPostVar($password);
  31. $num=0;
  32. $r=$empire->fetch1("select ".eReturnSelectMemberF('*')." from ".eReturnMemberTable()." where ".egetmf('username')."='$username' limit 1");
  33. if(!$r['userid'])
  34. {
  35. printerror("FailPassword","history.go(-1)",$dopr);
  36. }
  37. if(!eDoCkMemberPw($password,$r['password'],$r['salt']))
  38. {
  39. printerror("FailPassword","history.go(-1)",$dopr);
  40. }
  41. if($r['checked']==0)
  42. {
  43. if($public_r['regacttype']==1)
  44. {
  45. printerror('NotCheckedUser','../member/register/regsend.php',1);
  46. }
  47. else
  48. {
  49. printerror('NotCheckedUser','',1);
  50. }
  51. }
  52. //绑定帐号
  53. if($tobind)
  54. {
  55. MemberConnect_BindUser($r['userid']);
  56. }
  57. $rnd=make_password(20);//取得随机密码
  58. //默认会员组
  59. if(empty($r['groupid']))
  60. {
  61. $r['groupid']=eReturnMemberDefGroupid();
  62. }
  63. $r['groupid']=(int)$r['groupid'];
  64. $lasttime=time();
  65. //IP
  66. $lastip=egetip();
  67. $lastipport=egetipport();
  68. $usql=$empire->query("update ".eReturnMemberTable()." set ".egetmf('rnd')."='$rnd',".egetmf('groupid')."='$r[groupid]' where ".egetmf('userid')."='$r[userid]'");
  69. $empire->query("update {$dbtbpre}enewsmemberadd set lasttime='$lasttime',lastip='$lastip',loginnum=loginnum+1,lastipport='$lastipport' where userid='$r[userid]'");
  70. //设置cookie
  71. $lifetime=(int)$add['lifetime'];
  72. $logincookie=0;
  73. if($lifetime)
  74. {
  75. $logincookie=time()+$lifetime;
  76. }
  77. $set1=esetcookie("mlusername",$username,$logincookie);
  78. $set2=esetcookie("mluserid",$r['userid'],$logincookie);
  79. $set3=esetcookie("mlgroupid",$r['groupid'],$logincookie);
  80. $set4=esetcookie("mlrnd",$rnd,$logincookie);
  81. //验证符
  82. qGetLoginAuthstr($r['userid'],$username,$rnd,$r['groupid'],$logincookie);
  83. //登录附加cookie
  84. AddLoginCookie($r);
  85. $location="../member/cp/";
  86. $returnurl=getcvar('returnurl');
  87. if($returnurl)
  88. {
  89. $location=$returnurl;
  90. }
  91. if(strstr($_SERVER['HTTP_REFERER'],"e/member/iframe"))
  92. {
  93. $location="../member/iframe/";
  94. }
  95. if(strstr($location,"enews=exit")||strstr($location,"e/member/register")||strstr($_SERVER['HTTP_REFERER'],"e/member/register"))
  96. {
  97. $location="../member/cp/";
  98. $_POST['ecmsfrom']='';
  99. }
  100. ecmsEmptyShowKey($keyvname);//清空验证码
  101. $set6=esetcookie("returnurl","");
  102. if($set1&&$set2)
  103. {
  104. //易通行系统
  105. DoEpassport('login',$r['userid'],$username,$password,$r['salt'],$r['email'],$r['groupid'],$r['registertime']);
  106. $location=DoingReturnUrl($location,$_POST['ecmsfrom']);
  107. printerror("LoginSuccess",$location,$dopr);
  108. }
  109. else
  110. {
  111. printerror("NotCookie","history.go(-1)",$dopr);
  112. }
  113. }
  114. //退出登陆
  115. function qloginout($userid,$username,$rnd){
  116. global $empire,$public_r,$ecms_config;
  117. //是否登陆
  118. $user_r=islogin();
  119. if($ecms_config['member']['quiturl'])
  120. {
  121. Header("Location:".$ecms_config['member']['quiturl']);
  122. exit();
  123. }
  124. $user_r[userid]=(int)$user_r[userid];
  125. $rnd=make_password(20);//产生随机密码
  126. $sql=$empire->query("update ".eReturnMemberTable()." set ".egetmf('rnd')."='$rnd' where ".egetmf('userid')."='$user_r[userid]'");
  127. EmptyEcmsCookie();
  128. $dopr=1;
  129. if($_GET['prtype'])
  130. {
  131. $dopr=9;
  132. }
  133. $gotourl="../../";
  134. if(strstr($_SERVER['HTTP_REFERER'],"e/member/iframe"))
  135. {
  136. $gotourl=$public_r['newsurl']."e/member/iframe/";
  137. }
  138. //易通行系统
  139. DoEpassport('logout',$user_r['userid'],$user_r['username'],'','','','','');
  140. $gotourl=DoingReturnUrl($gotourl,$_GET['ecmsfrom']);
  141. printerror("ExitSuccess",$gotourl,$dopr);
  142. }
  143. ?>