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来模拟登陆无疑是最佳捷径. 今天我们要处理 ...
随机推荐
- java ssh 框架下 利用junit4 spring-test进行单元测试
ssh框架下 由于bean实列 都交给spring 管理,要做单元测试就比较苦难,junit4 引入注解方便很多: 1. 加入依赖包 使用Spring的测试框架需要加入以下依赖包: JUnit 4 ...
- JSP动作元素之useBean、setProperty、getProperty指令
简介 这三个指令都是与JavaBean相关的指令,其中useBean指令用于在JSP页面中初始化一个Java实例:setProperty指令用于为JavaBean实例的属性设置值:getPropert ...
- css3过渡效果
- 关于当传过来的值转换成string类型报错的问题
有时候直接写 string str=request.param["str"].tostring;会报错,是因为接受到的值可能是空的 这个时候就可以这样写 string _actio ...
- Ubuntu 14 中,SecureCRT、SecureFX个性化设置
[SecureCRT 个性化设置] 打开设置路径:菜单栏 -> Opions -> Global Options -> General -> Default Session - ...
- 第2月第5天 arc invocation getReturnValue
http://blog.csdn.net/zengconggen/article/details/38024625
- Codeforces VK CUP 2015 D. Closest Equals(线段树+扫描线)
题目链接:http://codeforces.com/contest/522/problem/D 题目大意: 给你一个长度为n的序列,然后有m次查询,每次查询输入一个区间[li,lj],对于每一个查 ...
- ngCloak 实现 Angular 初始化闪烁最佳实践
在做angular的SPA开发时,我们经常会遇见在如Chrome这类能够快速解析的浏览器上出现表达式({{ express }} ),或者是模块(div)的闪烁.对于这个问题由于JavaScript去 ...
- Java GridBagLayout 简单使用
这里只介绍了很基础布局构建及使用,主要是关于 GridBagLayout. 首先整套流程大概是, 声明一个 GridBagLayout 对象 private GridBagLayout gridBag ...
- LeetCode 26 Remove Duplicates from Sorted Array
Problem: Given a sorted array, remove the duplicates in place such that each element appear only onc ...