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 相关文章推荐
用DBSQL类加快开发MySQL数据库程序的速度
Oct 09 PHP
php下批量挂马和批量清马代码
Feb 27 PHP
PHP可逆加密/解密函数分享
Sep 25 PHP
php计算几分钟前、几小时前、几天前的几个函数、类分享
Apr 09 PHP
解析PHP强制转换类型及远程管理插件的安全隐患
Jun 30 PHP
php实现TCP端口检测的方法
Apr 01 PHP
yii2.0使用Plupload实现带缩放功能的多图上传
Dec 22 PHP
PHP基于单例模式实现的mysql类
Jan 09 PHP
Zend Framework教程之响应对象的封装Zend_Controller_Response实例详解
Mar 07 PHP
微信支付开发订单查询实例
Jul 12 PHP
PHP数据库操作二:memcache用法分析
Aug 16 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
Nov 10 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
php公用函数列表[正则]
2007/02/22 PHP
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装最快的解决办法
2010/08/01 PHP
PHP无法访问远程mysql的问题分析及解决
2013/05/16 PHP
使用xampp搭建运行php虚拟主机的详细步骤
2015/10/21 PHP
详解WordPress中添加友情链接的方法
2016/05/21 PHP
PHP+mysql+ajax轻量级聊天室实现方法详解
2016/10/17 PHP
基于jquery的页面划词搜索JS
2010/09/14 Javascript
jquery 页面滚动到指定DIV实现代码
2013/09/25 Javascript
JavaScript 常见安全漏洞和自动化检测技术
2015/08/21 Javascript
jQuery解析与处理服务器端返回xml格式数据的方法详解
2016/07/04 Javascript
Javascript基础学习笔记(菜鸟必看篇)
2016/07/22 Javascript
jQuery实现的表头固定效果实例【附完整demo源码下载】
2016/08/01 Javascript
vue开发心得和技巧分享
2016/10/27 Javascript
JS控制TreeView的结点选择
2016/11/11 Javascript
基于BootstrapValidator的Form表单验证(24)
2016/12/12 Javascript
js学习总结之DOM2兼容处理this问题的解决方法
2017/07/27 Javascript
js实现控制文件拖拽并获取拖拽内容功能
2018/02/17 Javascript
vue侧边栏动态生成下级菜单的方法
2018/09/07 Javascript
laydate时间日历插件使用方法详解
2018/11/14 Javascript
vue实现验证用户名是否可用
2021/01/20 Vue.js
java直接调用python脚本的例子
2014/02/16 Python
python3实现ftp服务功能(客户端)
2017/03/24 Python
python DataFrame 取差集实例
2019/01/30 Python
在pytorch 中计算精度、回归率、F1 score等指标的实例
2020/01/18 Python
Python实现动态循环输出文字功能
2020/05/07 Python
一款利用html5和css3实现的3D立方体旋转效果教程
2016/04/26 HTML / CSS
使用CSS变量实现炫酷惊人的悬浮效果
2019/04/26 HTML / CSS
英国最大的在线照明商店:Litecraft
2020/08/31 全球购物
如何实现一个自定义类的序列化
2012/05/22 面试题
Java基础类库面试题
2013/09/04 面试题
女大学生自我鉴定
2013/12/09 职场文书
银行职员自我鉴定
2014/04/20 职场文书
体操比赛口号
2014/06/10 职场文书
乌镇导游词
2015/02/02 职场文书
运动会5000米加油稿
2015/07/21 职场文书
Python趣味实战之手把手教你实现举牌小人生成器
2021/06/07 Python