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网页木马一枚 附PHP木马的防范方法
Oct 09 PHP
PHP sprintf()函数用例解析
May 18 PHP
解析PHP中的内存管理,PHP动态分配和释放内存
Jun 28 PHP
PHP面向对象之旅:深入理解static变量与方法
Jan 06 PHP
ThinkPHP调试模式与日志记录概述
Aug 22 PHP
php实现图片添加描边字和马赛克的方法
Dec 10 PHP
PHP获取二维数组中某一列的值集合
Dec 25 PHP
php opendir()列出目录下所有文件的实例代码
Oct 02 PHP
PHP进制转换实例分析(2,8,16,36,64进制至10进制相互转换)
Feb 04 PHP
PHP获取当前执行php文件名的代码
Mar 02 PHP
PHP实现统计所有字符在字符串中出现次数的方法
Oct 17 PHP
PHP实现链式操作的三种方法详解
Nov 16 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 小技巧 -- LAST_INSERT_ID
2009/11/24 PHP
将word转化为swf 如同百度文库般阅读实现思路及代码
2013/08/09 PHP
PHP统计二维数组元素个数的方法
2013/11/12 PHP
Thinkphp模板中截取字符串函数简介
2014/06/17 PHP
PHP GD库生成图像的几个函数总结
2014/11/19 PHP
php通过function_exists检测函数是否存在的方法
2015/03/18 PHP
firefox插件Firebug的使用教程
2010/01/02 Javascript
Extjs gridpanel 出现横向滚动条问题的解决方法
2011/07/04 Javascript
js中widow.open()方法使用详解
2013/07/30 Javascript
使用jquery的ajax需要注意的地方dataType的设置
2013/08/12 Javascript
JavaScript实现俄罗斯方块游戏过程分析及源码分享
2015/03/23 Javascript
javascript带回调函数的异步脚本载入方法实例分析
2015/07/02 Javascript
JavaScript函数学习总结以及相关的编程习惯指南
2015/11/16 Javascript
Javascript实现图片不间断滚动的代码
2016/06/22 Javascript
获取JavaScript异步函数的返回值
2016/12/21 Javascript
ES6 Promise对象概念与用法分析
2017/04/01 Javascript
分享vue.js devtools遇到一系列问题
2017/10/24 Javascript
基于node.js实现微信支付退款功能
2017/12/19 Javascript
关于Vue的路由权限管理的示例代码
2018/03/06 Javascript
node.js中 mysql 增删改查操作及async,await处理实例分析
2020/02/11 Javascript
JS 创建对象的模式实例小结
2020/04/28 Javascript
vue组件中传值EventBus的使用及注意事项说明
2020/11/16 Javascript
[00:16]热血竞技场
2019/03/06 DOTA
初学python数组的处理代码
2011/01/04 Python
Python selenium 父子、兄弟、相邻节点定位方式详解
2016/09/15 Python
python中如何使用正则表达式的非贪婪模式示例
2017/10/09 Python
python中找出numpy array数组的最值及其索引方法
2018/04/17 Python
使用Python制作表情包实现换脸功能
2019/07/19 Python
18个Python脚本可加速你的编码速度(提示和技巧)
2019/10/17 Python
解决TensorFlow GPU版出现OOM错误的问题
2020/02/03 Python
基于python 等频分箱qcut问题的解决
2020/03/03 Python
欧洲最大的笔和书写专家:The Pen Shop
2017/03/19 全球购物
最新奶茶店创业计划书
2014/01/25 职场文书
家庭贫困证明书(3篇)
2014/09/15 职场文书
营销计划书范文
2015/01/17 职场文书
中学生学习保证书
2015/02/26 职场文书