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 数据库树的遍历方法
Feb 06 PHP
PHP 采集心得技巧
May 15 PHP
很让人受教的 提高php代码质量36计
Sep 05 PHP
php实现Mysql简易操作类
Oct 11 PHP
PHP错误Warning:mysql_query()解决方法
Oct 24 PHP
在openSUSE42.1下编译安装PHP7 的方法
Dec 24 PHP
在CentOS系统上从零开始搭建WordPress博客的全流程记录
Apr 21 PHP
PHP实现冒泡排序的简单实例
May 26 PHP
PHP sleep()函数, usleep()函数
Aug 25 PHP
PHP读取并输出XML文件数据的简单实现方法
Dec 22 PHP
Mac下快速搭建PHP开发环境步骤详解
May 05 PHP
在Laravel 中实现是否关注的示例
Oct 22 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发送邮件类代码附详细说明
2008/07/10 PHP
php下HTTP Response中的Chunked编码实现方法
2008/11/19 PHP
MySQL的FIND_IN_SET函数使用方法分享
2012/03/27 PHP
PHP array_key_exists检查键名或索引是否存在于数组中的实现方法
2016/06/13 PHP
php array_key_exists() 与 isset() 的区别
2016/10/24 PHP
PHP数据的提交与过滤基本操作实例详解
2016/11/11 PHP
CI框架入门之MVC简单示例
2016/11/21 PHP
textarea的value是html文件源代码,存成html文件的代码
2007/04/20 Javascript
Display SQL Server Version Information
2007/06/21 Javascript
jqPlot Option配置对象详解
2009/07/25 Javascript
JS仿flash上传头像效果实现代码
2011/07/18 Javascript
基于jQuery的公告无限循环滚动实现代码
2012/05/11 Javascript
分享JavaScript获取网页关闭与取消关闭的事件
2013/12/13 Javascript
JavaScript实现点击单选按钮改变输入框中文本域内容的方法
2015/08/12 Javascript
es6学习之解构时应该注意的点
2017/08/29 Javascript
浅谈函数调用的不同方式,以及this的指向
2017/09/17 Javascript
移动前端图片压缩上传的实例
2017/12/06 Javascript
layui表格设计以及数据初始化详解
2019/10/26 Javascript
python中的实例方法、静态方法、类方法、类变量和实例变量浅析
2014/04/26 Python
Python基于twisted实现简单的web服务器
2014/09/29 Python
python命令行参数解析OptionParser类用法实例
2014/10/09 Python
python求解水仙花数的方法
2015/05/11 Python
Python通过正则表达式选取callback的方法
2015/07/18 Python
Python过滤掉numpy.array中非nan数据实例
2020/06/08 Python
Python 实现一个计时器
2020/07/28 Python
Python全局变量与global关键字常见错误解决方案
2020/10/05 Python
名词解释型面试题(主要是网络)
2013/12/27 面试题
综合办公室个人的自我评价
2013/12/22 职场文书
高二物理教学反思
2014/02/08 职场文书
法制宣传日活动总结
2014/04/29 职场文书
社区党员公开承诺书
2014/08/30 职场文书
今日说法观后感
2015/06/08 职场文书
2016道德模范先进事迹材料
2016/02/26 职场文书
python自动化测试之Selenium详解
2022/03/13 Python
斗罗大陆八大特殊魂兽,龙族始祖排榜首,第五最残忍(翠魔鸟)
2022/03/18 国漫
一次线上mongo慢查询问题排查处理记录
2022/03/18 MongoDB