關(guān)于DISCUZ不用通行證登陸得內(nèi)容介紹第1/2頁(yè)
更新時(shí)間:2008年10月04日 15:56:39 作者:
DISCUZ是中國(guó)最常用的論壇,雖然他本身有通行證給大家連接,但實(shí)際上用戶的統(tǒng)一還是很不好,經(jīng)常要建立兩個(gè)用戶表,第一不利于注冊(cè)和管理,第二浪費(fèi)數(shù)據(jù)庫(kù)。
關(guān)于DISCUZ不用通行證登陸得內(nèi)容介紹
DISCUZ是中國(guó)最常用的論壇,雖然他本身有通行證給大家連接,但實(shí)際上用戶的統(tǒng)一還是很不好,經(jīng)常要建立兩個(gè)用戶表,第一不利于注冊(cè)和管理,第二浪費(fèi)數(shù)據(jù)庫(kù)。
最近做一個(gè)項(xiàng)目也是使用的DISCUZ,所以研究了一下DISCUZ的登陸,基本完成了同步登陸。大家如果有興趣可以研究一下。
別的不廢話了,如果你自己寫的系統(tǒng),可以直接用DISCUZ的公用文件,直接引用include/common.inc.php就好了,這樣最簡(jiǎn)單了,只要引用這個(gè)文件,$discuz_uid就是你的用戶ID了,$discuz_user就是你的用戶名,
如果你用的自己的公用文件,就要提取兩個(gè)函數(shù),在global.func.php中,有兩個(gè)函數(shù)
Dsetcookie,和authcode,如果你不懶的話在復(fù)制一個(gè)函數(shù)clearcookies,第一個(gè)就是DISCUZ自己的建造COOKIE的函數(shù),第二個(gè)是DISCUZ的可逆加密函數(shù),第三個(gè)是清除COOKIE函數(shù),我是放到我自己的FUNC.PHP文件中了
好了,咱們開(kāi)始寫建立和識(shí)別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("查詢出錯(cuò),出錯(cuò)信息:".$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;
}
}
這是一個(gè)登陸函數(shù),廢話不說(shuō)了,直接說(shuō)關(guān)鍵部分吧,在查詢之后,當(dāng)獲得到信息后,(用戶名和密碼正確的話)我們獲得3個(gè)信息,UID,PASSWORD,和SECQUES,這三個(gè)是DISCUZ建立COOKIE需要用的,第一個(gè)是用戶ID,第二個(gè)是加密后的密碼,第三個(gè)是加密后的回答問(wèn)題答案(即使沒(méi)有設(shè)置也要用),DISCUZ是需要提示問(wèn)題和答案的,而我們登陸就不需要了,所以我這里直接把他查出來(lái)了。dsetcookie('auth', authcode("$formPassword\t$secques\t$uid", 'ENCODE','123'), '0');
這句就是建立用戶的COOKIE,別的不用說(shuō)了,請(qǐng)注意這句'123',這個(gè)地方一定要注意,這個(gè)是加密時(shí)設(shè)置的KEY,就是你這里需要和你DISCUZ的一樣,所以有三個(gè)地方一定要統(tǒng)一,一個(gè)是global.func.php,一個(gè)是你自己復(fù)制出來(lái)的那個(gè)authcode函數(shù),還有就是你在使用authcode的時(shí)候。這時(shí)候論壇應(yīng)該可以登陸了,如果不能登陸,請(qǐng)看下面
DISCUZ是中國(guó)最常用的論壇,雖然他本身有通行證給大家連接,但實(shí)際上用戶的統(tǒng)一還是很不好,經(jīng)常要建立兩個(gè)用戶表,第一不利于注冊(cè)和管理,第二浪費(fèi)數(shù)據(jù)庫(kù)。
最近做一個(gè)項(xiàng)目也是使用的DISCUZ,所以研究了一下DISCUZ的登陸,基本完成了同步登陸。大家如果有興趣可以研究一下。
別的不廢話了,如果你自己寫的系統(tǒng),可以直接用DISCUZ的公用文件,直接引用include/common.inc.php就好了,這樣最簡(jiǎn)單了,只要引用這個(gè)文件,$discuz_uid就是你的用戶ID了,$discuz_user就是你的用戶名,
如果你用的自己的公用文件,就要提取兩個(gè)函數(shù),在global.func.php中,有兩個(gè)函數(shù)
Dsetcookie,和authcode,如果你不懶的話在復(fù)制一個(gè)函數(shù)clearcookies,第一個(gè)就是DISCUZ自己的建造COOKIE的函數(shù),第二個(gè)是DISCUZ的可逆加密函數(shù),第三個(gè)是清除COOKIE函數(shù),我是放到我自己的FUNC.PHP文件中了
好了,咱們開(kāi)始寫建立和識(shí)別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("查詢出錯(cuò),出錯(cuò)信息:".$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;
}
}
這是一個(gè)登陸函數(shù),廢話不說(shuō)了,直接說(shuō)關(guān)鍵部分吧,在查詢之后,當(dāng)獲得到信息后,(用戶名和密碼正確的話)我們獲得3個(gè)信息,UID,PASSWORD,和SECQUES,這三個(gè)是DISCUZ建立COOKIE需要用的,第一個(gè)是用戶ID,第二個(gè)是加密后的密碼,第三個(gè)是加密后的回答問(wèn)題答案(即使沒(méi)有設(shè)置也要用),DISCUZ是需要提示問(wèn)題和答案的,而我們登陸就不需要了,所以我這里直接把他查出來(lái)了。dsetcookie('auth', authcode("$formPassword\t$secques\t$uid", 'ENCODE','123'), '0');
這句就是建立用戶的COOKIE,別的不用說(shuō)了,請(qǐng)注意這句'123',這個(gè)地方一定要注意,這個(gè)是加密時(shí)設(shè)置的KEY,就是你這里需要和你DISCUZ的一樣,所以有三個(gè)地方一定要統(tǒng)一,一個(gè)是global.func.php,一個(gè)是你自己復(fù)制出來(lái)的那個(gè)authcode函數(shù),還有就是你在使用authcode的時(shí)候。這時(shí)候論壇應(yīng)該可以登陸了,如果不能登陸,請(qǐng)看下面
相關(guān)文章
在IIS7.0下面配置PHP 5.3.2運(yùn)行環(huán)境的方法
最近心血來(lái)潮,想學(xué)習(xí)一下php,既然想學(xué)習(xí)了就得需要搭環(huán)境。在網(wǎng)上找來(lái)找去都是說(shuō)IIS5.0或者6.0的配置。真是看得云里霧里的,這樣直接影響了我的判斷力。現(xiàn)特意寫下來(lái)在IIS7.0下面如何進(jìn)行配置PHP。2010-04-04
php實(shí)現(xiàn)屏蔽掉黑帽SEO的搜索關(guān)鍵字
這篇文章主要介紹了php實(shí)現(xiàn)屏蔽掉黑帽SEO的搜索關(guān)鍵字的相關(guān)資料,這里推薦給大家,有需要的小伙伴可以參考下。2015-04-04
PHP中使用register_shutdown_function函數(shù)截獲fatal error示例
這篇文章主要介紹了PHP中使用register_shutdown_function函數(shù)截獲fatal error示例,需要的朋友可以參考下2015-04-04
Laravel 實(shí)現(xiàn)Controller向blade前臺(tái)模板賦值的四種方式小結(jié)
今天小編就為大家分享一篇Laravel 實(shí)現(xiàn)Controller向blade前臺(tái)模板賦值的四種方式小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10

