ホームページ  >  記事  >  バックエンド開発  >  この投稿に対する投稿された回答には合計 500 ポイントが付与され、投稿されていない回答には合計 100 ポイントが付与されます。

この投稿に対する投稿された回答には合計 500 ポイントが付与され、投稿されていない回答には合計 100 ポイントが付与されます。

WBOY
WBOYオリジナル
2016-06-23 13:43:31924ブラウズ

システム: discuz3.2 バージョン

discuz データテーブルにクエリを実行し、投稿、メンバー、およびそのさまざまな情報などの情報を取得するには、いくつかの SQL が必要です。クエリに加えて、書き込みや更新などの操作も含まれます。

もちろん、これは単純なデータベース接続ではなく、discuz 独自のルールと一致している必要があります。

実践的な例を挙げると:
bbs フォルダーに discuz プログラムをインストールし、そのフォルダーの外に menberinfo.php を書きました。この php ログイン ボックスからログインし、メンバーシップ情報を取得して、フォーラム bbs にアクセスできます。 , 中の人もログインしています。


問題を解決できた場合は 100 ポイントのみ追加でき、貢献度の高い人に 1 つずつポイントが与えられます。


クリアランス セールが始まります。みんな来てください


ディスカッション (解決策) への返信

http://bbs.csdn.net/topics/390896551#post-398264470
menberinfo.php

require_once './bbs/source/class/class_core.php';//根目录下C::app()->init();/*基础操作DB::insert(),DB::update(),DB::query(),DB::delete()*/

http ://bbs.csdn.net/topics/390896551#post-398264470

menberinfo.php

require_once './bbs/source/class/class_core.php';//根目录下C::app()->init();/*基础操作DB::insert(),DB::update(),DB::query(),DB::delete()*/

主な質問は 2 つあり、1 つは以下の使用法であり、もう 1 つはセッション変数またはグローバル変数に結果を保存する方法です。 。


こんな感じです どうして間違っているのですか?

しかし、従来の方法に従って書くと、次のようになります:

<?require '../bbs/source/class/class_core.php';//引入系统核心文件$discuz = C::app();$discuz->init();$name=$_POST['name'];$pw=md5(md5($_POST['pw']));$count = DB::result(DB::query("select uid from md_common_member where username=$name and password=$pw"), 0);if($count){ global  $_G; $arr=array(); $_G=$arr['uid']; echo "登录成功";}else{echo "登录失败";}?>


もちろん、この記述は正しいです。ここで聞きたいのですが、discuz はどのように暗号化されていますか?

<?require '../bbs/source/class/class_core.php';//引入系统核心文件$discuz = C::app();$discuz->init();$name=$_POST['name'];$pw=md5(md5($_POST['pw']));$connect=mysql_pconnect("localhost","root","1234");if(!mysql_select_db('xxx',$connect))die("数据库连接失败!");$sql="SELECT count(*) FROM md_common_member WHERE username='$username' and password='$pw'";$res = mysql_query($sql);//执行查询语句$row=mysql_fetch_assoc($res);if($row['uid']){ global  $_G;$_G=$row['uid']; echo "登录成功";}else{echo "登录失败";}?>

$user='管理员';//邮箱或者昵称$pwd=md5(123456);if(strlen($user) > 6 && strlen($user) <= 32 && preg_match("/^([A-Za-z0-9\-_.+]+)@([A-Za-z0-9\-]+[.][A-Za-z0-9\-.]+)$/", $user)){	//邮箱登录	$uc=DB::fetch_first('SELECT uid,email,username,password,salt FROM %t WHERE '.DB::field("email",$user),array('ucenter_members'));}else{	//昵称登录	$uc=DB::fetch_first('SELECT uid,email,username,password,salt FROM %t WHERE '.DB::field("username",$user),array('ucenter_members'));}$pwd=md5($pwd.$uc['salt']);if($pwd===$uc['password']){	//登录成功	//验证的密码是pre_ucenter_members表中的password字段,它是由用户密码md5后加上salt字段(注册时随机生成的)再md5生成的}else{	//失败}//你也可以引入ucenter进行登录//调用之前,你需要loaducenter();才可以使用uc_user_login//参考http://faq.comsenz.com/library/UCenter/interface/interface_user.htm

