之前看过《Discuz自动同步登录的完美解决方案》,主要是处理Discuz的相同登录问题。用户系统软件使用UCenter进行管理。
近期的一次运用是基础完成了业务管理系统,必须融合Discuz进来做为沟通交流版面应用。因此,牵涉到用户系统软件的融合和版面的删改实际 *** 作。UCenter出示了API开展用户的删改管理方法,当然可以用,但为了更好地确保用户id的统一性,暴力行为地绕开了UCenterAPI,而选用立即实际 *** 作数据库查询的方法来进行用户删改,自然版面的删改也是实际 *** 作数据库查询来进行。1、提升用户到Discuz和UCenter的代码
复制代码代码以下:
$uid=100;//用户编号
$username="maple";//用户名
$password="mypassword";//用户登陆密码
$salt=md5((string)rand());//任意标识符用以数据加密
$password=md5(md5($pwd).$salt);//数据加密后的登陆密码
$groupid=10;//用户组编号
$timestamp=time();//时间格式
$bbsemail="i@witmax.cn";//邮箱注册,不可以反复
execute_sql("INSERTINTOcdb_members(uid,username,password,secques,gender,adminid,groupid,regip,regdate,lastvisit,lastactivity,posts,credits,email,bday,sigstatus,tpp,ppp,styleid,dateformat,timeformat,showemail,newsletter,invisible,timeoffset)VALUES('$uid','$username','$salt','$password','0','0','$groupid','ManualActing','$timestamp','$timestamp','$timestamp','0','0','$bbsemail','0000-00-00','0','0','0','0','0','H:i','1','1','0','8')");
execute_sql("INSERTINTOcdb_memberfields(uid)VALUES('$uid')");
execute_sql("INSERTINTO`cdb_uc_members`SETuid='$uid',username='$username',password='$password',email='$bbsemail',regip='ManualActing',regdate='$timestamp',salt='$salt'");
2、在Discuz和UCenter中删掉用户的代码
复制代码代码以下:
$uid=100;//要删掉的用户编号
execute_sql("DELETEFROM`cdb_members`WHEREuid=$uid");
execute_sql("DELETEFROM`cdb_memberfields`WHEREuid=$uid");
execute_sql("DELETEFROM`cdb_uc_members`WHEREuid=$uid");
execute_sql("DELETEFROM`cdb_uc_memberfields`WHEREuid=$uid");
3、在Discuz中提升版面并设定版主的代码
复制代码代码以下:
$uid=100;//版主用户编号
$fid=100;//版面编号,必须确保不与目前版面编号反复
$forum_name="TestForum";//版面名字
execute_sql("INSERTINTO`cdb_forums`(`fid`,`fup`,`type`,`name`,`status`,`displayorder`,`styleid`,`threads`,`posts`,`todayposts`,`lastpost`,`allowsmilies`,`allowhtml`,`allowbbcode`,`allowimgcode`,`allowmediacode`,`allowanonymous`,`allowshare`,`allowpostspecial`,`allowspecialonly`,`alloweditrules`,`allowfeed`,`recyclebin`,`modnewposts`,`jammer`,`disablewatermark`,`inheritedmod`,`autoclose`,`forumcolumns`,`threadcaches`,`alloweditpost`,`simple`,`modworks`,`allowtag`,`allowglobalstick`)VALUES
('$fid',3,'forum','$forum_name',1,0,0,0,0,0,'',1,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1);");
execute_sql("INSERTINTO`cdb_forumfields`(`fid`,`description`,`password`,`icon`,`postcredits`,`replycredits`,`getattachcredits`,`postattachcredits`,`digestcredits`,`redirect`,`attachextensions`,`formulaperm`,`moderators`,`rules`,`threadtypes`,`threadsorts`,`viewperm`,`postperm`,`replyperm`,`getattachperm`,`postattachperm`,`keywords`,`supe_pushsetting`,`modrecommend`,`tradetypes`,`typemodels`,`threadplugin`,`extra`)VALUES('$fid','','','','','','','','','','','a:5:{i:0;s:0:\"\";i:1;s:0:\"\";s:5:\"medal\";N;s:7:\"message\";s:0:\"\";s:5:\"users\";s:0:\"\";}','','','','','910111213141520211617181912345678','2021123','2021123','2021123','2021123','','','a:8:{s:4:\"open\";s:1:\"0\";s:3:\"num\";i:10;s:8:\"imagenum\";i:5;s:10:\"imagewidth\";i:200;s:11:\"imageheight\";i:150;s:9:\"maxlength\";i:0;s:9:\"cachelife\";i:900;s:8:\"dateline\";i:0;}','','','N;','a:1:{s:9:\"namecolor\";s:0:\"\";}');");
execute_sql("UPDATEcdb_membersSETadminid='3'WHEREuid='$uid'");
execute_sql("INSERTINTOcdb_moderators(uid,fid,inherited)VALUES('$uid','$fid','1')");
4、在Discuz中删掉版面并撤消版主管理员权限的代码
复制代码代码以下:
$uid=100;//要删掉版面的版主用户编号
$fid=100;//要删掉的版面编号
execute_sql("DELETEFROMcdb_forumsWHEREfid='$fid'");
execute_sql("DELETEFROMcdb_forumfieldsWHEREfid='$fid'");
execute_sql("DELETEFROMcdb_moderatorsWHEREfid='$fid'");
execute_sql("UPDATEcdb_membersSETadminid='0'WHEREuid='$uid'");
立即实际 *** 作数据库查询的益处是领域模型简易,实际 *** 作便捷,与目前系统软件融合非常容易;缺陷便是很无赖很暴力行为,必须确保实际 *** 作数据信息的实效性,如提升的版面的fid要确保唯一。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)