700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 织梦DedeCMS网站系统整合discuz论坛后会员注册后不用激活

织梦DedeCMS网站系统整合discuz论坛后会员注册后不用激活

时间:2021-11-10 21:20:26

相关推荐

织梦DedeCMS网站系统整合discuz论坛后会员注册后不用激活

下面说下DedeCMS整合discuz后会员注册后不用激活的实现,以前做站时,一直在想,dede和dz整合后,会员在网站注册后到论坛能不能不再激活,看着可不舒服,现在总算解决了,闲话不说了,下面进入正题,百度也不让发附件,只有啰嗦点了,呵呵,比较长,分3篇:

1.首先找到dede-〉api-〉uc.php文件

打开uc.php,将内容替换为:

<?php

/**************************二次开发说明**************************************

此模块应用于DEDECMS5.7版本,请替换API文件夹的UC.PHP,替换后,通过DEDE注册的用户,

访问论坛系统可以免激活,实现同时登陆同时退出。

*****************************************版权:**************/

include_once (dirname(__FILE__).”/../include/common.inc.php”);

define(‘IN_DISCUZ’, FALSE);

define(‘UC_CLIENT_VERSION’, ‘1.5.0’); //note UCenter 版本标识

define(‘UC_CLIENT_RELEASE’, ‘1031’);

define(‘API_DELETEUSER’, 1); //note 用户删除 API 接口开关

define(‘API_RENAMEUSER’, 1); //note 用户改名 API 接口开关

define(‘API_GETTAG’, 1); //note 获取标签 API 接口开关

define(‘API_SYNLOGIN’, 1); //note 同步登录 API 接口开关

define(‘API_SYNLOGOUT’, 1); //note 同步登出 API 接口开关

define(‘API_UPDATEPW’, 1); //note 更改用户密码 开关

define(‘API_UPDATEBADWORDS’, 1); //note 更新关键字列表 开关

define(‘API_UPDATEHOSTS’, 1); //note 更新域名解析缓存 开关

define(‘API_UPDATEAPPS’, 1); //note 更新应用列表 开关

define(‘API_UPDATECLIENT’, 1); //note 更新客户端缓存 开关

define(‘API_UPDATECREDIT’, 1); //note 更新用户积分 开关

define(‘API_GETCREDITSETTINGS’, 1); //note 向 UCenter 提供积分设置 开关

define(‘API_GETCREDIT’, 1); //note 获取用户的某项积分 开关

define(‘API_UPDATECREDITSETTINGS’, 1); //note 更新应用积分设置 开关

define(‘API_RETURN_SUCCEED’, ‘1’);

define(‘API_RETURN_FAILED’, ‘-1’);

define(‘API_RETURN_FORBIDDEN’, ‘-2’);

define(‘UC_CLIENT_ROOT’, DEDEROOT.’/uc_client’);

//note 普通的 http 通知方式

