ログインするためのパスのない DISCUZ の紹介
DISCUZ は中国で最も一般的に使用されているフォーラムですが、誰でも接続できるパスがありますが、ユーザーの実際の統合は依然として非常に不十分です。登録と管理に役立たず、データベースの 2 番目の無駄です。
最近、DISCUZも使用するプロジェクトに取り組んだので、DISCUZのログインを勉強し、基本的に同期ログインを完了しました。興味があれば調べてみてください。
これ以上はナンセンスです。独自のシステムを作成する場合は、DISCUZ 公開ファイルを直接使用して include/common.inc.php を参照することが最も簡単です。このファイルを参照する限り、$discuz_uid は自分のものになります。ユーザー ID、$discuz_user はユーザー名です。独自の公開ファイルを使用する場合は、global.func.php に 2 つの関数
Dsetcookie と、authcode を抽出する必要があります。面倒なので、clearcookies 関数をコピーします。最初の関数は DISCUZ の COOKIE を作成する関数、2 番目の関数は DISCUZ の可逆暗号化関数、3 番目の関数は独自の FUNC.PHP ファイルに置きました。
さて、COOKIE
関数 lgoin($array) の作成と識別方法を書き始めましょう
$username = $array['username'];
$password = $array['password']; "SELECT `uid`,`password`,`secques` FROM `cdb_members` WHERE
`username`='$username' and `password`=md5('$password')"; ->db ->クエリ($sql);
}catch (例外 $e){
exit("クエリエラー、エラーメッセージ: ".$e->getMessage());
$row = $this -> _db -> //ログインしているユーザー名とパスワードが正しいかどうかを確認します
if($row){
dsetcookie('sid','',-2423234234) ); // ログアウト sid
$secques = $row['uid'];
$formPassword = $row['password']; authcode("$formPasswordt$secquest$uid", 'ENCODE','123'), '0');
}else{
}
}
これはログイン関数です。そうは言っても、重要な部分について直接説明しましょう。クエリを実行した後、情報が取得されると (ユーザー名とパスワードが正しい場合)、UID、PASSWORD、SECQUES の 3 つの情報が必要になります。 DISCUZ は COOKIE を確立するために、1 つ目はユーザー ID、2 つ目は暗号化されたパスワード、3 つ目は質問に対する暗号化された回答です (設定されていない場合でも使用されます)。ログインする必要はないので、ここで直接彼を調べてみました。 dsetcookie('auth', authcode("$formPasswordt$secquest$uid", 'ENCODE','123'), '0');
この文は、言うまでもなく、ユーザーの COOKIE を確立するためのものです。この文「123」に注目してください。これは、DISCUZ と同じである必要があるため、1 つは global.func.php です。 、もう 1 つは authcode 関数を自分でコピーし、authcode を使用する場合です。この時点でフォーラムにログインできるはずです。ログインできない場合は、以下を参照してください
現在のページ 1/2 12次のページ
上記は、DISCUZ へのパスなしのログインに関する discuz x1.5 の内容を紹介しています。ページ 1/2 には、PHP チュートリアルに興味のある友人の参考になれば幸いです。