最後の質問は、グローバル変数に値を代入し、ログイン後にセッションを更新する方法です。


参考文献を読んだのですが、私のレベルが限られていて理解できません。
$user='管理员';//邮箱或者昵称$pwd=md5(123456);if(strlen($user) > 6 && strlen($user) <= 32 && preg_match("/^([A-Za-z0-9\-_.+]+)@([A-Za-z0-9\-]+[.][A-Za-z0-9\-.]+)$/", $user)){	//邮箱登录	$uc=DB::fetch_first('SELECT uid,email,username,password,salt FROM %t WHERE '.DB::field("email",$user),array('ucenter_members'));}else{	//昵称登录	$uc=DB::fetch_first('SELECT uid,email,username,password,salt FROM %t WHERE '.DB::field("username",$user),array('ucenter_members'));}$pwd=md5($pwd.$uc['salt']);if($pwd===$uc['password']){	//登录成功	//验证的密码是pre_ucenter_members表中的password字段,它是由用户密码md5后加上salt字段(注册时随机生成的)再md5生成的}else{	//失败}//你也可以引入ucenter进行登录//调用之前,你需要loaducenter();才可以使用uc_user_login//参考http://faq.comsenz.com/library/UCenter/interface/interface_user.htm

アプリケーションを Ucenter に追加する必要がある場合、ucenter を使用して実装できます







ログイン、ログアウト、ユーザー情報の取得、ショート メッセージの送受信に関する公式デモがあります。
参照:
http://faq.comsenz.com/library/UCenter/example/example_index.htm
デモのダウンロード:
http://faq.comsenz.com/library/UCenter/example/examples.zip

ダウンロード次に、それを解凍し、アクセス可能な Web サイトのディレクトリに置きます。フォーラムの uc_client をデモのルート パスにコピーします。
ucenter と同じように、デモで config.inc.php を再度設定します。

次の操作効果:











アプリケーションを Ucenter に追加する必要がある場合、ucenter で実装できます。


についての公式デモがありますログアウトし、ユーザー情報を取得し、ショートメッセージを送受信します。
参照:
http://faq.comsenz.com/library/UCenter/example/example_index.htm
デモのダウンロード:
http://faq.comsenz.com/library/UCenter/example/examples.zip

ダウンロード次に、それを解凍し、アクセス可能な Web サイトのディレクトリに置きます。フォーラムの uc_client をデモのルート パスにコピーします。
ucenter と同じように、デモで config.inc.php を再度設定します。

以下の操作効果:








http://bbs.csdn.net/topics/390952723 ポイントを受け取るにはここにアクセスしてください

$uid=1;//用户uid$cookietime = 31536000;if(($member = getuserbyuid($uid, 1))) {	//这个设置后,本网站就是登录状态了,其实下面的setloginstatus()里面也执行了这个操作,可以没有,直接执行setloginstatus	dsetcookie('auth', authcode("$member[password]\t$member[uid]", 'ENCODE'), $cookietime);}require_once libfile('function/member');//设置后,可以用$_G['uid'],$_G['username']...获取用户信息,session和统计也在里面执行了setloginstatus($member, $cookietime);//若是有其他网站应用,要执行下面的同步登陆if($_G['setting']['allowsynlogin']) {	loaducenter();	//将$ucsynlogin输出到网页上,执行同步登陆	$ucsynlogin = uc_user_synlogin($uid);}//更新用户状态,TIMESTAMP,discuz的时间常量C::t('common_member_status')->update($uid, array('lastip' => '', 'lastvisit' =>TIMESTAMP, 'lastactivity' => TIMESTAMP));

http://bbs.csdn。 net/topics/390952720

http://bbs.csdn.net/topics/390952721

ポイントを獲得するには、これら 2 つの投稿にアクセスしてください。ありがとうございます。この投稿のミッションは完了したため、早期に終了します。

この投稿はその使命を終えました。まだ質問がありますが、トピックに一貫性がないため、別の投稿を開いたほうがよいでしょう。

スコアを収集するには返信アドレスにアクセスしてください。ありがとうございます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。