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,不用COM,生成excel文件
Oct 09 PHP
php 来访国内外IP判断代码并实现页面跳转
Dec 18 PHP
php 模拟post_验证页面的返回状态(实例讲解)
Oct 28 PHP
php自动识别文件编码并转换为UTF-8的方法
Jun 12 PHP
PHP+MySQL修改记录的方法
Jan 21 PHP
PHP JSON格式的中文显示问题解决方法
Apr 09 PHP
php根据生日计算年龄的方法
Jul 13 PHP
PHP基于反射机制实现插件的可插拔设计详解
Nov 10 PHP
php删除txt文件指定行及按行读取txt文档数据的方法
Jan 30 PHP
PHP实现动态添加XML中数据的方法
Mar 30 PHP
PHP实现的无限分类类库定义与用法示例【基于thinkPHP】
Aug 06 PHP
php使用curl获取header检测开启GZip压缩的方法
Aug 15 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连接数据库代码应用分析
2011/05/29 PHP
PHP中集成PayPal标准支付的实现方法分享
2012/02/06 PHP
php获取QQ头像并显示的方法
2014/12/23 PHP
全面解析PHP验证码的实现原理 附php验证码小案例
2016/08/17 PHP
10个值得深思的PHP面试题
2016/11/14 PHP
jquery地址栏链接与a标签链接匹配之特效代码总结
2015/08/24 Javascript
ECHO.js 纯javascript轻量级延迟加载的实例代码
2016/05/24 Javascript
浅谈jquery高级方法描述与应用
2016/10/04 Javascript
Javascript实现图片懒加载插件的方法
2016/10/20 Javascript
js判断一个字符串是以某个字符串开头的简单实例
2016/12/27 Javascript
Angular 4依赖注入学习教程之组件服务注入(二)
2017/06/04 Javascript
jquery仿京东商品放大浏览页面
2017/06/06 jQuery
vue实现长图垂直居上 vue实现短图垂直居中
2017/10/18 Javascript
vue实现的上传图片到数据库并显示到页面功能示例
2018/03/17 Javascript
详解如何在vue项目中使用eslint+prettier格式化代码
2018/11/10 Javascript
Javascript实现秒表倒计时功能
2018/11/17 Javascript
vue中子组件传递数据给父组件的讲解
2019/01/27 Javascript
layer弹窗在键盘按回车将反复刷新的实现方法
2019/09/25 Javascript
js简单实现自动生成表格功能示例
2020/06/02 Javascript
vue实现简单图片上传
2020/06/30 Javascript
js实现菜单跳转效果
2020/12/11 Javascript
[43:41]OG vs Newbee 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
Python中的time模块与datetime模块用法总结
2016/06/30 Python
Python实现注册登录系统
2017/08/08 Python
Python 3.6 性能测试框架Locust安装及使用方法(详解)
2017/10/11 Python
Scrapy基于selenium结合爬取淘宝的实例讲解
2018/06/13 Python
python字符串切割:str.split()与re.split()的对比分析
2019/07/16 Python
深度学习入门之Pytorch 数据增强的实现
2020/02/26 Python
Python接口测试结果集实现封装比较
2020/05/01 Python
Django之腾讯云短信的实现
2020/06/12 Python
Python 如何在字符串中插入变量
2020/08/01 Python
英国女性时尚品牌:Apricot
2018/12/04 全球购物
施华洛世奇新加坡官网:SWAROVSKI新加坡
2020/10/06 全球购物
群众路线学习笔记范文
2014/11/06 职场文书
刑事撤诉申请书
2015/05/18 职场文书
阿里云服务器部署mongodb的详细过程
2021/09/04 MongoDB