システム: 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()*/
しかし、従来の方法に従って書くと、次のようになります:
<?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 "登录失败";}?>
<?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