1.fetch1("select ".eReturnSelectMemberF('*')." from ".eReturnMemberTable()." where ".egetmf('userid')."='".$mcr['userid']."' limit 1");
14.//$r=$empire->fetch1("select * from {$dbtbpre}enewsmember where userid='".$mcr['userid']."' limit 1");
15.//userid(用户ID)、username(用户名)、password(用户密码)
16.//rnd(随机认证码)、email(邮箱)、registertime(注册时间)
17.//groupid(会员组ID)、userfen(点数)、userdate(有效期)
18.//money(金额)、zgroupid(到期后转向会员组ID)、havemsg(是否有短信息)
19.//checked(是否审核)、salt(salt密码加密随机码)、userkey(密钥)
20.
21. //生成新的随机认证码, 如果该会员的会员组ID未设置就设置为默认的会员组ID, 设置cookie(用户名、用户ID、用户的会员组ID、随机认证码、登录验证符、登录附加)
22. DoEcmsMemberLogin($r,$lifetime);
23. //更新该用户的登录次数+1、最后登录时间
24. MemberConnect_UpdateBindLogin($mcr['id']);
25. //返回指示当前页面的页面地址(返回用户在执行登录的那个页面地址)
26. $tourl=$_SESSION['referer']?$_SESSION['referer']:'../../../';
27. //重置会话变量
28. MemberConnect_ResetVar();
29. printerrortourl($tourl);
30. }
31. else
32. {
33. printerrortourl('../tobind.php');
34. }
35.}
36.//验证openid
37.function MemberConnect_CheckOpenid($apptype,$openid){
38. global $empire,$dbtbpre;
39. $mcr['id']=0;
40. $mcr['userid']=0;
41. //如果两个参数其中任何一个的值等于0、空字符串、FALSE或NULL, 则返回数组$mcr
42. if(!$apptype||!trim($openid)){
43. return $mcr;
44. }
45. //检查会员外部接口表是否具有记录
46. //id(ID)、userid(会员ID)、apptype(接口类型)、bindkey(绑定密钥)
47. $mcr=$empire->fetch1("select id,userid from {$dbtbpre}enewsmember_connect where apptype='$apptype' and bindkey='$openid' limit 1");
48. return $mcr;
49.}
50.//函数eReturnSelectMemberF在/e/member/class/user.php
51.//返回查询会员字段列表
52.function eReturnSelectMemberF($f,$tb=''){
53. global $ecms_config;
54. //是否使用原版会员表信息,0为原版,1为非原版
55. if(empty($ecms_config['member']['chmember'])){
56. if(!empty($tb)){
57. $f=$f=='*'?$tb.$f:$tb.str_replace(',',','.$tb,$f);
58. }
59. return $f;
60. }
61. if($f=='*'){
62. $f='userid,username,password,rnd,email,registertime,groupid,userfen,userdate,money,zgroupid,havemsg,checked,salt,userkey';
63. }
64. $r=explode(',',$f);
65. $count=count($r);
66. $selectf='';
67. $dh='';
68. for($i=0;$i<$count;$i++){
69. $truef=$r[$i];
70. if($ecms_config['memberf'][$truef]==$truef){
71. $selectf.=$dh.$tb.$truef;
72. }else{
73. $selectf.=$dh.$tb.$ecms_config['memberf'][$truef].' as '.$truef;
74. }
75. $dh=',';
76. }
77. return $selectf;
78.}
79.//函数eReturnMemberTable在/e/member/class/user.php
80.//返回会员表
81.function eReturnMemberTable(){
82. global $ecms_config;
83. return $ecms_config['member']['tablename'];
84.}
85.//函数egetmf在/e/member/class/user.php
86.//取得实际会员字段
87.function egetmf($f){
88. global $ecms_config;
89. //是否使用原版会员表信息,0为原版,1为非原版
90. if(empty($ecms_config['member']['chmember'])){
91. return $f;
92. }
93. return $ecms_config['memberf'][$f]?$ecms_config['memberf'][$f]:$f;
94.}
95.//函数DoEcmsMemberLogin在/e/member/class/user.php
96.//会员登录
97.function DoEcmsMemberLogin($r,$lifetime=0){
98. global $empire,$dbtbpre,$ecms_config;
99. $rnd=make_password(20);//取得随机密码
100. //默认会员组
101. if(empty($r['groupid'])){
102. $r['groupid']=eReturnMemberDefGroupid();
103. }
104. $r['groupid']=(int)$r['groupid'];
105. $empire->query("update ".eReturnMemberTable()." set ".egetmf('rnd')."='$rnd',".egetmf('groupid')."='$r[groupid]' where ".egetmf('userid')."='$r[userid]'");
106. //更新会员的随机认证码和会员组ID
107. //$empire->query("update {$dbtbpre}enewsmember set rnd='$rnd',groupid='$r[groupid]' where userid='$r[userid]'");
108. $lifetime=(int)$lifetime;
109. $logincookie=0;
110. if($lifetime){
111. $logincookie=time()+$lifetime;
112. }
113. //cookie何时到期, 到期时间参数用于设置cookie存在的精确限定的时间长度, 用从新纪元(epoch)(新纪元是1970年1月1日0点)起所经过的秒数表示。
114. //如果没有设置它或者把它的值设置为0, cookie将持续起作用, 直到用户关闭了他或她的浏览器。这些cookie被认为在浏览器会话期间一直存在。
115. esetcookie("mlusername",$r['username'],$logincookie);//设置用户名cookie
116. esetcookie("mluserid",$r['userid'],$logincookie);//设置用户ID cookie
117. esetcookie("mlgroupid",$r['groupid'],$logincookie);//设置用户会员组ID cookie
118. esetcookie("mlrnd",$rnd,$logincookie);//设置随机认证码cookie
119. qGetLoginAuthstr($r['userid'],$r['username'],$rnd,$r['groupid'],$logincookie);//设置登录验证符cookie
120. AddLoginCookie($r);//登录附加cookie
121.}
122.//函数eReturnMemberDefGroupid在/e/member/class/user.php
123.//返回默认会员组ID
124.function eReturnMemberDefGroupid(){
125. global $ecms_config,$public_r;
126. //注册时会员组ID(ecms的会员组,0为后台默认)
127. //注册会员默认会员组,1普通会员,2VIP会员,3企业会员,4企业VIP会员
128. $groupid=$ecms_config['member']['defgroupid']?$ecms_config['member']['defgroupid']:$public_r['defaultgroupid'];
129. return intval($groupid);
130.}
131.//函数qGetLoginAuthstr在/e/member/class/user.php
132.//登录验证符
133.function qGetLoginAuthstr($userid,$username,$rnd,$groupid,$cookietime=0){
134. global $ecms_config;
135. //COOKIE验证随机码2(填写10~50个任意字符, 最好多种字符组合)
136. $checkpass=md5(md5($rnd.'-'.$userid.'-'.$username.'-'.$groupid).'-#empire.cms!-'.$ecms_config['cks']['ckrndtwo']);
137. esetcookie('mlauth',$checkpass,$cookietime);//设置登录验证符cookie
138.}
139.//函数AddLoginCookie在/e/member/class/user.php
140.//登录附加cookie
141.function AddLoginCookie($r){}
142.//函数MemberConnect_UpdateBindLogin在/e/memberconnect/memberconnectfun.php
143.//更新登录绑定
144.function MemberConnect_UpdateBindLogin($id){
145. global $empire,$dbtbpre;
146. $id=(int)$id;
147. $lasttime=time();
148. $empire->query("update {$dbtbpre}enewsmember_connect set loginnum=loginnum+1,lasttime='$lasttime' where id='$id' limit 1");
149.}
150.//函数MemberConnect_ResetVar在/e/memberconnect/memberconnectfun.php
151.//重置变量
152.function MemberConnect_ResetVar(){
153. $_SESSION['state']='';
154. $_SESSION['openid']='';
155. $_SESSION['apptype']='';
156. $_SESSION['openidkey']='';
157. //自定义增加的会话数据
158. $_SESSION['nickname']='';
159. $_SESSION['userpic']='';
160.}
161.//函数printerrortourl在/e/class/connect.php
162.//直接转向
163.function printerrortourl($gotourl='',$error='',$sec=0){
164. global $empire,$editor,$public_r,$ecms_config;
165. echo''.$error;
166. db_close();
167. $empire=null;
168. exit();
169.}
170.?>