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 相关文章推荐
一个阿拉伯数字转中文数字的函数
Oct 09 PHP
PHP Document 代码注释规范
Apr 13 PHP
PHP array_push 数组函数
Dec 26 PHP
PHP中3种生成XML文件方法的速度效率比较
Oct 06 PHP
使用php将某个目录下面的所有文件罗列出来的方法详解
Jun 21 PHP
php不使用插件导出excel的简单方法
Mar 04 PHP
开源php中文分词系统SCWS安装和使用实例
Apr 11 PHP
修改ThinkPHP缓存为Memcache的方法
Jun 25 PHP
Zend Framework入门之环境配置及第一个Hello World示例(附demo源码下载)
Mar 21 PHP
php mysql数据库操作类(实例讲解)
Aug 06 PHP
ThinkPHP like模糊查询,like多匹配查询,between查询,in查询,一般查询书写方法
Sep 26 PHP
PHP设计模式(四)原型模式Prototype实例详解【创建型】
May 02 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
56.com视频采集接口程序(PHP)
2007/09/22 PHP
PHP 5.0对象模型深度探索之属性和方法
2008/03/27 PHP
PHP使用缓存即时输出内容(output buffering)的方法
2015/08/03 PHP
php中json_encode不兼容JSON_UNESCAPED_UNICODE的解决方案
2016/05/31 PHP
Zend Framework入门教程之Zend_Db数据库操作详解
2016/12/08 PHP
JavaScript页面刷新与弹出窗口问题的解决方法
2010/03/02 Javascript
jquery如何获取复选框的值
2013/12/12 Javascript
IE6中链接A的href为javascript协议时不在当前页面跳转
2014/06/05 Javascript
html文本框提示效果的示例代码
2014/06/28 Javascript
基于jquery animate操作css样式属性小结
2015/11/27 Javascript
微信小程序 数组(增,删,改,查)等操作实例详解
2017/01/05 Javascript
用vue封装插件并发布到npm的方法步骤
2017/10/18 Javascript
详解vuex 渐进式教程实例代码
2018/11/27 Javascript
js如何获取图片url的Blob值并预览示例代码
2019/03/07 Javascript
layui输入框只允许输入中文且判断长度的例子
2019/09/18 Javascript
vue多页面项目中路由使用history模式的方法
2019/09/23 Javascript
Python中的连接符(+、+=)示例详解
2017/01/13 Python
Python与Java间Socket通信实例代码
2017/03/06 Python
Django 如何获取前端发送的头文件详解(推荐)
2017/08/15 Python
python字典值排序并取出前n个key值的方法
2018/10/17 Python
Flask教程之重定向与错误处理实例分析
2019/08/01 Python
Django中的用户身份验证示例详解
2019/08/07 Python
python ftplib模块使用代码实例
2019/12/31 Python
CSS3轻松实现清新 Loading 效果的简单实例
2016/06/06 HTML / CSS
法国在线药房:Shop Pharmacie
2019/11/26 全球购物
最畅销的视频游戏享受高达90%的折扣:CDKeys
2020/02/10 全球购物
英国婴儿产品专家:Samuel Johnston
2020/04/20 全球购物
应用艺术毕业生的自我评价
2013/12/04 职场文书
服装机修工岗位职责
2013/12/26 职场文书
公司活动邀请函
2014/01/24 职场文书
读书小明星事迹材料
2014/05/03 职场文书
推荐信模板
2014/05/09 职场文书
演讲稿开场白台词
2014/08/25 职场文书
2015年工商所工作总结
2015/05/21 职场文书
父母教会我观后感
2015/06/17 职场文书
2016年优秀团支部事迹材料
2016/02/26 职场文书