本篇文章给大家谈谈discuz会员接口,以及discuz api接口对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、让Discuz3.2用户数据同步第三方api接口怎么做
- 2、discuz怎么对外提供接口
- 3、php 如何调用discuz x3.1的用户注册接口
- 4、THOMAS网站建设系统
- 5、网博士智能建站系统与DISCUZ论坛会员接口如何设置?
- 6、帝国cms 和discuz 的论坛 home 怎么整合 ?
1、让Discuz3.2用户数据同步第三方api接口怎么做
第一步:在网站根文件夹建立“1.php”文件,写入以下数据:
?php
define('CHARSET', 'GBK'); //服务器端数据编码
require './source/class/class_xml.php'; //XML格式的文档和array的相互转换的类
error_reporting(7);
$charset = $_GET['charset'] ? $_GET['charset'] : $_POST['charset']; //客户端数据编码
//数据转码
if(strtoupper($charset) != CHARSET) {
foreach($POST as $key = $value) {
$POST[$key] = iconv($charset, CHARSET, $value);
}
foreach($GET as $key = $value) {
$GET[$key] = iconv($charset, CHARSET, $value);
}
}
$data = array('html'='', 'data'=''); //初始化要返回数据
$sign = $_GET['sign'] ? $_GET['sign'] : $_POST['sign']; //获取客户端请求数据的签名
$clientid = $_GET['clientid'] ? $_GET['clientid'] : $_POST['clientid']; //客户端ID
$client = get_client_by_clientid($clientid); //得到客户端的相关信息
if(empty($client)) { //客户端不存在
exit('CLIENT_NOT_EXISTS'); //直接返回失败
}
$datasign = ''; //数据签名
if(!empty($_POST)) {
unset($_POST['sign']); //删除签名参数,此参数不参加签名计算
$datasign = get_sign($_POST, $client['key']); //计算数据的签名
} else {
unset($_GET['sign']); //删除签名参数,此参数不参加签名计算
$datasign = get_sign($_GET, $client['key']); //计算数据的签名
}
if($datasign != $sign) { //签名不正确
exit('SIGN_ERROR'); //输入签名错误
}
if($_POST['op'] == 'getdata') { //判断是否为请求数据列表
$datalist = $data = array();//数据列表
$wherearr = array(); //SQL 条件数组
//获取客户端POST参数
$start = intval($_POST['start']); //起始数据行数
$limit = intval($_POST['items']); //要显示多少条数
$bannedids = addslashes($_POST['bannedids']); //客户端屏蔽的IDS
$param1 = addslashes($_POST['param1']); //数据调用参数1,假设此值要求为string型
$param2 = intval($_POST['param2']); //数据调用参数2,假设此值要求为int型
//处理参数1
if(!empty($param1)){
$wherearr[] = "fieldsparam1='$param1'";
}
//处理参数2
if(!empty($param2)) {
$wherearr[] = "fieldsparam2='$param2'";
}
//处理客户端屏蔽的IDS
if(!empty($bannedids)) {
$banids = explode(',', $bannedids);
$wherearr[] = "csid NOT IN (".implode("','", $banids)."')";
}
$where = !empty($wherearr) ? 'WHERE '.implode(' AND ', $wherearr) : ''; //构造条件
/*数据库相关处理
$query = DB::query('SELECT * FROM '.DB::table('tablename')." $where LIMIT $start, $limit"); //SQL查询
while($value = DB::fetch($query)) {
//此处为数据处理逻辑代码
$data[] = $value;
}
*/
//以下为临时测试数据,正式环境请根据自己的业务做相关调整
$url = '';
$data = range($start, $start + $limit);//构造临时的假数据
foreach($data as $value) {
//需要注意: 除 id, title, url, pic, picflag, summary 几个字段外,其它字段需要放到 fields 数组里。
$datalist[] = array(
'id' = $value,
'title' = 'xml_block_title'.$value, //标题
'url' = $url.'xml_server.php?csid='.$value, //链接地址
'pic' = $url.'/data/attachment/photo.gif', //图片地址
'picflag' = '0', //0为url 1为本地 2 为ftp远程;如果图片是DX系统中的图片可以情况设置为1或2,其它情况为0
'summary' = '', //简介
'fields' = array( //配置规范中fields中指定的字段
'author' = 'xml_user'.$value,
'authorid' = $value,
'field1' = 'field1value'.$value,
'field2' = 'field2value'.$value
)
);
}
$data['data'] = $datalist;
//如果要返回HTML代码,可直接使用以下代码
//$data['html'] = 'HTML CODE';
$xml = array2xml($data); //转换为XML文档
} else if($_GET['op'] == 'getconfig') {
$xml = file_get_contents('block_xml_sample.xml');//block_xml_sample.xml文件中的内容为 配置规范XML文档示例 的内容
} else {
$xml = 'NO_OPERATION';
}
ob_end_clean();
@header("Expires: -1");
@header("Cache-Control: no-store, private, post-check=0, pre-check=0, max-age=0", FALSE);
@header("Pragma: no-cache");
header("Content-type: text/xml");
echo $xml;
exit();
/**
* 获得客户端信息
* @param $clientid
* @return array 客户端信息数组
*/
function get_client_by_clientid($clientid){
$client = array();
$clientid = intval($clientid);
if($clientid) {
/*数据库相关处理
$client = DB::fetch_first('SELECT * FROM '.DB::table('clienttable')." clientid='$clientid'"); //SQL查询
*/
//以下为临时测试数据,正式环境请根据自己的业务做相关调整
//模拟数据库
$CLIENTSDB = array(
'100000' = array(
'clientid' = '100000',
'key' = '*654%#(asd94',
),
'200000' = array(
'clientid' = '200000',
'key' = '1#9!(@@34#94',
),
'300000' = array(
'clientid' = '300000',
'key' = '7$@^8^$7as89',
),
'400000' = array(
'clientid' = '400000',
'key' = '23@#86^%432',
),
);
$client = isset($CLIENTSDB[$clientid]) ? $CLIENTSDB[$clientid] : array();
}
return $client;
}
/**
* 生成签名
* @param array $para 参数数组
* @param string $key 加密密钥
* @return string 签名
*/
function get_sign($para, $key = ''){
ksort($para);
$signarr = array();
foreach($para as $k = $v) {
$signarr[] = $k.'='.$v;
}
$sign = implode('', $signarr);
$sign = md5($sign.$key);
return $sign;
}
?
注意:不是网站记录的URL来调试的时候,会出现“Access Denied”,那是网站防止文件外部打开的标志,进入“./source/class/class_xml.php”暂时关闭开头的二行:
if(!defined('IN_DISCUZ') || !defined('IN_ADMINCP')) {
exit('Access Denied');}
特别注意:99行时候的“$xml = file_get_contents('block_xml_sample.xml');//block_xml_sample.xml文件中的内容为 配置规范XML文档示例 的内容”;就是这个文件造成很多人安装第三方插件不成功的。这个文件改名称的同时记得要修改1.php的99行;
特别注意文件block_xml_sample.xml中的“item id="name"![CDATA[C/S 数据类]]/item”中间的“C/S 数据类”就是模块名称;有的时候如“item id="version"![CDATA[X1.5]]/item”版本号不对也会报错;修改为网站的版本即可。
第二步:建立“block_xml_sample.xml”文件,写入如下数据:
?xml version="1.0" encoding="ISO-8859-1"?
root
item id="Title"![CDATA[Discuz! Block]]/item
item id="Data"
item id="version"![CDATA[X1.5]]/item
item id="name"![CDATA[C/S 数据类]]/item
item id="fields"
item id="url"
item id="name"![CDATA[链接地址]]/item
item id="formtype"![CDATA[text]]/item
item id="datatype"![CDATA[string]]/item
/item
item id="title"
item id="name"![CDATA[标题]]/item
item id="formtype"![CDATA[title]]/item
item id="datatype"![CDATA[title]]/item
/item
item id="pic"
item id="name"![CDATA[图片]]/item
item id="formtype"![CDATA[pic]]/item
item id="datatype"![CDATA[pic]]/item
/item
item id="summary"
item id="name"![CDATA[简介]]/item
item id="formtype"![CDATA[summary]]/item
item id="datatype"![CDATA[summary]]/item
/item
item id="author"
item id="name"![CDATA[作者]]/item
item id="formtype"![CDATA[text]]/item
item id="datatype"![CDATA[text]]/item
/item
item id="authorid"
item id="name"![CDATA[作者ID]]/item
item id="formtype"![CDATA[text]]/item
item id="datatype"![CDATA[int]]/item
/item
item id="field1"
item id="name"![CDATA[字段1]]/item
item id="formtype"![CDATA[text]]/item
item id="datatype"![CDATA[string]]/item
/item
item id="field2"
item id="name"![CDATA[字段2]]/item
item id="formtype"![CDATA[text]]/item
item id="datatype"![CDATA[string]]/item
/item
/item
item id="getsetting"
item id="param1"
item id="title"![CDATA[数据调用参数1]]/item
item id="type"![CDATA[text]]/item
item id="default"![CDATA[]]/item
/item
item id="param2"
item id="title"![CDATA[数据调用参数2]]/item
item id="type"![CDATA[mcheckbox]]/item
item id="value"
item id="0"
item id="0"![CDATA[1]]/item
item id="1"![CDATA[选项1]]/item
/item
item id="1"
item id="0"![CDATA[2]]/item
item id="1"![CDATA[选项2]]/item
/item
/item
item id="default"![CDATA[1]]/item
/item
item id="titlelength"
item id="title"![CDATA[标题长度]]/item
item id="type"![CDATA[text]]/item
item id="default"![CDATA[40]]/item
/item
item id="summarylength"
item id="title"![CDATA[简介长度]]/item
item id="type"![CDATA[text]]/item
item id="default"![CDATA[80]]/item
/item
item id="start"
item id="title"![CDATA[起始数据行数]]/item
item id="type"![CDATA[text]]/item
item id="default"![CDATA[0]]/item
/item
/item
item id="style"
item id="0"
item id="name"![CDATA[模板名称]]/item
item id="template"![CDATA[div class="module cl xl xl1"ul[loop]liema href="home.php?uid={authorid}"FONT COLOR="RED"{author}/FONT/a/ema href="{url}"{title}/a/li[/loop]/ul/div]]/item
/item
item id="1"
item id="name"![CDATA[模板名称红色]]/item
item id="template"![CDATA[div class="module cl xl xl1"ul[loop]liemfont color="red"a href="home.php?uid={authorid}"{author}/a/font/ema href="{url}"{title}/a/li[/loop]/ul/div]]/item
/item
/item
/item
/root
第三步:建立第三方模块
管理平台 》 门户 》 第三方模块 》 添加:
第三方地址:url/1.php
客户短ID:200000 见1.php的133行
签名加密方式:MD5签名
通信密匙:1#9!(@@34#94
点击提交,完成模块建立工作。
第四步:前台页面调用:
DIY网页 》 DIY 》 高级模式 》 模块 》 第三方类
是不是看到刚刚建立的模块了。
选择调用即可。
第五步:扩展读取任一(包括外部)网页HTML代码数据,新建一个网页“ee.htm”,数据规范如下:
?xml version="1.0" encoding="ISO-8859-1"?
root
item id="html"![CDATA[]]/item
item id="data"
item id="0"
item id="id"![CDATA[14]]/item
item id="title"![CDATA[xml_block_title14]]/item
item id="url"![CDATA[xml_server.php]]/item
item id="pic"![CDATA[nophoto.gif]]/item
item id="picflag"![CDATA[1]]/item
item id="summary"![CDATA[]]/item
item id="fields"
item id="author"![CDATA[xml_user14]]/item
item id="authorid"![CDATA[14]]/item
item id="field1"![CDATA[field1value14]]/item
item id="field2"![CDATA[field2value14]]/item
/item
/item
item id="1"
item id="id"![CDATA[15]]/item
item id="title"![CDATA[xml_block_title15]]/item
item id="url"![CDATA[xml_server.php]]/item
item id="pic"![CDATA[nophoto.gif]]/item
item id="picflag"![CDATA[1]]/item
item id="summary"![CDATA[]]/item
item id="fields"
item id="author"![CDATA[xml_user15]]/item
item id="authorid"![CDATA[15]]/item
item id="field1"![CDATA[field1value15]]/item
item id="field2"![CDATA[field2value15]]/item
/item
/item
/item
/root
第六步:读取外部网页(ee.htm)时1.PHP的代码:
适合格式固化的网页使用,安全则自己去加上。
?php
define('CHARSET', 'GBK'); //服务器端数据编码
if($_POST['op'] == 'getdata') { //判断是否为请求数据列表
$xml = file_get_contents('ee.htm');//读取网页数据 如下传递参数另..
} else if($_GET['op'] == 'getconfig') {
$xml = file_get_contents('block_xml_sample.xml'); //安装时候需要调用的网页;为配置规范XML文档示例
} else {
$xml = 'NO_OPERATION';
}
ob_end_clean();
@header("Expires: -1");
@header("Cache-Control: no-store, private, post-check=0, pre-check=0, max-age=0", FALSE);
@header("Pragma: no-cache");
header("Content-type: text/xml");
echo $xml;
exit();
?
以上的步骤就解决了DZ可以与任一网站数据共享的问题
2、discuz怎么对外提供接口
插件或独立的api都可以,你可以看看api\trade里的文件,最好的例子,这些是支付相关的回调接口
3、php 如何调用discuz x3.1的用户注册接口
phpsso与ucenter通信成功后,XXX_ucenter_member表中的用户已经同步成功但是在 XXX_common_member中并没有此用户,所以只要在xxx_common_member中插入此用户就可以了,所以修改discuz/api /uc.php下的synlogin函数就可以了,修改为
PHP Code复制内容到剪贴板
function synlogin($get, $post) {
global $_G;
if(!API_SYNLOGIN) {
return API_RETURN_FORBIDDEN;
}
header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');
$cookietime = 31536000;
$uid = intval($get['uid']);
$query = DB::query("SELECT uid, username, password FROM ".DB::table('common_member')." WHERE uid='$uid'");
if ($member = DB::fetch($query))
{
dsetcookie('auth', authcode("$member[password]\t$member[uid]", 'ENCODE'), $cookietime);
}else
{
$username = $get['username'];
$query = DB::query("SELECT uid, username, password, email FROM ".DB::table('ucenter_members')." WHERE username='$username'");
$member = DB::fetch($query);
$password = $member['password'];
$email = $member['email'];
$ip = $_SERVER['REMOTE_ADDR'];
$time = time();
$userdata = array(
'uid'=$uid,
'username'=$username,
'password'=$password,
'email'=$email,
'adminid'=0,
'groupid'=10,
'regdate'=$time,
'credits'=0,
'timeoffset'=9999
);
DB::insert('common_member', $userdata);
$status_data = array(
'uid' = $uid,
'regip' = $ip,
'lastip' = $ip,
'lastvisit' = $time,
'lastactivity' = $time,
'lastpost' = 0,
'lastsendmail' = 0
);
DB::insert('common_member_status', $status_data);
DB::insert('common_member_profile', array('uid' = $uid));
DB::insert('common_member_field_forum', array('uid' = $uid));
DB::insert('common_member_field_home', array('uid' = $uid));
DB::insert('common_member_count', array('uid' = $uid));
DB::query('UPDATE '.DB::table('common_setting')." SET svalue='$username' WHERE skey='lastmember'");
$query = DB::query("SELECT uid, username, password FROM ".DB::table('common_member')." WHERE uid='$uid'");
if ($member = DB::fetch($query))
{
dsetcookie('auth', authcode("$member[password]\t$member[uid]", 'ENCODE'), $cookietime);
}
}
}
这样在phpcms中注册后去discuz中就可以不用激活就自动登录了
4、THOMAS网站建设系统
HTML多功能企业建站系统基于PHP+MYSQL开发,集易用性和强大功能为一体,具有丰富多彩的网站模版,灵活的栏目管理和文章、图文、下载、广告等管理功能,支持阅读权限控制和会员权限管理,支持HTML静态网页生成和多语言,可用于创建各种企业网站。
一、主要功能模块
会员类型管理 - 可创建多种会员类型,设置不同的注册参数和权限
会员管理系统 - 会员注册、登录、重设密码、会员资料修改
权限控制系统 - 针对会员类型或单个会员设置阅读、发布权限
栏目管理系统 - 自由创建栏目频道,设置栏目名称和显示参数
新闻文章系统 - 任意创建多个文章频道,灵活设置频道首页
图文发布系统 - 任意创建多个图文频道,灵活设置频道首页
下载管理系统 - 任意创建多个下载频道,灵活设置频道首页
互动交流社区 - 内置小型互动BBS,也可使用DISCUZ!论坛会员接口
网站广告系统 - 具有页内广告、浮动广告、弹出窗口、挂角广告等多种形式
访问统计系统 - 网页访问统计分析
投票调查系统 - 设置投票组,任意插入模版
友情链接系统 - 支持文本和图片链接
模版插件设置 - 通过后台设置模版插件的显示参数
管理权限设置 - 可设多个管理员,自由分配各种管理权限
二、系统特点和优越性
[]模版精美
具有百款适合企业网站的精美模版,并在不断增加中
[]多语言支持
独立语言包,支持GBK,UTF8编码方式,可用于创建各种语言的网站
[]静态HTML生成
可设置生成静态HTML网页,自定HTML缓存更新时间,提升网站访问速度
[]可视化模版引擎
采用MediPro可视化模版引擎,模版修改直观灵活,模版插件可通过后台可视界面选择设置。可满足用户的个性化建站需求。
[]任意创建频道
具有单页、文章、下载、图文等频道类型,可任意创建多个频道栏目;
不同栏目可设置使用不同的模版,网站界面更丰富多彩。
[]全站内容插件灵活调用
大量可全站调用的内容插件,插入到任何页面,实现各频道之间内容穿插,并可通过专题互相关联。
[]完备的内容管理功能
后台各频道均具有分类检索、搜索、自定排序方式、批量处理、转移栏目和类别等完备的内容管理功能
[]自定义内容阅读权限
可将栏目、类别或单篇内容进行阅读权限控制,指定阅读权限级别
[]自定义会员类型,灵活设置权限
自定义创建多种会员类型,每种会员类型、每个会员均可设置不同的阅读权限级别和操作权限
[]灵活的网站广告管理系统
各栏目均可设置不同的弹出窗口、浮动广告、对联广告、挂角广告等非定位广告;还可自定义页内广告标签插件,插入模版中任意位置。
[]网站辅助功能丰富
具有访问统计系统、投票调查系统、友情链接系统、数据备份系统等网站辅助工具
[]内置DisCuz!论坛会员接口
内置DisCuz论坛标准接口,只需简单设置,就可使会员和论坛互通。
[]便利实用的升级更新体系
采用XML远程获取升级信息,保证升级的延续性和完整性
[]搜索引擎优化
多目录结构和HTML静态网页,每个页面都可设置网页标题、META标签,更有利于搜索引擎收录
5、网博士智能建站系统与DISCUZ论坛会员接口如何设置?
discuz本来是使用UC作为用户中心的..若将Discuz作为一个系统整合到其他会员中心应该到原来的那个用户中心设置吧
6、帝国cms 和discuz 的论坛 home 怎么整合 ?
帝国CMS整合Discuz有两种方式: 方式一、用Ucenter接口整合。使用Ucenter接口整合无需安装通行证跟万能会员接口。 方式二、用Discuz通行证接口整合。需先安装万能会员接口,然后再安装通行证。
关于discuz会员接口和discuz api接口的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。