discuz论坛 用户登录 后台程序代码

前端之家收集整理的这篇文章主要介绍了discuz论坛 用户登录 后台程序代码前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

还好,用户登录这里通过一个小小的方法可以实现和论坛同步了.可以不用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_pw\t$discuz_secques\t$discuz_uid",'ENCODE'),$cookietime);
$sessionexists = 0;
updatesession();//更新论坛USERPASS数据
echo "{'action':'ture'}";//这里是您要输出的数据
print_r($_DSESSION);
echo $discuz_useRSS;
}
?>

原文链接:https://www.f2er.com/php/29380.html

猜你在找的PHP相关文章