Passport 通行證 整合第一篇:整合原理

請(qǐng)注意: 整合不成功 " /> 一a一片一级一片啪啪,男女性网站,黄视频网站入口

一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

discuz Passport 通行證 整合筆記

太簡(jiǎn)單了,但時(shí)間長(zhǎng)了,記不得,浪費(fèi)我半小時(shí)找資料,深刻體會(huì)好記性不如爛筆頭!!今天把passport文擋貼上,防止以后忘記!!記住,網(wǎng)上找到自己需要的資料也要耗時(shí)間的!!!!!!


Passport 通行證 整合

第一篇:整合原理

請(qǐng)注意: 整合不成功可能造成的后果-----dz論壇無(wú)法登錄,無(wú)法管理
解決辦法:
第一步: 到dz的數(shù)據(jù)庫(kù)表cdb_settings 找到下面這幾行修改為
NET attachments month_0609 setting_VJmAq4ZAlhYa.gif?)? ?attach_77703?, event)?> setting.gif (4.3 KB)
2006-9-30 13:59
第二步: 刪除dz安裝目錄/forumdata/cache/cache_settings.php
第三步: 重新訪問(wèn)論壇


登陸和注冊(cè)整合流程
用戶從登陸或注冊(cè)表單提交帳號(hào)密碼信息 ==>
主站程序檢驗(yàn)用戶登陸或注冊(cè),成功(注冊(cè)需要生成新用戶)則 ==>
設(shè)置主站自身的cookie或session    ==>
url傳遞 返回地址forward和編碼后的用戶信息和其他信息 到dz/api/passport.php

整合之前請(qǐng)先仔細(xì)閱讀官方passport技術(shù)文檔: http://www.discuz.NET/usersguide/advanced_passport.htm 復(fù)制內(nèi)容到剪貼板
代碼:
<?php
//該文檔保存為login.php
//首先將接口技術(shù)文檔里的加密解密函數(shù)拷貝
//為了不讓代碼太亂,我拷貝到文檔的結(jié)尾處
//假設(shè)自己的用戶數(shù)據(jù)庫(kù)表里用戶名字段為UserName, 密碼字段為Pwd, Email字段為 Email
//注冊(cè)頁(yè)實(shí)現(xiàn)方法差不多,可自行實(shí)現(xiàn),疑問(wèn)加我QQ:2666556

$act=(isset($_GET['act']))?$_GET['act']:"login";
if(function_exists($act)) $act();else login();        

function login()
{        
        $ErrMsg=UserCheck();
        if($ErrMsg!="")echo $ErrMsg;        
        //后面加上顯示你的登陸表單的代碼 如
?>
<form action=login.php?act=login method=post>
用戶名:<input name=username>
密碼:<input name=password>
<input name=submit type=submit value=登陸></form>
<?php

}//end function

function logout()//登出
{
        $passportkey="1234567890";//這里換成你論壇通行證設(shè)置的passportkey
        $auth=$_COOKIE['auth'];
        setcookie("auth", "",time() - 3600);
        $forward=$_GET['forward'];
        if($forward=="")$forward="../../index.php";//這里換成你的主頁(yè)絕對(duì)地址或相對(duì)地址                                       
        $verify = md5('logout'.$auth.$forward.$passportkey);
        $auth=rawurlencode($auth);
        $forward=rawurlencode($forward);
        header("Location: bbs/api/passport.php?action=logout&auth=$auth&forward=$forward&verify=$verify");
}

