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()
*/
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 "登录失败";}?>当然只是语句无误,这里弱弱问一句,discuz是怎么加密的呢?
$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
$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));
官方有个demo,关于登陆,注销,获取用户信息,收发短消息。
见:
http://faq.comsenz.com/library/UCenter/example/example_index.htm
demo下载:
http://faq.comsenz.com/library/UCenter/example/examples.zip下载后解压,放到任意可以访问到的网站目录中,把你论坛中的uc_client复制到,demo的根路径中。
再配置一下demo中的config.inc.php,与ucenter中的一样就可以。下面运行效果:
http://bbs.csdn.net/topics/390952720http://bbs.csdn.net/topics/390952721请到这两个帖接分,谢谢 这个贴使命完成,提前结束。