关于DISCUZ不用通行证登陆得内容介绍第1/2页

关于DISCUZ不用通行证登陆得内容介绍
DISCUZ是中国最常用的论坛,虽然他本身有通行证给大家连接,但实际上用户的统一还是很不好,经常要建立两个用户表,第一不利于注册和管理,第二浪费数据库。
最近做一个项目也是使用的DISCUZ,所以研究了一下DISCUZ的登陆,基本完成了同步登陆。大家如果有兴趣可以研究一下。
别的不废话了,如果你自己写的系统,可以直接用DISCUZ的公用文件,直接引用include/common.inc.php就好了,这样最简单了,只要引用这个文件,$discuz_uid就是你的用户ID了,$discuz_user就是你的用户名,
如果你用的自己的公用文件,就要提取两个函数,在global.func.php中,有两个函数
Dsetcookie,和authcode,如果你不懒的话在复制一个函数clearcookies,第一个就是DISCUZ自己的建造COOKIE的函数,第二个是DISCUZ的可逆加密函数,第三个是清除COOKIE函数,我是放到我自己的FUNC.PHP文件中了
好了,咱们开始写建立和识别COOKIE的方法了
function lgoin($array)
{
$username = $array['username'];
$password = $array['password'];
$sql = "SELECT `uid`,`password`,`secques` FROM `cdb_members` WHERE
`username`='$username' and `password`=md5('$password')";
try {
$rs = $this -> _db -> query($sql);
}catch (Exception $e){
exit("查询出错,出错信息:".$e->getMessage());
return 0;
}
$row = $this -> _db -> fetch($rs); //查询登陆的用户名和密码是否正确
if($row){
dsetcookie('sid','',-2423234234); // 注销掉sid
$secques = $row['secques'];
$uid = $row['uid'];
$formPassword = $row['password'];
dsetcookie('auth', authcode("$formPassword\t$secques\t$uid", 'ENCODE','123'), '0');
return 1;
}else{
return 2;
}
}

这是一个登陆函数,废话不说了,直接说关键部分吧,在查询之后,当获得到信息后,(用户名和密码正确的话)我们获得3个信息,UID,PASSWORD,和SECQUES,这三个是DISCUZ建立COOKIE需要用的,第一个是用户ID,第二个是加密后的密码,第三个是加密后的回答问题答案(即使没有设置也要用),DISCUZ是需要提示问题和答案的,而我们登陆就不需要了,所以我这里直接把他查出来了。dsetcookie('auth', authcode("$formPassword\t$secques\t$uid", 'ENCODE','123'), '0');
这句就是建立用户的COOKIE,别的不用说了,请注意这句'123',这个地方一定要注意,这个是加密时设置的KEY,就是你这里需要和你DISCUZ的一样,所以有三个地方一定要统一,一个是global.func.php,一个是你自己复制出来的那个authcode函数,还有就是你在使用authcode的时候。这时候论坛应该可以登陆了,如果不能登陆,请看下面

当前1/2页 12下一页阅读全文

(0)

