还好,用户登录这里通过一个小小的方法可以实现和论坛同步了.可以不用passport接口. 这是我整理的数据,仅供参考. 登录传两值过来就行(username和password); <div class="codetitle"><a style="CURSOR: pointer" data="35140" class="copybut" id="copybut35140" onclick="doCopy('code35140')"> 代码如下:<div class="codebody" id="code35140"> <?php session_start(); define('NOROBOT',TRUE); define('CURSCRIPT','logging'); require_once './include/common.inc.php'; require_once DISCUZ_ROOT.'./include/misc.func.php'; if($action == 'login') { $field = $loginfield == 'uid' ? 'uid' : 'username'; //get secure code checking status (pos. -2) $seccodecheck = substr(sprintf('%05b',$seccodestatus),-2,1); if($seccodecheck && $seccodedata['loginfailedcount']) { $seccodecheck = $db->result($db->query("SELECT count(*) FROM {$tablepre}failedlogins WHERE ip='$onlineip' AND count>='$seccodedata[loginfailedcount]' AND $timestamp-lastupdate<=900"),0); } $discuz_uid = 0; $discuz_user = $discuz_pw = $discuz_secques = $md5_password = ''; $member = array(); $loginperm = logincheck(); if(!$loginperm) { showmessage('login_strike'); } $secques = quescrypt($questionid,$answer); if(isset($loginauth)) { $field = 'username'; $password = 'VERIFIED'; list($username,$md5_password) = daddslashes(explode("t",authcode($loginauth,'DECODE')),1); } else { $md5_password = md5($password); $password = preg_replace("/^(.{".round(strlen($password) / 4)."})(.+?)(.{".round(strlen($password) / 6)."})$/s","1***3",$password); } $query = $db->query("SELECT m.uid AS discuz_uid,m.username AS discuz_user,m.password AS discuz_pw,m.secques AS discuz_secques, m.adminid,m.groupid,m.styleid AS styleidmem,m.lastvisit,m.lastpost,u.allowinvisible FROM {$tablepre}members m LEFT JOIN {$tablepre}usergroups u USING (groupid) WHERE m.$field='$username'"); $member = $db->fetch_array($query); //判断登录是否正确 if($member['password']!=$md5_password){ echo "您输入的用户名或密码错误!"; exit(); } //通过就执行下边的程序 extract($member); $discuz_userss = $discuz_user; $discuz_user = addslashes($discuz_user); if(($allowinvisible && $loginmode == 'invisible') || $loginmode == 'normal') { $db->query("UPDATE {$tablepre}members SET invisible='".($loginmode == 'invisible' ? 1 : 0)."' WHERE uid='$member[discuz_uid]'",'UNBUFFERED'); } $styleid = intval(empty($_POST['styleid']) ? ($styleidmem ? $styleidmem : $_DCACHE['settings']['styleid']) : $_POST['styleid']); $cookietime = intval(isset($_POST['cookietime']) ? $_POST['cookietime'] : ($_DCOOKIE['cookietime'] ? $_DCOOKIE['cookietime'] : 0)); dsetcookie('cookietime',$cookietime,31536000); dsetcookie('auth',authcode("$discuz_pwt$discuz_secquest$discuz_uid",'ENCODE'),$cookietime); $sessionexists = 0; updatesession();//更新论坛USERPASS数据 echo "{'action':'ture'}";//这里是您要输出的数据 print_r($_DSESSION); echo $discuz_userss; } ?>
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|