discuz论坛 用户登录 后台程序代码
2015-01-24信息快讯网
discuz论坛的程序可读性不好,晕晕的.为了整合论坛和网站数据,又不得不看.
还好,用户登录这里通过一个小小的方法可以实现和论坛同步了.可以不用passport接口.这是我整理的数据,仅供参考.
登录传两值过来就行(username和password);
<?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;
}
?>
php下关于Cannot use a scalar value as an array的解决办法
在PHP中实现Javascript的escape()函数代码
PHP下escape解码函数的实现方法
php下目前为目最全的CURL中文说明
ionCube 一款类似zend的PHP加密/解密工具
php下mysql数据库操作类(改自discuz)
PHP 数组遍历方法大全(foreach,list,each)
IIS下PHP连接数据库提示mysql undefined function mysql_connect()
PHP stristr() 函数(不区分大小写的字符串查找)
javascript 小型动画组件与实现代码
Discuz!下Memcache缓存实现方法
PHP CURL模拟GET及POST函数代码
discuz authcode 经典php加密解密函数解析
Discuz 6.0+ 批量注册用户名
火车头discuz6.1 完美采集的php接口文件
Apache+php+mysql在windows下的安装与配置图解(最新版)
php 移除数组重复元素的一点说明
IIS php环境配置PHP5 MySQL5 ZendOptimizer phpmyadmin安装与配置
利用discuz实现PHP大文件上传应用实例代码
PHP CURL函数库第1/2页
关于DISCUZ不用通行证登陆得内容介绍第1/2页
php仿discuz分页效果代码
什么是phpDocumentor第1/2页
php IIS日志分析搜索引擎爬虫记录程序第1/2页
Discuz 模板引擎的封装类代码
discuz Passport 通行证 整合笔记