Discuz!用户注册,登陆,生成帖子功能实现
<?php /*
* Disucz!部分功能使用说明:
*/ /********************************************************************** 用户注册 ***************************************************************************/
/* uc_user_register接口只是把用户数据验证后插入到pre_ucenter_members表中
* 所以需要手动将数据同步到pre_common_member表中
*/
if(!function_exists('uc_user_register')) { loaducenter(); }
$uid = uc_user_register($nickname,$password,$email,'你的昵称加什么?',$nickname);
if($uid > 0){
//同步用户
$uc_members = DB::fetch_all("select * from pre_ucenter_members where email = '$email' limit 1");
$uc_members = empty($uc_members[0]) ? '' : $uc_members[0];
if(!empty($uc_members)){
$com_mem_data = array('email'=>$uc_members['email'],'username'=>$uc_members['username'],'password'=>$uc_members['password'],'groupid'=>$define_group_id,'regdate'=>$uc_members['regdate'],'timeoffset'=>9999);
DB::insert('common_member',$com_mem_data);
}
}else{
if($uid == -1) {
die(json_encode(array('status'=>0,'msg'=>'用户名不合法')));
} elseif($uid == -2) {
die(json_encode(array('status'=>0,'msg'=>'包含要允许注册的词语')));
} elseif($uid == -3) {
die(json_encode(array('status'=>0,'msg'=>'用户名已经存在')));
} elseif($uid == -4) {
die(json_encode(array('status'=>0,'msg'=>'Email 格式有误')));
} elseif($uid == -5) {
die(json_encode(array('status'=>0,'msg'=>'Email 不允许注册')));
} elseif($uid == -6) {
die(json_encode(array('status'=>0,'msg'=>'该 Email 已经被注册')));
} else{
die(json_encode(array('status'=>0,'msg'=>'注册失败')));
}
} /*************************************************************** 用户登陆 ********************************************************************************/
/* 使用setloginstatus函数登陆,
* 接受两个参数,pre_common_member用户记录,和记录cookie的时间
*/
$members = DB::fetch_all("select * from pre_common_member where email = '$email' limit 1");
$member = empty($members[0]) ? '' : $members[0];
if( !empty($member) ){
//登陆成功,设置cookie,记录cookie 10年
setloginstatus($member,315360000);
die(json_encode(array('status'=>1,'msg'=>'登录成功')));
}else{
die(json_encode(array('status'=>0,'msg'=>'登录失败')));
} /**************************************************************** 生成帖子 *******************************************************************************/
/* 生成帖子流程:
* 1、从pre_forum_post_tableid获取生成帖子的tid
* 2、构造pre_forum_thread表中数据,并插入到pre_forum_thread表中。pre_forum_thread表中数据保存帖子概要信息,用于显示帖子列表
* 3、构造pre_forum_post表中数据,并插入到pre_forum_post表中。pre_forum_post表中保存帖子的详情信息。无论是帖子,还是回复都是一条独立的pre_forum_post记录
*/
$pid = C::t('forum_post_tableid')->insert(array('pid' => null), true);
$thread_data = array(
'tid'=>$pid, //主题id
'fid'=>37, //栏目id
'author'=>$post_author, //作者
'authorid'=>$uid, //作者uid,是pre_common_member表中uid
'subject'=>$title, //标题
'dateline'=>time(),
'lastpost'=>time(),
'lastposter'=>$post_author,
'status'=>32 //状态
);
if( DB::insert('forum_thread',$thread_data) ){
//帖子内容
$message = "<div>test";$message .= "</div>";
$post_data = array(
'pid'=>$pid, //帖子id
'fid'=>37, //栏目id
'tid'=>$pid, //主题id
'first'=>1, //是否第一层
'author'=>$post_author, //作者
'authorid'=>$uid, //作者uid
'subject'=>$title, //标题
'dateline'=>time(),
'message'=>htmlspecialchars($message), //内容
'useip'=>$_G['clientip'],
'port' => '',
'usesig' => 1,
'bbcodeoff' => '-1',
'smileyoff' => '-1',
'tags' => '',
'position' => 1, //楼层数
'type' => 1,
'sort_order' => 2,
'list_content' => ''
);
if( DB::insert('forum_post',$post_data) ){
//生成帖子成功
die(json_encode(array('status'=>1,'msg'=>$pid)));
}else{
die(json_encode(array('status'=>1,'msg'=>'生成帖子失败')));
}
}else{
die(json_encode(array('status'=>-1,'msg'=>'生成帖子失败')));
}
?>
Discuz!用户注册,登陆,生成帖子功能实现的更多相关文章
- php实现微信扫码自动登陆与注册功能
本文实例讲述了php实现微信扫码自动登陆与注册功能.分享给大家供大家参考,具体如下: 微信开发已经是现在程序员必须要掌握的一项基本的技术了,其实做过微信开发的都知道微信接口非常的强大做起来也非常的简单 ...
- 微信小程序_(校园视)开发用户注册登陆
微信小程序_(校园视) 开发用户注册登陆 传送门 微信小程序_(校园视) 开发上传视频业务 传送门 微信小程序_(校园视) 开发视频的展示页-上 传送门 微信小程序_(校园视) 开发视频的展示页-下 ...
- java 用户注册登陆Demo
一个用户注册登陆的系统,用到了MD5加密处理密码,实现了一个简单的数据库连接池connectionPool, 实现了注册,登陆,登陆之后修改用户信息等功能,非常适合初学者 一.准备工作 数据库:MyS ...
- bugzilla4的xmlrpc接口api调用实现分享: xmlrpc + https + cookies + httpclient +bugzilla + java实现加密通信下的xmlrpc接口调用并解决登陆保持会话功能
xmlrpc . https . cookies . httpclient.bugzilla . java实现加密通信下的xmlrpc接口调用并解决登陆保持会话功能,网上针对bugzilla的实现很 ...
- Visual Assist 生成注释功能
在Visual Studio环境中编码,Visual Assist是不可缺少的好工具.这工具功能非常强大,以前仅仅用到了代码提示,今天学习了生成注释功能,非常爽. 在代码编辑器中点击右键弹出菜单,在“ ...
- Android高级控件(三)—— 使用Google ZXing实现二维码的扫描和生成相关功能体系
Android高级控件(三)-- 使用Google ZXing实现二维码的扫描和生成相关功能体系 摘要 现在的二维码可谓是烂大街了,到处都是二维码,什么都是二维码,扫一扫似乎已经流行到习以为常了,今天 ...
- JEECG--去掉(增加)登陆页面验证码功能 - CSDN博客
JEECG--去掉(增加)登陆页面验证码功能 - CSDN博客https://blog.csdn.net/KooKing_L/article/details/79711379
- Android高级控件(三)—— 使用Google ZXing实现二维码的扫描和生成相关功能体系
Android高级控件(三)-- 使用Google ZXing实现二维码的扫描和生成相关功能体系 摘要 如今的二维码可谓是烂大街了.到处都是二维码.什么都是二维码,扫一扫似乎已经流行到习以为常了,今天 ...
- [PHP自动化-进阶]004.Snoopy VS CURL 模拟Discuz.net登陆
引言:采集论坛第一步就是要模拟登陆,由于各个站点登录表单各不相同,验证方式又是多种多样,所以直接提交用户名密码到登录页面就比较繁琐. 所以我们采用cookie来模拟登陆无疑是最佳捷径. 今天我们要处理 ...
随机推荐
- 【ESRI论坛6周年征文】ArcEngine注记(Anno/ Label/Element等)处理专题 -入门篇
原发表于ESRI中国社区,转过来.我的社区帐号:jhlong http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=122097 ----------- ...
- Instant Radiosity实现
本来说等把课程作业做完再来弄这个,但是还是没有忍住,先做了,主要原因还是这个算法很容易实现.这个算法在1997年由Keller首次提出.虽然名字叫Instant Radiosity,但是它和Radio ...
- 加载plist文件数据的方法
这个pilist文件最外面的是一个数组,数组中每一个item是一个字典,我们的目的就是为了取到每一个item字典中的内容数据 下面看代码举例 //加载数组 - (void)handleData { / ...
- JVM Management API
JVM本身提供了一组管理的API,通过该API,我们可以获取得到JVM内部主要运行信息,包括内存各代的数据.JVM当前所有线程及其栈相关信 息等等.各种JDK自带的剖析工具,包括jps.jstack. ...
- PHP打印测试,PHP调试技巧
第一步: 在 php.ini 中,将 display_errors 设置为 On: 第二步: 在 框架的 开始处,添加如下代码: <?php if (isset($_GET['debug'])) ...
- Eclipse启动tomcat,http://localhost:8080/无法访问的解决方法
双击eclipse的Server打开配置页面,将server locations的选项改成第二项,然后把Destroy Path改成webapps,然后就可以了.如果是灰色的,没法进行修改,那么就要先 ...
- 02OC的类和对象
这章重点介绍OC的类以及对象,由于C语言是面向过程语言,而OC只是对于C语言多了一些面向对象的特性,所以OC相对于其他面向对象语言,例如C#.Java等没有那么多的语法特性,所以差别还是比较大的. 一 ...
- 使用maven打包的注意事项
maven编译项目的时候,默认使用的GBK,而目前大部分代码都使用的UTF-8的方式,所以这时候打出来的包容易出现乱码. 解决方式: <!-- compiler插件, 设定JDK版本 --> ...
- NEFU 558 迷宫寻路
题目链接 简单搜索题 #include <cstdio> #include <iostream> #include <cstring> using namespac ...
- Assertion failure in -[UITableView _configureCellForDisplay:forIndexPath:]
今天遇到了Assertion failure in -[UITableView _configureCellForDisplay:forIndexPath:]这个错误,一直也没有百度,不料想却弄了一个 ...