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来模拟登陆无疑是最佳捷径. 今天我们要处理 ...
随机推荐
- css 实现三角形 实现过程
1.纯色的全等的三角形实现 下面的就是实际实现 没有宽高 只有边框 都是透明 根据箭头的方向 给边框方法加颜色 比如需要像右箭头 只需要给border-right-color:颜色值; 即可 c ...
- .net 开源工作流比较及应用
送上比较内容图: 鉴于这个表的内容,与公司技术与需求的结合,我们选择啦RoadFlow工作流引擎. 下面踏上RoadFlow的征程. RoadFlow的下载.部署.及使用 官方网址:http://cq ...
- curl命令使用
curl命令可以用来构造http请求.参数有很多,常用的参数如下: 通用语法:curl [option] [URL...]在处理URL时其支持类型于SHELL的名称扩展功能,如http://www.j ...
- 浅谈 jQuery 事件源码定位问题
该方法已过期,chrome 48还是49开始,自带各种流行框架的事件绑定解析. 勾上这个选项即可. 昨天群里有人问了个事件源码定位的问题,简单描述下是这样的. 在一个不是自己写的页面上,如何快速定位到 ...
- [Recommendation System] 推荐系统之协同过滤(CF)算法详解和实现
1 集体智慧和协同过滤 1.1 什么是集体智慧(社会计算)? 集体智慧 (Collective Intelligence) 并不是 Web2.0 时代特有的,只是在 Web2.0 时代,大家在 Web ...
- XHTML的规则
以正确的DOCTYPE和命名空间开始文档 使用meta内容元素声明你的字符编码 用小写字母写所有元素和属性名称 给所有属性值加引号 给所有属性赋一个值 关闭所有标签 用空格和斜杠关闭“空”标签 不要在 ...
- 如何修改 Total commander 配置文件的路径
在官方主页 http://www.ghisler.com/tools.htm#other 上提供了一个名为 INIreloc.exe 的小程序,它可以变更ini文件的保存位置.
- 如何查看oracle 的package源码
select text from dba_source t where t.TYPE = 'PACKAGE BODY' and name ='EMR_RECORD_INPUT' order by li ...
- dynamic和var的区别
1.var声明一个局部变量只是一种简化语法,它要求编译器根据一个表达式推断具体的数据类型. 2.var只能用于声明方法内部的局部变量,而dynamic可用于局部变量,字段,参数. 3.表达式不能转型为 ...
- Git教程推荐
推荐:廖雪峰的官方网站-Git教程,面向初学者,浅显易懂.