ホームページ  >  記事  >  php教程  >  discuz パスポートパス一体型メモ

discuz パスポートパス一体型メモ

WBOY
WBOYオリジナル
2016-06-13 12:27:421006ブラウズ

太简单了,但时间长了,记不得,浪费我半小时找资料,深刻体会好记性不如烂笔头!!今天把passport文挡贴上,防止以后忘记!!记住,网上找到自己需要的资料也要耗时间的!!!!!!


Passport 通行证 整合

第一篇:整合原理

请注意: 整合不成功可能造成的后果-----dz论坛无法登录,无法管理
解决办法:
第一步: 到dz的数据库表cdb_settings 找到下面这几行修改为
setting.gif (4.3 KB)
2006-9-30 13:59

ステップ 2: dz インストール ディレクトリ/forumdata/cache/cache_settings.php を削除します
ステップ 3: フォーラムに再度アクセスします



ログイン統合プロセス
ユーザーはログインまたは登録フォームからアカウントとパスワード情報を送信 ==>gt;
成功した場合、メイン サイト プログラムはユーザーのログインまたは登録を確認します (登録には新しいユーザー) ==>
メイン Web サイト自体の Cookie またはセッションを設定します ==>
url は、返信先アドレスとエンコードされたユーザー情報およびその他の情報を dz/api/passport.php に渡します


統合 事前に公式パスポートの技術文書をよくお読みください: http://www.discuz.net/usersguide/advanced_pa​​ssport.htm
コンテンツをクリップボードにコピーします
コード:
<font face="新宋体"><?php<BR>//このドキュメントをlogin.phpとして保存します<BR>//最初にインターフェース技術ドキュメントの暗号化および復号化関数をコピーします<BR> //コードが煩雑になりすぎないように、ドキュメントの最後にコピーしました<BR>//ユーザー データベース テーブルのユーザー名フィールドが UserName、パスワード フィールドが Pwd、電子メール フィールドであると仮定します。 is Email<BR>//登録ページの実装 方法は似ており、ご自身で実装できます。ご不明な点がございましたら、QQ:2666556<br><br>$act=(isset($_GET['act) '])?$ _ get [' act ']: "login"; <BR> if($ act)$ act(); else login( "") <input name=username><br>パスワード:<input name=password><br><input name=submit type=submit value=Login></form><br>&lt ;?php<br> <br>}//end function<br><br>function logout()//ログアウト<br>{<br> $passportkey="1234567890";//ここでフォーラムのパスを置き換えます Set Passportkey<br> $auth= $_COOKIE['auth'];<br> setcookie("auth", "",time() - 3600);<br> $forward=$_GET['forward']; <br> If($forward== "")$forward="../../index.php";//ここをホームページの絶対アドレスまたは相対アドレスに置き換えます '.$auth.$forward.$passportkey);<br> $auth= rawurlencode($auth);<br> $forward=rawurlencode($forward);<br> header("場所: bbs/api/passport.php?action=logout&auth=$auth&forward=$forward&verify=$verify");<br>}<br><br>function UserCheck() <br>{ ===入力を確認=====================<br> if(!isset( $_POST['submit'])) return; // ログイン フォームには同じ名前が必要です <br> $usnm=$_POST['username'];// ユーザー名はログイン フォームのユーザー名フィールドに置き換えられますログインするパスワードのドメインをフォームに置き換えます <br> if ($ usnm == "") Return、ユーザー名を入力してください! "; <br> if ($ pwd ==" ") Return. <br><br> //==========データベース処理==========================<br> $db =mysql_connect(" localhost", "root", "");<br> mysql_select_db("your_db_name");<br>$sql="Select * from `user` where UserName='".$usnm."' 制限 1"; ; <br> $rs = mysql_query($sql,$db) ;<br> $row = mysql_fetch_array($rs);<br> if(!$row)return "ユーザーは存在しません";<br> if( $row["Pwd"]!=md5($pwd))return "パスワードが間違っています";<br> mysql_free_result($rs); <br><br> //========== == ==BBS へのヘッダー====================== . 'ユーザー名' => $row["ユーザー名"],<br> 'メール' => $row["メール "]<br> );<br> $auth =パスポート_encrypt(passport_encode($member), $passportkey);<br> setcookie("auth",$auth,($_POST[ "Cookie"]? time() ( int)$_POST["Cookie"] :0));<br> $forward=$_POST['forward'];<br> if($forward=="")$ forward="../../index.php"; $forward=rawurlencode($forward) ;<br> header("Location: bbs/api/passport.php?action=login&auth=$auth&forward=$forward&verify=$検証"); ============================================= ==== ===========<br>//==============以下はコピーされた関数です========== ====== =============<br>関数パスポート_encrypt($txt, $key) {<br> srand((double)microtime() * 1000000);<br> $encrypt_key = md5(rand (0,32000)); > $ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr;<br> 🎜> }<br>使用中‐ ‐ returnbase64_encode(passport_key($tmp, $key)); $key);<br> $tmp = '';<br> for ($i = 0; $i < strlen ($txt) ; $i ) {<BR> $tmp .= $txt[ $i] ^ $txt[ $i];<BR> } }<BR> return $tmp;<BR>}<br><br>functionパスポート_key($txt, $encrypt_key) {<BR> $encrypt_key = md5($encrypt_key);<BR> $ctr = 0;<BR> $tmp = '';<BR> for( $i = 0; $i < strlen($txt); $i ) {<BR> $ctr = $ctr == strlen($encrypt_key) 0 : $ctr;<BR> $tmp .= $txt[$i] ^ $encrypt_key[$ctr ];<BR> }<BR> return $tmp;<BR>}<br><br>function Passport_encode( $array) {<BR> $arrayenc = array();<BR> foreach($array as $key => $val) {<br> $arrayenc[] = $key.'='.urlencode($val) );<br> }<br> return implode('&', $arrayenc);<br><br>}<br>//================== ================================================= =====<br>//===========================コピー贝结束=========== ===========================<br>?></font>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。