基于mysql的bbs设计(三)


Posted in PHP onOctober 09, 2006

4。用户模块设计
  对于底层数据库,调用mysql的C API函数来进行数据库的修改,内部保存
一定的状态变量(例如用户名,还是留给上一层完成?),对上一层,则提供
用户管理的接口。
  Class UserManage {
  private:
    char  myuserid[20]; // 用户的id,未登陆前为空
    time  logintime; // 用户登陆时间,并用于计算停留时间
    char  loginhost[20]; //上站地点。

  public:
    int NewUser( char *userid, char *passwd );
      新建一个用户,判断是否已经有,其他资料暂时为空,
      firstlogintime,权限等设缺省值。
    int UserLogin( char *userid, char *passwd );
      用户登陆,验证密码,
    int ChangePasswd( char *oldpasswd, char *newpasswd );
      修改密码,要求原密码一致。
    int ChangePriData( char *newname, char *newemail,
              char *newaddr );
      改变基本数据,泥称,email,住址。。。。
    int ModifyNumData( int addlogin, int addpost );
      修改文章数,上站次数,等数据。。。。注意调用对象。
    int UserLogout();
      用户退出,修改lastlogin,staytime,loginhost等

    // 普通查询命令
    int QueryCommonData( const char * userid, int& loginnum,
            char * username, int& postnum,
            time& lastlogin, char *lasthost );
      查询网友基本信息。

    // 特权指令,函数在完成功能前,先判断权限。
    int QueryPriData( const char * userid, char *email,
              char *addr );
      查询基本信息,普通人只能查自己,有特权才能查其他人。
    int ModifyUserLevel( BOOL isAdd, unsigned long level );
      修改用户的权限,
    int ModifyUserId( char *oldid, char *newid );
              char *newemail, char *newaddr );
      修改用户的基本数据。
    int ModifyUserNumdata( char *userid, int addlogin, int addpost );
      修改用户的文章数等数据。
    int ModifyUserPasswd( char *userid, char *newpasswd );
      修改用户的密码。
  }
    以上各个函数难度不大,都是执行相应的sql语句,访问mysql数据库,
  是否将一般指令归到特权指令中去呢?权限的检查,是放在这一层还是上一层?
  这更多的是看考虑的着重点,是看程序的清晰性还是代码的简练,可能还是
  看代码吧,毕竟要考虑访问量,另外,上层服务层是否也应该考虑权限检查
  问题呢?

PHP 相关文章推荐
利用js调用后台php进行数据处理原码
Oct 09 PHP
PHP无限分类的类
Jan 02 PHP
php学习之变量的使用
May 29 PHP
destoon设置自定义搜索的方法
Jun 21 PHP
PHP生成随机密码类分享
Jun 25 PHP
Laravel 5框架学习之Eloquent 关系
Apr 09 PHP
PHP 获取ip地址代码汇总
Jul 05 PHP
PHP+mysql+ajax轻量级聊天室实现方法详解
Oct 17 PHP
PHP基于DOM创建xml文档的方法示例
Feb 08 PHP
微信接口生成带参数的二维码
Jul 31 PHP
使用Zookeeper分布式部署PHP应用程序
Mar 15 PHP
解决在laravel中auth建立时候遇到的问题
Oct 15 PHP
支持oicq头像的留言簿(一)
Oct 09 #PHP
NT IIS下用ODBC连接数据库
Oct 09 #PHP
怎样在UNIX系统下安装php3
Oct 09 #PHP
怎样在UNIX系统下安装MySQL
Oct 09 #PHP
关于文本留言本的分页代码
Oct 09 #PHP
支持oicq头像的留言簿(二)
Oct 09 #PHP
一个ubbcode的函数,速度很快.
Oct 09 #PHP
You might like
PHP中extract()函数的妙用分析
2012/07/11 PHP
php实现查询百度google收录情况(示例代码)
2013/08/02 PHP
PHP使用json_encode函数时不转义中文的解决方法
2014/11/12 PHP
php在线解压ZIP文件的方法
2014/12/30 PHP
Windows服务器中PHP如何安装redis扩展
2019/09/27 PHP
服务端 VBScript 与 JScript 几个相同特性的写法 By shawl.qiu
2007/03/06 Javascript
ASP中用Join和Array,可以加快字符连接速度的代码
2007/08/22 Javascript
javascript 获取页面的高度及滚动条的位置的代码
2010/05/06 Javascript
jquery 插件学习(二)
2012/08/06 Javascript
jquery实现checkbox全选全不选的简单实例
2013/12/31 Javascript
教你用AngularJS框架一行JS代码实现控件验证效果
2014/06/23 Javascript
JavaScript通过元素的ID和name设置样式
2014/07/08 Javascript
修复bash漏洞的shell脚本分享
2014/12/31 Javascript
jQuery操作DOM之获取表单控件的值
2015/01/23 Javascript
javascript高级编程之函数表达式 递归和闭包函数
2015/11/29 Javascript
全面解析多种Bootstrap图片轮播效果
2016/05/27 Javascript
JavaScript中数组的22种方法必学(推荐)
2016/07/20 Javascript
Node.js中文件操作模块File System的详细介绍
2017/01/05 Javascript
Vue-Router实现组件间跳转的三种方法
2017/11/07 Javascript
利用es6 new.target来对模拟抽象类的方法
2019/05/10 Javascript
element form 校验数组每一项实例代码
2019/10/10 Javascript
JavaScript中this的学习笔记及用法整理
2020/02/17 Javascript
详解JavaScript执行模型
2020/11/16 Javascript
[52:29]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第三局
2016/03/03 DOTA
Tensorflow 自带可视化Tensorboard使用方法(附项目代码)
2018/02/10 Python
python抓取网页内容并进行语音播报的方法
2018/12/24 Python
Python实现的爬取百度文库功能示例
2019/02/16 Python
树莓派极简安装OpenCv的方法步骤
2019/10/10 Python
Python通过yagmail实现发送邮件代码解析
2020/10/27 Python
软件测试工程师结构化面试题库
2016/11/23 面试题
策划主管的工作职责
2013/11/24 职场文书
教师个人鉴定材料
2014/02/08 职场文书
学生生病请假条范文
2014/02/16 职场文书
2014年副班长工作总结
2014/12/10 职场文书
python中取整数的几种方法
2021/11/07 Python