2011/02/19, 6:17 上午
公司的博客和论坛 oblog和dvbbs需要导入到discuz ! x1.5中
采用discuz官方提供的转换工具 现将blog和论坛分别导入到uchome和discuz 7.2中
在由uchome discuz 7.2导入到discuz x1.5中
数据完美导入没有错误,但是在最后的discuz x.15出现了登陆密码错误
只有在discuz7.2中登陆的用户才可以在discuz x1.5中登陆,到处找插件或者程序都没解决,于是自己写吧。
在.\source\module\member\member_login.php行
$result = userlogin($_G['gp_username'], $_G['gp_password'], $_G['gp_questionid'], $_G['gp_answer'], $_G['setting']['autoidselect'] ? 'auto' : $_G['gp_loginfield']);
的上面添加一下代码
===================================================================================================
//密码更新开始
$oldpassword=substr(md5($_G['gp_password']),8,16);
$selectuser="SELECT * FROM ".DB::table('common_member')." WHERE username='$_POST[username]'";
$member = DB::fetch_first($selectuser);
if($member['salt']!=""){
$salts=$member['salt'];
$password=$member['password'];
if($password==md5($oldpassword.$salts)){
uc_user_edit($_POST[username],'',$_G['gp_password'],null,1);
}
}
//密码更新结束
===================================================================================================
忘了补充了,你需要将ucenter中的关于member中的salt值复制到discuz中新建的salt ,并且要求保持用户一直。
OK!!!!2个小时从看discuz的源码,写出以上简单的10行代码,唉真不值钱。share!
2010/08/25, 1:21 上午
最近帮朋友做一个大型的门户网站
涉及到用户的统一管理,需要用到论坛,文章,还有一个其他的应用,在经过反复的技术论证以后选择了康盛的产品
ucenter为核心扩展应用程序
ucenter的APP开发的开发接口手册:http://www.discuz.net/thread-879237-1-1.html
客户端:client/UCenter 应用程序必备的目录,如果您的应用程序基于 UCenter,那么您的应用程序目录中必须包含此目录,目录名可自定义(所有 Comsenz 的产品对应的目录名为“uc_client/”)。 control/ 应用程序 control 部分目录
data/ 缓存数据目录,此目录及其子目录需要有可写权限
lib/ 应用程序函数库目录
module/ 应用程序 module 部分目录
client.php 接口函数库
UCenter 的接口函数
UCenter 分为 MySQL 和远程两种接口连接方式,MySQL 方式是直接连接数据库因此速度较快,但当 UCenter 的服务端和客户端不在同一主机中且没有远程 MySQL 帐号的情况下,则只能使用远程连接方式。使用 UCenter 接口函数前请根据应用程序的需求定义以下相关常量: UC_CONNECT 连接 UCenter 的方式
mysql:MySQL 方式
空:远程方式
UC_DBHOST UCenter 数据库主机
UC_DBUSER UCenter 数据库用户名
UC_DBPW UCenter 数据库密码
UC_DBNAME UCenter 数据库名称
UC_DBCHARSET UCenter 数据库字符集
UC_DBTABLEPRE UCenter 数据库表前缀
UC_DBCONNECT UCenter 数据库持久连接 0=关闭, 1=打开
UC_KEY 与 UCenter 的通信密钥, 要与 UCenter 保持一致
UC_API UCenter 服务端的 URL 地址
UC_IP UCenter 的 IP, 当 UC_CONNECT 为非 mysql 方式时, 并且当前应用服务器解析域名有问题时, 请设置此值
UC_CHARSET UCenter 的字符集
UC_APPID 当前应用的 ID
使用 UCenter 接口函数库必须包含 uc_client/client.php 接口函数库文件,例如下面检查新短消息的代码:
include ‘./uc_client/client.php’;
$newpm = uc_pm_checknew($Example_uid);
详细的接口函数说明,请看“接口函数”章节。
2009/10/12, 1:01 上午
1、UCenter建议使用GBK版本,原因是PHP4/5对UNICODE(UTF-8)的支持不足,分解出来的数字与其他支持UNICODE的语言不 同,以至于authcode的时候将出现偏差,非拉丁文本将不匹配,即导致中文用户名无法正常同步。但其他语言的API可以使用UTF-8,再在 authcode之前将文本转换成GBK即可。
2、Java下有一个UCenter的API,可以较方便的在Java环境下调用UCenter接口,地址是 http://code.google.com/p/discuz-ucenter-api-for-java/,创始人是ping.china。 Snow_Young也有重新开发一个API的想法,以更符合Java的开发习惯,同时希望可以找到途径以解决UTF-8的问题。
3、登入、登出等操作的同步,使用post方式调用UCenter的API接口,如果成功,将返回一段代码,其代码输出到页面将达到跨域请求各应用,应用获得请求后自行进行cookie或session的操作。
4、注册等非同步操作,将不会自动进行同步操作,其他应用在调用数据前应先检查UCenter时候存在更新信息,并将更新信息同步到自身数据库中。例如注 册操作,如果用户在例如Java端注册,那么Java端将告诉UCenter注册信息,UCenter将信息存入UCenter数据库中,此时将不进行同 步。之后若用户在Discuz!论坛登陆,Discuz!首先将查看自身数据库,若没有,再去请求UCenter获得更新信息,并询问用户是否激活,待用 户确认后,才将用户的资料写入Discuz!论坛数据库中。
5、关于UCenter的接口,请下载或直接在线访问Discuz!论坛UCenter开发区置顶帖的API文档。
6、UCenter API文档中函数的调用方法:
integer uc_user_register(string username , string password , string email [, integer questionid , string answer])
以此为例,将函数名分解为user和register,我们可以调用UCenter的index.php,post内容为:
m : user
a : register
release : 1.5
inajax : 1(此参数若不存在,将出现一个跳转div,仅限PHP,所以在此处随意赋上一个值即可)
appid : 3(此为其他语言应用在UCenter中的id)
input : 将所有附加参数的键值对Map经过authcode之后得到的加密字符串
调用完后,此函数将返回注册信息(是否成功、错误原因)的数字。然后我们这里switch一下后采取各种策略。
7、不知是否是bug,或者是特意设计成这样的,Discuz!新注册用户会自动登陆,但却不会进行同步,即不通知其他应用,我建议还是通知一下比较好,呵呵,至少我的应用是这么做的,用户在我这里注册,然后转到Discuz!后,已经进入待激活状态,非常方便。
maxInteger、暂时总结这么多,日后发现还会继续补充,希望大家可以共同完善。
2009/10/06, 10:10 上午
NPMserv 是一款图形界面的快速搭建nginx 0.7.62、PHP5.3.0、MySQL 5.1.35、phpMyAdmin 3.2.1,网站服务器平台的绿色软件。无需安装,具有灵活的移动性(如D:/NPMserv),打开NPMserv.exe启动服务即可。*nginx更新到0.7.62
*增加apahce2.2.13,可以在nginx和apache之间无缝切换
*修改nginx开机启动的方式(改为加入程序->开始)
*修正mysql载入服务无法启动
*通过vista(32),server2008sp1(32)测试
1、注意事项:路径不要有中文或特殊字符
2、MySQL默认用户名:root,密码123456
3、MySQL数据库文件存放目录:MySQL5.1data
4、网站根目录www
5、访问本机请用http://127.0.0.1/
6、NPMserv集成了以下软件:
apahce2.2.13
Nginx 0.7.62
PHP 5.3.0
MySQL 5.1.35
phpMyAdmin 3.2.1
Sendmail
如果不能运行php,请安装Microsoft 2008 C++ Runtime (x86)
下载地址http://www.microsoft.com/downloads/details.aspx?FamilyID=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF
由于zend不支持php5.3.0所以暂时就不集成zend,如果需要zend的,可以用0.2.2旧版或再等一段时间
感谢群里的同学进行测试和一些建议,感谢scomota的支持
下载:点击下载0.4.0