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 相关文章推荐
WIN98下Apache1.3.14+PHP4.0.4的安装
Oct 09 PHP
文件系统基本操作类
Nov 23 PHP
php Sql Server连接失败问题及解决办法
Aug 07 PHP
PHP 字符截取 解决中文的截取问题,不用mb系列
Sep 29 PHP
使用php get_headers 判断URL是否有效的解决办法
Apr 27 PHP
正确的PHP匹配UTF-8中文的正则表达式
May 13 PHP
PHP输入流php://input实例讲解
Dec 22 PHP
详解WordPress开发中过滤属性以及Sql语句的函数使用
Dec 25 PHP
php实现在新浪云中使用imagick生成缩略图并上传的方法
Sep 26 PHP
老生常谈PHP面向对象之标识映射
Jun 21 PHP
Laravel学习教程之本地化模块
Aug 18 PHP
详解php反序列化
Jun 10 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
缓存技术详谈―php
2006/12/14 PHP
PHP程序级守护进程的实现与优化的使用概述
2013/05/02 PHP
深入file_get_contents函数抓取内容失败的原因分析
2013/06/25 PHP
smarty获得当前url的方法分享
2014/02/14 PHP
CI框架实现优化文件上传及多文件上传的方法
2017/01/04 PHP
Javascript与vbscript数据共享
2007/01/09 Javascript
判断页面是关闭还是刷新的js代码
2007/01/28 Javascript
Javascript 获取链接(url)参数的方法
2009/02/15 Javascript
javaScript如何生成xmlhttp
2013/12/16 Javascript
简单的jquery左侧导航栏和页面选中效果
2014/08/21 Javascript
JavaScript用JQuery呼叫Server端方法示例代码
2014/09/03 Javascript
实例解析JS布尔对象的toString()方法和valueOf()方法
2015/10/25 Javascript
javascript实现二级级联菜单的简单制作
2015/11/19 Javascript
轻松掌握JavaScript策略模式
2016/08/25 Javascript
Bootstrap企业网站实战项目4
2016/10/14 Javascript
使用ionic在首页新闻中应用到的跑马灯效果的实现方法
2017/02/13 Javascript
浅谈Vue数据绑定的原理
2018/01/08 Javascript
NodeJS 将文件夹按照存放路径变成一个对应的JSON的方法
2018/10/17 NodeJs
微信小程序自定义tabbar custom-tab-bar 6s出不来解决方案(cover-view不兼容)
2019/11/01 Javascript
vue.js 子组件无法获取父组件store值的解决方式
2019/11/08 Javascript
Python中subprocess的简单使用示例
2015/07/28 Python
python实现的多线程端口扫描功能示例
2017/01/21 Python
Python面向对象程序设计类的封装与继承用法示例
2019/04/12 Python
时尚的CSS3进度条效果
2012/02/22 HTML / CSS
HTML5是什么 HTML5是什么意思 HTML5简介
2012/10/26 HTML / CSS
英国度假别墅预订:Sykes Cottages
2017/06/12 全球购物
Speedo速比涛德国官方网站:世界领先的泳装品牌
2019/08/26 全球购物
超市促销活动方案
2014/03/05 职场文书
安全生产管理责任书
2014/04/16 职场文书
机电一体化应届生求职信
2014/08/09 职场文书
质检员岗位职责
2015/02/03 职场文书
大学学生会辞职信
2015/05/13 职场文书
班主任开场白
2015/06/01 职场文书
Python中22个万用公式的小结
2021/07/21 Python
关于PHP数组迭代器的使用方法实例
2021/11/17 PHP