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使用mb_check_encoding检查字符串在指定的编码里是否有效
Nov 07 PHP
ThinkPHP模板比较标签用法详解
Jun 30 PHP
PHP结合JQueryJcrop实现图片裁切实例详解
Jul 24 PHP
ThinkPHP自动填充实现无限级分类的方法
Aug 22 PHP
php实现图片转换成ASCII码的方法
Apr 03 PHP
PHP之密码加密的几种方式
Jul 29 PHP
Zend Framework实现多服务器共享SESSION数据的方法
Mar 22 PHP
thinkphp中的多表关联查询的实例详解
Oct 12 PHP
PHP实现普通hash分布式算法简单示例
Aug 06 PHP
Laravel框架实现修改登录和注册接口数据返回格式的方法
Aug 17 PHP
laravel 如何实现引入自己的函数或类库
Oct 15 PHP
PHP正则之正向预查与反向预查讲解与实例
Apr 06 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安全编程之加密功能
2006/10/09 PHP
解决js中window.open弹出的是上次的缓存页面问题
2013/12/29 Javascript
对table和ul实现js分页示例分享
2014/02/24 Javascript
javascript学习笔记(一)基础知识
2014/09/30 Javascript
javascript根据时间生成m位随机数最大13位
2014/10/30 Javascript
node.js中的buffer.Buffer.byteLength方法使用说明
2014/12/10 Javascript
js表头排序实现方法
2015/01/16 Javascript
js实现键盘上下左右键选择文字并显示在文本框的方法
2015/05/07 Javascript
Bootstrap3.0学习教程之JS折叠插件
2016/05/27 Javascript
使用开源工具制作网页验证码的方法
2016/10/17 Javascript
JS中动态创建元素的三种方法总结(推荐)
2016/10/20 Javascript
js实现PC端根据IP定位当前城市地理位置
2017/02/22 Javascript
利用Vue.js+Node.js+MongoDB实现一个博客系统(附源码)
2017/04/24 Javascript
element-ui表格列金额显示两位小数的方法
2018/08/24 Javascript
JavaScript常用数组操作方法,包含ES6方法
2020/05/10 Javascript
js Array.slice的8种不同用法示例
2019/07/10 Javascript
在vue中created、mounted等方法使用小结
2020/07/21 Javascript
详解JavaScript 中的批处理和缓存
2020/11/19 Javascript
javascript实现随机抽奖功能
2020/12/30 Javascript
分享15个最受欢迎的Python开源框架
2014/07/13 Python
python协程之动态添加任务的方法
2019/02/19 Python
详解爬虫被封的问题
2019/04/23 Python
使用Python进行体育竞技分析(预测球队成绩)
2019/05/16 Python
原生python实现knn分类算法
2019/10/24 Python
Python图像处理库PIL中图像格式转换的实现
2020/02/26 Python
Python计算IV值的示例讲解
2020/02/28 Python
Python matplotlib 绘制双Y轴曲线图的示例代码
2020/06/12 Python
全球最大的服务市场:Fiverr
2017/01/03 全球购物
世界上最大的汽车共享网站:Zipcar
2017/01/14 全球购物
受外贸欢迎的美国主机:BlueHost
2017/05/16 全球购物
如何理解委托
2012/01/06 面试题
介绍一下Java的事务处理
2012/12/07 面试题
会计顶岗实习心得
2014/01/25 职场文书
恶搞卫生巾广告词
2014/03/18 职场文书
爱之链教学反思
2014/04/30 职场文书
小学家长通知书评语
2014/12/31 职场文书