相关推荐

  • 关于DISCUZ不用通行证登陆得内容介绍第1/2页

    关于DISCUZ不用通行证登陆得内容介绍 DISCUZ是中国最常用的论坛,虽然他本身有通行证给大家连接,但实际上用户的统一还是很不好,经常要建立两个用户表,第一不利于注册和管理,第二浪费数据库. 最近做一个项目也是使用的DISCUZ,所以研究了一下DISCUZ的登陆,基本完成了同步登陆.大家如果有兴趣可以研究一下. 别的不废话了,如果你自己写的系统,可以直接用DISCUZ的公用文件,直接引用include/common.inc.php就好了,这样最简单了,只要引用这个文件,$discuz_uid

  • Discuz! Passport 通行证整合

    解决办法: 第一步: 到dz的数据库表cdb_settings 找到下面这几行修改为 第二步: 删除dz安装目录/forumdata/cache/cache_settings.php第三步: 重新访问论坛 登陆和注册整合流程用户从登陆或注册表单提交帐号密码信息 ==>主站程序检验用户登陆或注册,成功(注册需要生成新用户)则 ==>设置主站自身的cookie或session    ==>url传递 返回地址forward和编码后的用户信息和其他信息 到dz/api/passport.php

  • Bootstrap项目实战之首页内容介绍(全)

    本节课第一节我们轮播图的下方,设计一个内容介绍,内容介绍分两部分,本次为上半部分. 一.首页内容介绍 //关于上节课轮播图,手册上其实有一个更好的方案,并不需要通过额外的代码控制. <a href="#myCarousel" data-slide="prev" class="carousel-control left"> <span class="glyphicon glyphicon-chevron-left&quo

  • spring-boot-klock-starter V1.1 主体功能重大更新内容介绍

    基于redis的 spring-boot 分布式锁组件,使得项目拥有分布式锁能力变得异常简单,开箱即用. 此组件同样适用于spring mvc项目. 本次更新内容: 支持锁定方法入参的业务key 支持注解方式获取业务key 支持Spel获取业务key 具体使用方式如下: 使用场景描述: 本次更新主要解决,如果入参的value相同时需要加锁,入参的value不同的时候不加锁直接放行的场景: 开箱即用 1.添加lock starter组件依赖 <dependency> <groupId>

  • discuz Passport 通行证 整合笔记

    太简单了,但时间长了,记不得,浪费我半小时找资料,深刻体会好记性不如烂笔头!!今天把passport文挡贴上,防止以后忘记!!记住,网上找到自己需要的资料也要耗时间的!!!!!! Passport 通行证 整合第一篇:整合原理 请注意: 整合不成功可能造成的后果-----dz论坛无法登录,无法管理解决办法: 第一步: 到dz的数据库表cdb_settings 找到下面这几行修改为 setting.gif (4.3 KB) 2006-9-30 13:59 第二步: 删除dz安装目录/forumda

  • Kubernetes(K8S)入门基础内容介绍

    Introduction basic of kubernetes 我们要学习 Kubernetes,就有首先了解 Kubernetes 的技术范围.基础理论知识库等,要学习 Kubernetes,肯定要有入门过程,在这个过程中,学习要从易到难,先从基础学习. 那么 Kubernetes 的入门基础内容(表示学习一门技术前先了解这门技术)包括哪些? 根据 Linux 开源基金会的认证考试,可以确认要了解 Kubernetes ,需要达成以下学习目标: Discuss Kubernetes. Lea

  • jquery 元素控制(追加元素/追加内容)介绍及应用

    一.在元素内部/外部追加元素 append,prepend:添加到子元素 before,after:作为兄弟元素添加 html: 复制代码 代码如下: <div id="content"> <p>在我的后面追加一条新闻</p> </div> Javascript: 复制代码 代码如下: <script type="text/javascript"> jQuery(function(){ //在元素内部追加内

  • MySQL数据库安全配置介绍第1/2页

    1.前言: MySQL数据库是完全网络化的跨平台关系型数据库系统,同时是具有客户机/服务器体系结构的分布式数据库管理系统.它具有功能强.使用简便.管理方便.运行速度快.安全可靠性强等优点,用户可利用许多语言编写访问MySQL数据库的程序,特别是与PHP更是黄金组合,运用十分广泛.MySQL数据库的安全配置也是很有必要的,现在的MySQL数据库中信息的安全性常常受到威胁,故安全配置必不可少. 由于MySQL是多平台的数据库,它的默认配置要考虑各种情况下都能适用,所以在我们自己的使用环境下应该进行进

  • 40余种刻录盘片详细对照分析介绍第1/2页

    ■刻录盘相关资料 CD-R以及DVD-R的工作原理是利用激光在空白盘片上烧出很小的凹坑(Pit),这样的高低不平就代表了数字"0"和"1".为了达到这个目的,盘片上就必须涂一层特殊的染料.目前刻录盘都是使用有机染料作为记录层的主要材料,而不同的染料反映在盘片上就是不同的颜色.现在市场上常见主要有金盘.绿盘和蓝盘,它们的数据刻录和读取原理都是一样的.  ●绿盘  绿盘是最早开发生产的刻录盘,它采用了日本"太阳诱电"发明的花青染料.由于当时CD-R标

  • jqPaginator结合express实现分页展示内容效果第1/2页

    写在前面的话 分页展示内容也是我们在页面开发中经常会遇到的需求 前端页面利用jqPaginator这个jquery插件来编写 后端利用mysql存储数据 开始敲代码 回顾sql知识 首先让我们回顾一下sql语句,我们只想查询出数据表里的某几条用limit实现 select * from 表名 limit [offset,] rows 其中,limit后面可以跟两个参数,也可以跟一个参数. 跟一个参数表示rows,相当于offset=0,从数据表中的第一条记录开始查询出rows条数据. 跟两个参数

随机推荐