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编程开发“虚拟域名”系统
Oct 09 PHP
我的论坛源代码(十)
Oct 09 PHP
在PHP中使用redis
Nov 04 PHP
PHP PDOStatement:bindParam插入数据错误问题分析
Nov 13 PHP
自己写了一个php检测文件编码的函数
Apr 21 PHP
CI框架Session.php源码分析
Nov 03 PHP
PHP数据库连接mysql与mysqli对比分析
Jan 04 PHP
php加密之discuz内容经典加密方式实例详解
Feb 04 PHP
php上传excel表格并获取数据
Apr 27 PHP
使用PHPUnit进行单元测试并生成代码覆盖率报告的方法
Mar 08 PHP
PHP实现的数据对象映射模式详解
Mar 20 PHP
docker-compose部署php项目实例详解
Jul 30 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(一)
2012/03/21 PHP
PHP实现求连续子数组最大和问题2种解决方法
2017/12/26 PHP
Jquery实现鼠标移上弹出提示框、移出消失思路及代码
2013/05/19 Javascript
jquery弹出层类代码分享
2013/12/27 Javascript
js验证电话号码与手机支持+86的正则表达式
2014/01/23 Javascript
关于页面嵌入swf覆盖div层的问题的解决方法
2014/02/11 Javascript
Javascript数组操作函数总结
2015/02/05 Javascript
jquery实现右键菜单插件
2015/03/29 Javascript
基于JavaScript怎么实现让歌词滚动播放
2015/11/03 Javascript
javascript中加var和不加var的区别 你真的懂吗
2016/01/06 Javascript
JavaScript获取客户端IP的方法(新方法)
2016/03/11 Javascript
快速解决Canvas.toDataURL 图片跨域的问题
2016/05/10 Javascript
jquery无法为动态生成的元素添加点击事件的解决方法(推荐)
2016/12/26 Javascript
详解Vue-cli代理解决跨域问题
2017/09/27 Javascript
基于vue中解决v-for使用报红并出现警告的问题
2018/03/03 Javascript
JS实现左边列表移到到右边列表功能
2018/03/28 Javascript
20个最常见的jQuery面试问题及答案
2018/05/23 jQuery
解决node终端下运行js文件不支持ES6语法
2020/04/04 Javascript
Python实现改变与矩形橡胶的线条的颜色代码示例
2018/01/05 Python
python+selenium打印当前页面的titl和url方法
2018/06/22 Python
在django中实现choices字段获取对应字段值
2020/07/12 Python
Python3使用Selenium获取session和token方法详解
2021/02/16 Python
阿迪达斯丹麦官网:adidas丹麦
2016/10/01 全球购物
伦敦的高级牛仔布专家:Trilogy
2018/08/06 全球购物
员工自我鉴定
2013/10/09 职场文书
2014年四风问题自我剖析材料
2014/09/15 职场文书
2014年设计师工作总结
2014/11/25 职场文书
2014年宣传思想工作总结
2014/12/10 职场文书
2015新学期家长寄语
2015/02/26 职场文书
审查起诉阶段律师意见书
2015/05/19 职场文书
《三国志》赏析
2019/08/27 职场文书
2019年感恩励志演讲稿(收藏备用)
2019/09/11 职场文书
温馨祝福晨语:美丽的一天从我的问候开始
2019/11/28 职场文书
CSS实现九宫格布局(自适应)的示例代码
2022/02/12 HTML / CSS
如何基于python实现单目三维重建详解
2022/06/25 Python
如何利用python实现Simhash算法
2022/06/28 Python