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实现与ASP Banner组件相似的类
Oct 09 PHP
在WINDOWS中设置计划任务执行PHP文件的方法
Dec 19 PHP
php+ajax实现的点击浏览量加1
Apr 16 PHP
php使用Jpgraph绘制饼状图的方法
Jun 10 PHP
举例详解PHP脚本的测试方法
Aug 05 PHP
php while循环控制的简单实例
May 30 PHP
PHP设计模式之工厂模式详解
Oct 24 PHP
thinkphp5 URL和路由的功能详解与实例
Dec 26 PHP
实例讲解PHP页面静态化
Feb 05 PHP
laravel框架添加数据,显示数据,返回成功值的方法
Oct 11 PHP
Thinkphp5框架中引入Markdown编辑器操作示例
Jun 03 PHP
PHP操作Redis常用命令的实例详解
Dec 23 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
盘点被央视点名过的日本动画电影 一部比一部强
2020/03/08 日漫
PHP Session_Regenerate_ID函数双释放内存破坏漏洞
2011/01/27 PHP
PHP引用的调用方法分析
2016/04/25 PHP
PHP基于ICU扩展intl快速实现汉字转拼音及按拼音首字母分组排序的方法
2017/05/03 PHP
PDO::getAvailableDrivers讲解
2019/01/28 PHP
用js做一个小游戏平台 (一)
2009/12/29 Javascript
jquery ajax提交表单数据的两种实现方法
2010/04/29 Javascript
在JQuery dialog里的服务器控件 事件失效问题
2010/12/08 Javascript
js中的前绑定和后绑定详解
2013/08/01 Javascript
Javascript 颜色渐变效果的实现代码
2013/10/01 Javascript
jquery validation验证身份证号,护照,电话号码,email(实例代码)
2013/11/06 Javascript
jQuery Ajax使用实例
2015/04/16 Javascript
jQuery实现限制textarea文本框输入字符数量的方法
2015/05/28 Javascript
jquery+json实现分页效果
2016/03/07 Javascript
JS实现的表格行上下移动操作示例
2016/08/03 Javascript
JavaScript面向对象编写购物车功能
2016/08/19 Javascript
单击按钮发送验证码,出现倒计时的简单实例
2017/03/17 Javascript
BootStrap Fileinput上传插件使用实例代码
2017/07/28 Javascript
vue项目国际化vue-i18n的安装使用教程
2018/03/14 Javascript
利用angular自动编译andriod APK的绕坑经历分享
2019/03/08 Javascript
vscode 使用Prettier插件格式化配置使用代码详解
2020/08/10 Javascript
[38:21]2014 DOTA2国际邀请赛中国区预选赛5.21 TongFu VS LGD-CDEC
2014/05/22 DOTA
详解Swift中属性的声明与作用
2016/06/30 Python
python如何爬取个性签名
2018/06/19 Python
django-rest-swagger对API接口注释的方法
2019/08/29 Python
使用python实现希尔、计数、基数基础排序的代码
2019/12/25 Python
Python 定义只读属性的实现方式
2020/03/05 Python
jupyter lab的目录调整及设置默认浏览器为chrome的方法
2020/04/10 Python
Python调用C/C++的方法解析
2020/08/05 Python
IRO美国官网:法国服装品牌
2018/03/06 全球购物
黑猩猩商店:The Chimp Store
2020/02/12 全球购物
高职教师岗位职责
2013/12/24 职场文书
《听鱼说话》教学反思
2014/02/15 职场文书
小学生通知书评语
2014/12/31 职场文书
拾金不昧表扬信
2015/01/16 职场文书
初二数学教学反思
2016/02/17 职场文书