member_loginfun.php
3.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
<?php
//--------------- 登錄函數 ---------------
//登錄
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;
$r=$empire->fetch1("select ".eReturnSelectMemberF('*')." from ".eReturnMemberTable()." where ".egetmf('username')."='$username' limit 1");
if(!$r['userid'])
{
printerror("FailPassword","history.go(-1)",$dopr);
}
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);
}
}
//退出登陸
function qloginout($userid,$username,$rnd){
global $empire,$public_r,$ecms_config;
//是否登陸
$user_r=islogin();
if($ecms_config['member']['quiturl'])
{
Header("Location:".$ecms_config['member']['quiturl']);
exit();
}
EmptyEcmsCookie();
$dopr=1;
if($_GET['prtype'])
{
$dopr=9;
}
$gotourl="../../";
if(strstr($_SERVER['HTTP_REFERER'],"e/member/iframe"))
{
$gotourl=$public_r['newsurl']."e/member/iframe/";
}
//易通行系統
DoEpassport('logout',$user_r['userid'],$user_r['username'],'','','','','');
$gotourl=DoingReturnUrl($gotourl,$_GET['ecmsfrom']);
printerror("ExitSuccess",$gotourl,$dopr);
}
?>