function UserCheck()
{        
        $passportkey="1234567890";//這里換成你論壇通行證設(shè)置的passportkey

        //===========驗(yàn)證輸入=====================
        if(!isset($_POST['submit'])) return; // login表單的按鈕需要與此同名
        $usnm=$_POST['username'];//username換成你登陸表單里的用戶名域                        
        $pwd=$_POST['password'];//password換成你登陸表單里的密碼域                        
        if($usnm=="") return "請(qǐng)輸入用戶名!";
        if($pwd=="") return "請(qǐng)輸入密碼!";

        //=========數(shù)據(jù)庫(kù)處理==========================
        $db=mysql_connect("localhost", "root", "");
        mysql_select_db("your_db_name");
$sql="Select * from `user` where UserName='".$usnm."' Limit 1";        
        $rs = mysql_query($sql,$db)        ;
        $row = mysql_fetch_array($rs);
        if(!$row)return "該用戶不存在";
        if($row["Pwd"]!=md5($pwd))return "密碼錯(cuò)誤";
        mysql_free_result($rs);        

        //==============header到bbs=====================        
        $member = array
        (
                        'time'     => time(),
                        'username' => $row["UserName"],
                        'password' => $row["Pwd"],
                        'email'    => $row["Email"]
        );
        $auth = passport_encrypt(passport_encode($member), $passportkey);
        setcookie("auth",$auth,($_POST["Cookie"]? time()+(int)$_POST["Cookie"] :0));
        $forward=$_POST['forward'];
        if($forward=="")$forward="../../index.php";                                       
        $verify = md5('login'.$auth.$forward.$passportkey);
        $auth=rawurlencode($auth);
        $forward=rawurlencode($forward);
        header("Location: bbs/api/passport.php?action=login&auth=$auth&forward=$forward&verify=$verify");                        

}


//=============================================================
//=============以下為拷貝過(guò)來(lái)的函數(shù)============================
function passport_encrypt($txt, $key) {
        srand((double)microtime() * 1000000);
        $encrypt_key = md5(rand(0, 32000));        
        $ctr = 0;
        $tmp = '';
        for($i = 0; $i < strlen($txt); $i++) {
                        $ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr;
                        $tmp .= $encrypt_key[$ctr].($txt[$i] ^ $encrypt_key[$ctr++]);
        }
        return base64_encode(passport_key($tmp, $key));
}

function passport_decrypt($txt, $key) {
        $txt = passport_key(base64_decode($txt), $key);
        $tmp = '';
        for ($i = 0; $i < strlen($txt); $i++) {
                 $tmp .= $txt[$i] ^ $txt[++$i];
        }
        return $tmp;
}

function passport_key($txt, $encrypt_key) {
        $encrypt_key = md5($encrypt_key);
        $ctr = 0;
        $tmp = '';
        for($i = 0; $i < strlen($txt); $i++) {
                        $ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr;
                        $tmp .= $txt[$i] ^ $encrypt_key[$ctr++];
        }
        return $tmp;
}

function passport_encode($array) {
        $arrayenc = array();
        foreach($array as $key => $val) {
                   $arrayenc[] = $key.'='.urlencode($val);
        }
        return implode('&', $arrayenc);

}
//=========================================================================
//===========================拷貝結(jié)束======================================
?>

php技術(shù)discuz Passport 通行證 整合筆記,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产精品2 | h网站亚洲 | 4s4s4s4s色大众影视 | 视频在线亚洲 | 91中文字幕在线视频 | 欧美在线色 | 精品视自拍视频在线观看 | 欧美一级欧美一级高清 | 亚洲另类图 | 亚洲综合日韩欧美一区二区三 | 中国精品视频一区二区三区 | 久久是精品 | 国产高清自拍视频 | 亚洲国产精久久小蝌蚪 | 亚洲六月丁香六月婷婷蜜芽 | 四虎综合九九色九九综合色 | 国产精品一区二区三区免费 | 国内久久久久影院精品 | 91精品视频在线看 | 激情6月丁香婷婷色综合 | 国产福利视精品永久免费 | 国产在线精品福利大全 | 国产高清一级毛片在线人 | 精品久久久久久蜜臂a∨ | 四虎最新永久免费视频 | 91亚洲免费视频 | 男人的天堂久久精品激情a 男人进去女人爽免费视频国产 | 91精品国产高清91久久久久久 | 5月婷婷6月丁香 | 91久久国产口精品久久久久 | 中文一区在线观看 | 亚洲免费午夜视频 | 成人免费在线视频 | 99精品视频在线观看免费专区 | 六月丁香啪啪六月激情 | 伊人网狠狠干 | 一级做性色a爰片久久毛片 一级做性色a爰片久久毛片免费 | 成人信息集中地 | 涩涩在线视频 | 国产无遮挡床戏视频免费 | 国产精品自在线观看剧情 |