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 相关文章推荐
火车头discuz6.1 完美采集的php接口文件
Sep 13 PHP
PHP CURL模拟GET及POST函数代码
Apr 25 PHP
解析php框架codeigniter中如何使用框架的session
Jun 24 PHP
md5 16位二进制与32位字符串相互转换示例
Dec 30 PHP
jquery+php+ajax显示上传进度的多图片上传并生成缩略图代码
Oct 15 PHP
php中JSON的使用方法
Apr 30 PHP
php lcg_value与mt_rand生成0~1随机小数的效果对比分析
Apr 05 PHP
PHP单例模式应用示例【多次连接数据库只实例化一次】
Dec 18 PHP
PHP实现cookie跨域session共享的方法分析
Aug 23 PHP
Vagrant(WSL)+PHPStorm+Xdebu 断点调试环境搭建
Dec 13 PHP
PHP获取当前时间不准确问题解决方案
Aug 14 PHP
php随机生成验证码,php随机生成数字,php随机生成数字加字母!
Apr 01 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
超人钢铁侠联手合作?美漫作家呼吁DC漫威合作联动以抵抗疫情
2020/04/09 欧美动漫
删除数组元素实用的PHP数组函数
2008/08/18 PHP
PHP函数常用用法小结
2010/02/08 PHP
PHP 图片水印类代码
2012/08/27 PHP
解析PHP处理换行符的问题 \r\n
2013/06/13 PHP
解析Ubuntu下crontab命令的用法
2013/06/24 PHP
PHP小技巧之JS和CSS优化工具Minify的使用方法
2014/05/19 PHP
Laravel手动返回错误码示例
2019/10/22 PHP
从零开始学习jQuery (十) jQueryUI常用功能实战
2011/02/23 Javascript
jQuery插件jQuery-JSONP开发ajax调用使用注意事项
2013/11/22 Javascript
jQuery之ajax删除详解
2014/02/27 Javascript
JS实现新浪博客左侧的Blog管理菜单效果代码
2015/10/22 Javascript
深入解析桶排序算法及Node.js上JavaScript的代码实现
2016/07/06 Javascript
详解AngularJs中$resource和restfu服务端数据交互
2016/09/21 Javascript
jq源码解析之绑在$,jQuery上面的方法(实例讲解)
2017/10/13 jQuery
JS删除String里某个字符的方法
2021/01/06 Javascript
微信小程序实现下拉刷新动画
2019/06/21 Javascript
VScode格式化ESlint方法(最全最好用方法)
2019/09/10 Javascript
JS实现基本的网页计算器功能示例
2020/01/16 Javascript
vue 动态组件(component :is) 和 dom元素限制(is)用法说明
2020/09/04 Javascript
Python cx_freeze打包工具处理问题思路及解决办法
2016/02/13 Python
python+numpy+matplotalib实现梯度下降法
2018/08/31 Python
Python编程快速上手——Excel表格创建乘法表案例分析
2020/02/28 Python
利用python实现后端写网页(flask框架)
2021/02/28 Python
安纳塔拉酒店度假村及水疗官方网站:Anantara Hotel
2016/08/25 全球购物
加拿大在线隐形眼镜专家:PerfectLens.ca
2016/11/19 全球购物
《盘古开天地》教学反思
2014/02/28 职场文书
外贸会计专业自荐信
2014/06/22 职场文书
幼儿园社区活动总结
2014/07/07 职场文书
乡镇干部先进性教育活动个人整改措施
2014/09/16 职场文书
2014年司法局工作总结
2014/12/11 职场文书
父亲节寄语大全
2015/02/27 职场文书
单位更名证明
2015/06/18 职场文书
祝福语集锦:送给毕业同学祝福语
2019/11/21 职场文书
解决Maven项目中 Invalid bound statement 无效的绑定问题
2021/06/15 Java/Android
Python docx库删除复制paragraph及行高设置图片插入示例
2022/07/23 Python