if(!defined(IN_UC)){error_reporting(0);set_magic_quotes_runtime(0);defined(MAGIC_QUOTES_GPC) || define(MAGIC_QUOTES_GPC, get_magic_quotes_gpc());$_DCACHE = $get = $post = array();$code = @$_GET[code];parse_str(_authcode($code, DECODE, UC_KEY), $get);if(MAGIC_QUOTES_GPC){ $get = _stripslashes($get);}$timestamp = time();if($timestamp - $get[ ime] > 3600) { exit(Authracation has expiried);}if(empty($get)) { exit(Invalid Request);}$action = $get[action];require_once UC_CLIENT_ROOT./lib/xml.class.php;$post = xml_unserialize(file_get_contents(php://input));if(in_array($get[action], array( est, deleteuser, enameuser, gettag, synlogin, synlogout, updatepw, updatebadwords, updatehosts, updateapps, updateclient, updatecredit, getcreditsettings, updatecreditsettings))){ $uc_note = new uc_note(); exit($uc_note->$get[action]($get, $post));}else{ exit(API_RETURN_FAILED);}//note include 通知方式} else {exit(Invalid Request);}class uc_note{var $dbconfig = \;var $db = \;var $appdir = \;var $tablepre = dede_;function _serialize($arr, $htmlon = 0){ if(!function_exists(xml_serialize)) { include_once UC_CLIENT_ROOT./lib/xml.class.php; } return xml_serialize($arr, $htmlon);}function uc_note(){ $this->appdir = DEDEROOT; $this->dbconfig = DEDEINC./common.inc.php; $this->db = $GLOBALS[dsql]; $this->tablepre = $GLOBALS[cfg_dbprefix];}function get_uids($uids){ include UC_CLIENT_ROOT./client.php;$members = explode(",", $uids); empty($members) && exit(API_RETURN_FORBIDDEN);/*$members_username = array();foreach($members as $id) { $row = uc_get_user($id,1); $members_username[] = $row[1];}$comma_temps = implode(",", $members_username);empty($comma_temps) && exit(API_RETURN_FORBIDDEN);$comma_uids = array();*///$row = $this->db->SetQuery("SELECT mid FROM `dede_member` WHERE userid IN ($comma_temps)");$this->db->SetQuery("SELECT mid FROM `dede_member` WHERE mid IN ($uids)"); $this->db->Execute();while($row = $this->db->GetArray()) { $comma_uids[] = $row[mid]; }empty($comma_uids) && exit(API_RETURN_FORBIDDEN);return implode(",", $comma_uids);}function test($get, $post){ return API_RETURN_SUCCEED;}function deleteuser($get, $post){ $uids = $this->get_uids($get[ids]); !API_DELETEUSER && exit(API_RETURN_FORBIDDEN); //note 用户删除 API 接口 $rs = $this->db->ExecuteNoneQuery2("DELETE FROM `dede_member` WHERE mid IN ($uids) AND matt10 limit 1"); if($rs > 0) { $this->db->ExecuteNoneQuery("DELETE FROM `dede_member_tj` WHERE mid IN ($uids) limit 1"); $this->db->ExecuteNoneQuery("DELETE FROM `dede_member_space` WHERE mid IN ($uids) limit 1"); $this->db->ExecuteNoneQuery("DELETE FROM `dede_member_company` WHERE mid IN ($uids) limit 1"); $this->db->ExecuteNoneQuery("DELETE FROM `dede_member_person` WHERE mid IN ($uids) limit 1");//删除用户相关数据 $this->db->ExecuteNoneQuery("DELETE FROM `dede_member_stow` WHERE mid IN ($uids) "); $this->db->ExecuteNoneQuery("DELETE FROM `dede_member_flink` WHERE mid IN ($uids) "); $this->db->ExecuteNoneQuery("DELETE FROM `dede_member_guestbook` WHERE mid IN ($uids) "); $this->db->ExecuteNoneQuery("DELETE FROM `dede_member_operation` WHERE mid IN ($uids) "); $this->db->ExecuteNoneQuery("DELETE FROM `dede_member_pms` WHERE toid IN ($uids) OR fromid IN ($uids) "); $this->db->ExecuteNoneQuery("DELETE FROM `dede_member_friends` WHERE mid IN ($uids) OR fid IN ($uids) "); $this->db->ExecuteNoneQuery("DELETE FROM `dede_member_vhistory` WHERE mid IN ($uids) OR vid IN ($uids) "); $this->db->ExecuteNoneQuery("DELETE FROM `dede_feedback` WHERE mid IN ($uids) "); $this->db->ExecuteNoneQuery("UPDATE `dede_archives` SET mid= WHERE mid IN ($uids)"); } else { exit(API_RETURN_FORBIDDEN); } return API_RETURN_SUCCEED;}function renameuser($get, $post){ $uids = $this->get_uids($get[ids]); $usernameold = $get[oldusername]; $usernamenew = $get[ ewusername]; if(!API_RENAMEUSER) { return API_RETURN_FORBIDDEN; } //note 获取标签 API 接口 $rs = $this->db->ExecuteNoneQuery2("UPDATE `dede_member` SET userid=$usernamenew WHERE userid=$usernamenew AND matt10 limit 1"); if($rs > 0) { $this->db->ExecuteNoneQuery("UPDATE `dede_archives` SET writer=$usernamenew WHERE writer=$usernamenew\"); $this->db->ExecuteNoneQuery("UPDATE `dede_member_pms` SET floginid=REPLACE(floginid, $usernameold, $usernamenew),tologinid=REPLACE(tologinid, $usernameold, $usernamenew)");$row = $this->db->GetOne("SHOW TABLE STATUS"); $db_tables = $row[Name]; unset($row); if(in_array($this->tablepre.guestbook,$db_tables)) {$this->db->ExecuteNoneQuery("UPDATE `dede_guestbook` SET uname=$usernamenew WHERE uname=$usernamenew\"); } if(in_array($this->tablepre.story_books,$db_tables)) {$this->db->ExecuteNoneQuery("UPDATE `dede_story_books` SET author=$usernamenew WHERE author=$usernamenew\"); } if(in_array($this->tablepre.groups,$db_tables)) {$this->db->ExecuteNoneQuery("UPDATE `dede_groups` SET creater=$usernamenew WHERE creater=$usernamenew\");$this->db->ExecuteNoneQuery("UPDATE `dede_group_threads` SET author=$usernamenew WHERE author=$usernamenew\");$this->db->ExecuteNoneQuery("UPDATE `dede_group_user` SET username=$usernamenew WHERE username=$usernamenew\");$this->db->ExecuteNoneQuery("UPDATE `dede_group_posts` SET author=$usernamenew WHERE author=$usernamenew\");$this->db->ExecuteNoneQuery("UPDATE `dede_group_guestbook` SET uname=$usernamenew WHERE uname=$usernamenew\");$this->db->ExecuteNoneQuery("UPDATE `dede_groups` SET ismaster=REPLACE(ismaster, $usernameold, $usernamenew)"); } return API_RETURN_SUCCEED; } else { return API_RETURN_FORBIDDEN; }}function gettag($get, $post){ $name = $get[id]; if(!API_GETTAG) { return API_RETURN_FORBIDDEN; } //note 获取标签 API 接口 $name = trim($name); if(empty($name) || !preg_match(/^([x7f-xff_-]|w|s)+$/, $name) || strlen($name) > 20) { return API_RETURN_FAILED; } $row = $this->db->GetOne("SELECT `total`,`id` FROM `dede_tagindex` WHERE `tag`=$name\"); if(!is_array($row)) { return API_RETURN_FAILED; }$tpp = $row[ otal] > 10 ? 10 : $row[ otal]; $ids = array();$this->db->SetQuery("SELECT aid FROM `dede_taglist` WHERE `tid`=$row[id] AND arcrank>-1"); $this->db->Execute(); while($row = $this->db->GetArray()) { $ids[] = $row[aid];}if(empty($ids)) { return API_RETURN_FAILED; }$aids = implode(",", $ids);include_once DEDEINC./channelunit.func.php;$archives_list = array();$this->db->SetQuery("SELECT arc.*,tp.typedir,tp.typename,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepathFROM `dede_archives` arc LEFT JOIN `dede_arctype` tp ON arc.typeid=tp.id WHERE arc.id IN($aids) ORDER BY id DESC LIMIT $tpp"); $this->db->Execute(); while($row = $this->db->GetArray()) { $row[url] = GetFileUrl($row[id],$row[ ypeid],$row[senddate],$row[ itle],$row[ismake],$row[arcrank],$row[ amerule],$row[ ypedir],$row[money],$row[filename],$row[moresite],$row[siteurl],$row[sitepath]); $row[url] = !ereg(http:,$row[url]) ? $GLOBALS[cfg_basehost].$row[url] : $row[url]; if(!empty($row[url])) {$archives_list[] = array( itle => $row[ itle],writer => $row[writer],pubdate => $row[pubdate],url => $row[url]); } } $return = array($name, $archives_list); return $this->_serialize($return, 1);}function synlogin($get, $post){ $uid = $get[uid]; $username = $get[username]; if(!API_SYNLOGIN) { return API_RETURN_FORBIDDEN; } //note 同步登录 API 接口 header(P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"); $result = $this->db->GetOne("SELECT mid,pwd FROM `dede_member` WHERE `userid` like $username AND matt10"); if(is_array($result)) { include_once DEDEINC./memberlogin.class.php; $cfg_ml = new MemberLogin(86400); $cfg_ml->PutLoginInfo($result[mid]); } else { //如果没有激活,则自动添加该用户到数据库,并设置已激活状态的cookie //会员的默认金币 $dfscores = 0; $dfmoney = 0; $dfrank = $this->db->GetOne("Select money,scores From `dede_arcrank` where rank=10 "); if(is_array($dfrank)) {$dfmoney = $dfrank[money];$dfscores = $dfrank[scores]; } $jointime = time(); $logintime = time(); $joinip = $get[ egip]; $loginip = $get[ egip]; $pwd = $get[password]; $spaceSta = ($cfg_mb_spacesta db->ExecuteNoneQuery($inQuery)) { $mid = $this->db->GetLastID(); //写入默认会员详细资料$space=person; //写入默认统计数据$membertjquery = "INSERT INTO `dede_member_tj` (`mid`,`article`,`album`,`archives`,`homecount`,`pagecount`,`feedback`,`friend`,`stow`) VALUES ($mid,,,,,,,,); ";$this->db->ExecuteNoneQuery($membertjquery); //写入默认空间配置数据$spacequery = "Insert Into `dede_member_space`(`mid` ,`pagesize` ,`matt` ,`spacename` ,`spacelogo` ,`spacestyle`, `sign` ,`spacenews`)Values($mid,10,,$username的空间,\,$space,\,\); ";$this->db->ExecuteNoneQuery($spacequery); //写入其它默认数据$this->db->ExecuteNoneQuery("INSERT INTO `dede_member_flink`(mid,title,url) VALUES($mid,织梦内容管理系统,\); "); include_once DEDEINC./membermodel.cls.php; $membermodel = new membermodel($mtype); $modid=$membermodel->modid;$modelform = $this->db->getOne("select * from dede_member_model where "); $this->db->ExecuteNoneQuery("INSERT INTO `{$membermodel->table}` (`mid`) VALUES ($mid);"); //----------------------------------------------//模拟登录//---------------------------include_once DEDEINC./memberlogin.class.php;$cfg_ml = new MemberLogin(7*3600);$cfg_ml->PutLoginInfo($mid); }}}function synlogout($get, $post){ if(!API_SYNLOGOUT) { return API_RETURN_FORBIDDEN; } //note 同步登出 API 接口 header(P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"); include_once DEDEINC./memberlogin.class.php; $cfg_ml = new MemberLogin(); $cfg_ml->ExitCookie();}function updatepw($get, $post){ if(!API_UPDATEPW) { return API_RETURN_FORBIDDEN; } $username = $get[username]; $password = $get[password];//note 修改密码 API 接口 $newpw = md5($password); $this->db->ExecuteNoneQuery("UPDATE `dede_member` SET `pwd`=$newpw WHERE `userid`=$username\"); return API_RETURN_SUCCEED;}function updatebadwords($get, $post){ if(!API_UPDATEBADWORDS) { return API_RETURN_FORBIDDEN; } $row = $this->db->GetOne("SELECT `value` FROM `dede_sysconfig` WHERE `varname`=cfg_replacestr\");$badwords = isset($row[value]) ? explode(",", $row[value]) : array();if(is_array($post)) { foreach($post as $k => $v) {if(in_array($v[find],$badwords)) continue;$badwords[] = $v[find]; } } $badwords_comma = !empty($badwords) ? implode(",", $badwords) : \;$this->db->ExecuteNoneQuery("UPDATE `dede_sysconfig` SET `value`=$badwords_comma WHERE `varname`=cfg_replacestr\");$cachefile = DEDEDATA./config.cache.inc.php;if(!is_writeable($cachefile)) { return API_RETURN_FORBIDDEN; } $fp = fopen($cachefile, w); $this->db->SetQuery("SELECT `varname`,`type`,`value`,`groupid` From `dede_sysconfig` order by aid asc "); $this->db->Execute(); $s = db->GetArray()) { $s .= $.$row[varname]. = .($row[ ype]== umber ? $row[value] : "\".str_replace("\",\,$row[value])."\").";rn"; } $s .= ?>; fwrite($fp, $s); fclose($fp); return API_RETURN_SUCCEED;}function updatehosts($get, $post){ if(!API_UPDATEHOSTS) { return API_RETURN_FORBIDDEN; } //note 理新HOST缓存 API 接口 $cachefile = UC_CLIENT_ROOT./data/cache/hosts.php; $fp = fopen($cachefile, w); $s = "<?phprn"; $s .= $_CACHE[hosts] = .var_export($post, TRUE).";rn"; fwrite($fp, $s); fclose($fp); return API_RETURN_SUCCEED;}function updateapps($get, $post){ if(!API_UPDATEAPPS) { return API_RETURN_FORBIDDEN; } $UC_API = $post[UC_API]; //note 写 app 缓存文件 $cachefile = UC_CLIENT_ROOT./data/cache/apps.php; $fp = fopen($cachefile, w); $s = "<?phprn"; $s .= $_CACHE[apps] = .var_export($post, TRUE).";rn"; fwrite($fp, $s); fclose($fp); return API_RETURN_SUCCEED;}function updateclient($get, $post){ if(!API_UPDATECLIENT) { return API_RETURN_FORBIDDEN; } $cachefile = UC_CLIENT_ROOT./data/cache/settings.php; $fp = fopen($cachefile, w); $s = 1 ? money : scores; $amount = $get[amount]; $uid = $get[uid]; include UC_CLIENT_ROOT./client.php; $data = uc_get_user($uid,1); $username = $data[1];$result = $this->db->GetOne("SELECT mid FROM `dede_member` WHERE userid=$username\"); if(is_array($result)) { $this->db->ExecuteNoneQuery("UPDATE `dede_member` SET `$fileds`=`$fileds`+$amount WHERE mid=$result[mid]\"); }return API_RETURN_SUCCEED;}function getcredit($get, $post){ if(!API_GETCREDIT) { return API_RETURN_FORBIDDEN; }include UC_CLIENT_ROOT./client.php; $data = uc_get_user($uid,1); $username = $data[1]; $credit = intval($get[credit]); $fileds = $credit > 1 ? money : scores; $result = $this->db->GetOne("SELECT `$fileds` AS credit FROM `dede_member` WHERE userid=$username\");echo is_array($result) ? $result[credit] : 0; }function getcreditsettings($get, $post){ if(!API_GETCREDITSETTINGS) { return API_RETURN_FORBIDDEN; }//这里支持DedeCMS积分,金币设置 $credits[1] = array(strip_tags(积分), 分); $credits[2] = array(strip_tags(金币), 枚); return $this->_serialize($credits);}function updatecreditsettings($get, $post){ if(!API_UPDATECREDITSETTINGS) { return API_RETURN_FORBIDDEN; } $credit = $get[credit]; $outextcredits = array(); if($credit && is_array($credit)) { foreach($credit as $appid => $credititems) {foreach($credititems as $value) {if($value[appiddesc]!=UC_APPID) continue;$outextcredits[$appid][] = array( appiddesc => $value[appiddesc], creditdesc => $value[creditdesc], creditsrc => $value[creditsrc], itle => $value[ itle], unit => $value[unit], atiosrc => $value[ atiosrc], atiodesc => $value[ atiodesc], atio => $value[ atio]);} } } $_CACHE = "; $fp = @fopen(DEDEDATA./credits.inc.php, w); @fwrite($fp, $_CACHE); @fclose($fp); return API_RETURN_SUCCEED;}}function _authcode($string, $operation = DECODE, $key = \, $expiry = 0) {$ckey_length = 4;$key = md5($key ? $key : UC_KEY);$keya = md5(substr($key, 0, 16));$keyb = md5(substr($key, 16, 16));$keyc = $ckey_length ? ($operation == DECODE ? substr($string, 0, $ckey_length): substr(md5(microtime()), -$ckey_length)) : \;$cryptkey = $keya.md5($keya.$keyc);$key_length = strlen($cryptkey);$string = $operation == DECODE ? base64_decode(substr($string, $ckey_length)) : sprintf(\%010d, $expiry ? $expiry + time() : 0).substr(md5($string.$keyb), 0, 16).$string;$string_length = strlen($string);$result = \;$box = range(0, 255);$rndkey = array();for($i = 0; $i <= 255; $i++) { $rndkey[$i] = ord($cryptkey[$i % $key_length]);}for($j = $i = 0; $i < 256; $i++) { $j = ($j + $box[$i] + $rndkey[$i]) % 256; $tmp = $box[$i]; $box[$i] = $box[$j]; $box[$j] = $tmp;}for($a = $j = $i = 0; $i 0) && substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) { return substr($result, 26); } else {return \; }} else { return $keyc.str_replace(=, \, base64_encode($result));}}function _stripslashes($string) {if(is_array($string)) { foreach($string as $key => $val) { $string[$key] = _stripslashes($val); }} else { $string = stripslashes($string);}return $string;}?>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。