之前写过《【Discuz】自动同步登陆的完美解决办法》,主要是解决Discuz的同步登陆问题,用户系统是采用UCenter进行管理的。
最近的一次应用是基本完成了业务系统,需要整合Discuz进去作为交流版块使用。于是,涉及到用户系统的整合和版面的增删操作。UCenter提供了API进行用户的增删管理,自然可以用,但为了保证用户id的统一性,暴力地绕过了UCenter API,而采用直接操作数据库的方式来完成用户增删,当然版面的增删也是操作数据库来完成。
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("INSERT INTO cdb_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', 'Manual Acting', '$timestamp', '$timestamp', '$timestamp', '0', '0', '$bbsemail', '0000-00-00', '0', '0', '0', '0', '0', 'H:i', '1', '1', '0', '8')");
execute_sql("INSERT INTO cdb_memberfields (uid) VALUES ('$uid')");
execute_sql("INSERT INTO `cdb_uc_members` SET uid='$uid', username='$username', password='$password', email='$bbsemail', regip='Manual Acting', regdate='$timestamp', salt='$salt'");
execute_sql("INSERT INTO `cdb_uc_memberfields` SET uid='$uid'");
阅读全文…
近期评论