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


Posted in PHP onNovember 27, 2008

还好,用户登录这里通过一个小小的方法可以实现和论坛同步了.可以不用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 相关文章推荐
php合并数组array_merge函数运算符加号与的区别
Oct 31 PHP
php中获取远程客户端的真实ip地址的方法
Aug 03 PHP
解析php根据ip查询所在地区(非常有用,赶集网就用到)
Jul 01 PHP
php 修改、增加xml结点属性的实现代码
Oct 22 PHP
PHP在网页中动态生成PDF文件详细教程
Jul 05 PHP
php json_encode()函数返回json数据实例代码
Oct 10 PHP
php生成二维码
Aug 10 PHP
Yii2.0 模态弹出框+ajax提交表单
May 22 PHP
php opendir()列出目录下所有文件的实例代码
Oct 02 PHP
PHP与以太坊交互详解
Aug 24 PHP
php判断某个方法是否存在函数function_exists (),method_exists()与is_callable()区别与用法解析
Apr 20 PHP
PHP设计模式入门之迭代器模式原理与实现方法分析
Apr 26 PHP
php 移除数组重复元素的一点说明
Nov 27 #PHP
PHP 遍历XP文件夹下所有文件
Nov 27 #PHP
cmd下运行php脚本
Nov 25 #PHP
PHPMailer安装方法及简单实例
Nov 25 #PHP
php miniBB中文乱码问题解决方法
Nov 25 #PHP
php AJAX实例根据邮编自动完成地址信息
Nov 23 #PHP
php 删除无限级目录与文件代码共享
Nov 22 #PHP
You might like
Mysql的GROUP_CONCAT()函数使用方法
2008/03/28 PHP
input file获得文件根目录简单实现
2013/04/26 PHP
DHTML 中的绝对定位
2006/11/26 Javascript
判断多个元素(RADIO,CHECKBOX等)是否被选择的原理说明
2009/02/18 Javascript
IE6下JS动态设置图片src地址问题
2010/01/08 Javascript
JQuery autocomplete 使用手册
2010/04/01 Javascript
High Performance JavaScript(高性能JavaScript)读书笔记分析
2011/05/05 Javascript
通过Jquery的Ajax方法读取将table转换为Json
2014/05/31 Javascript
javascript显式类型转换实例分析
2015/04/25 Javascript
Material(包括Material Icon)在Angular2中的使用详解
2018/02/11 Javascript
一步步教会你微信小程序的登录鉴权
2018/04/09 Javascript
vue实现一个炫酷的日历组件
2018/10/08 Javascript
又拍云 Node.js 实现文件上传、删除功能
2018/10/28 Javascript
node.js微信小程序配置消息推送的实现
2019/02/13 Javascript
javascript实现抢购倒计时程序
2019/08/26 Javascript
Vue项目中使用flow做类型检测的方法
2020/03/18 Javascript
javascript实现的图片预览和上传功能示例【兼容IE 9】
2020/05/01 Javascript
python获取文件版本信息、公司名和产品名的方法
2014/10/05 Python
零基础写python爬虫之HTTP异常处理
2014/11/05 Python
简单介绍利用TK在Python下进行GUI编程的教程
2015/04/13 Python
使用Python编写一个最基础的代码解释器的要点解析
2016/07/12 Python
分分钟入门python语言
2018/03/20 Python
python 获取页面表格数据存放到csv中的方法
2018/12/26 Python
基于Python+Appium实现京东双十一自动领金币功能
2019/10/31 Python
Python 3.8 新功能大揭秘【新手必学】
2020/02/05 Python
Python3 元组tuple入门基础
2020/02/09 Python
基于nexus3配置Python仓库过程详解
2020/06/15 Python
使用Filters滤镜弥补CSS3的跨浏览器问题以及兼容低版本IE
2013/01/23 HTML / CSS
艺术用品:Arteza
2018/11/25 全球购物
美国温暖商店:The Warming Store
2018/12/15 全球购物
志愿者服务感言
2014/02/27 职场文书
节能环保演讲稿
2014/08/28 职场文书
试用期转正后的自我评价
2014/09/21 职场文书
电子商务专业求职信范文
2015/03/19 职场文书
法律讲堂观后感
2015/06/11 职场文书
德劲DE1108畅想
2021/04/22 无线电