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

所属分类: 网络编程 / PHP编程 阅读数: 908
收藏 0 赞 0 分享
关于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的时候。这时候论坛应该可以登陆了,如果不能登陆,请看下面
更多精彩内容其他人还在看

php实现在服务器端调整图片大小的方法

这篇文章主要介绍了php实现在服务器端调整图片大小的方法,实例分析了imageResizer与loadimage操作图片的相关技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

php动态绑定变量的用法

这篇文章主要介绍了php动态绑定变量的用法,涉及php变量的判定与动态定义的相关技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

php实现读取和写入tab分割的文件

这篇文章主要介绍了php实现读取和写入tab分割的文件,涉及php文件读写及字符串操作的相关技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

php正则preg_replace_callback函数用法实例

这篇文章主要介绍了php正则preg_replace_callback函数用法,实例分析了preg_replace_callback函数进行正则替换的相关技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

php将字符串随机分割成不同长度数组的方法

这篇文章主要介绍了php将字符串随机分割成不同长度数组的方法,涉及随机数及字符串操作的相关技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

php自动给网址加上链接的方法

这篇文章主要介绍了php自动给网址加上链接的方法,可实现对本文中的网址加上链接的功能,涉及正则匹配的相关技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

php使用socket post数据到其它web服务器的方法

这篇文章主要介绍了php使用socket post数据到其它web服务器的方法,涉及php使用socket传输数据的相关技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

PHP使用递归方式列出当前目录下所有文件的方法

这篇文章主要介绍了PHP使用递归方式列出当前目录下所有文件的方法,涉及php递归操作文件的相关技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

php获取指定范围内最接近数的方法

这篇文章主要介绍了php获取指定范围内最接近数的方法,可实现根据给定区间长度划分各个区间,并在其中寻找与给定数最接近的数,需要的朋友可以参考下
收藏 0 赞 0 分享

php使用ob_flush不能每隔一秒输出原理分析

这篇文章主要介绍了php使用ob_flush不能每隔一秒输出原理,较为详细的分析了php使用ob_flush的相关原理与Linux下使用cli方式的使用方法,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多