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 相关文章推荐
打造计数器DIY三步曲(上)
Oct 09 PHP
win2003服务器使用WPS的COM组件的一些问题解决方法
Jan 11 PHP
php错误、异常处理机制(补充)
May 07 PHP
使用session判断用户登录用户权限(超简单)
Jun 08 PHP
解析smarty模板中类似for的功能实现
Jun 18 PHP
PHP中提问频率最高的11个面试题和答案
Sep 02 PHP
php单例模式实现方法分析
Mar 14 PHP
PHP+Mysql基于事务处理实现转账功能的方法
Jul 08 PHP
谈谈PHP中substr和substring的正确用法及相关参数的介绍
Dec 16 PHP
PHP使用Redis替代文件存储Session的方法
Feb 15 PHP
基于PHP常用文件函数和目录函数整理
Aug 17 PHP
如何直接访问php实例对象中的private属性详解
Oct 12 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获取网页所有连接的方法(附demo源码下载)
2016/03/30 PHP
PHP中phar包的使用教程
2017/06/14 PHP
jQuery中json对象的复制方式介绍(数组及对象)
2013/06/08 Javascript
JavaScript数组深拷贝和浅拷贝的两种方法
2014/04/16 Javascript
Jquery 返回json数据在IE浏览器中提示下载的问题
2014/05/18 Javascript
使用jQuery不判断浏览器高度解决iframe自适应高度问题
2014/12/16 Javascript
javascript实现简单的省市区三级联动
2015/05/14 Javascript
JS使用post提交的两种方式
2015/12/03 Javascript
javascript获取wx.config内部字段解决微信分享
2016/03/09 Javascript
移动端翻页插件dropload.js(支持Zepto和jQuery)
2016/07/27 Javascript
基于vue2.0实现的级联选择器
2017/06/09 Javascript
js中如何完美的解析数据
2018/03/18 Javascript
vue.js 实现点击按钮动态添加li的方法
2018/09/07 Javascript
详解vue中移动端自适应方案
2019/05/05 Javascript
javascript实现滚动条效果
2020/03/24 Javascript
Python实现字典的key和values的交换
2015/08/04 Python
python黑魔法之编码转换
2016/01/25 Python
Python 等分切分数据及规则命名的实例代码
2019/08/16 Python
python 图片二值化处理(处理后为纯黑白的图片)
2019/11/01 Python
Python连接SQLite数据库并进行增册改查操作方法详解
2020/02/18 Python
python的dict判断key是否存在的方法
2020/12/09 Python
HTML5调用手机摄像头拍照的实现思路及代码
2014/06/15 HTML / CSS
Merchant 1948澳大利亚:新西兰领先的鞋类和靴子供应商
2018/03/24 全球购物
Kangol帽子官网:坎戈尔袋鼠
2018/09/26 全球购物
伦敦一卡通:The London Pass
2018/11/30 全球购物
Fossil加拿大官网:化石手表、手袋、首饰及配饰
2019/04/23 全球购物
中秋寄语大全
2014/04/11 职场文书
献爱心活动总结
2014/05/07 职场文书
红领巾心向党演讲稿
2014/09/10 职场文书
2014年大学生党员评议表自我评价
2014/09/20 职场文书
教师批评与自我批评
2014/10/15 职场文书
计划生育诚信协议书
2014/11/02 职场文书
离婚起诉书怎么写
2015/05/19 职场文书
小学语文教学随笔
2015/08/14 职场文书
图解上海144收音机
2021/04/22 无线电
Mysql忘记密码解决方法
2022/02/12 MySQL