色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

關于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的時候。這時候論壇應該可以登陸了,如果不能登陸,請看下面

php技術關于DISCUZ不用通行證登陸得內容介紹第1/2頁,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 丹东市| 文水县| 江华| 田林县| 玛多县| 太仆寺旗| 孟连| 河间市| 榆中县| 鄂尔多斯市| 宣恩县| 前郭尔| 罗田县| 扶余县| 盐亭县| 兴城市| 惠东县| 永仁县| 彩票| 朝阳市| 桐乡市| 钦州市| 扎囊县| 邓州市| 嘉善县| 马鞍山市| 如皋市| 灌南县| 伽师县| 沙坪坝区| 洛川县| 宁波市| 澜沧| 凤台县| 若羌县| 贡山| 永和县| 澎湖县| 启东市| 黄大仙区| 望奎县|