基于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 相关文章推荐
1.PHP简介
Oct 09 PHP
类的另类用法--数据的封装
Oct 09 PHP
浅谈web上存漏洞及原理分析、防范方法(文件名检测漏洞)
Jun 29 PHP
使用php实现快钱支付功能(涉及到接口)
Jul 01 PHP
PHP实现linux命令tail -f
Feb 22 PHP
PHP递归遍历指定文件夹内的文件实现方法
Nov 15 PHP
phalcon model在插入或更新时会自动验证非空字段的解决办法
Dec 29 PHP
PHP三种方式实现链式操作详解
Jan 21 PHP
PHP文件管理之实现网盘及压缩包的功能操作
Sep 20 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
Nov 17 PHP
php数据结构之顺序链表与链式线性表示例
Jan 22 PHP
PHP+redis实现微博的推模型案例分析
Jul 10 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
Yii2 队列 shmilyzxt/yii2-queue 简单概述
2017/08/02 PHP
PHP判断json格式是否正确的实现代码
2017/09/20 PHP
PHP Redis扩展无法加载的问题解决方法
2019/08/22 PHP
浅析PHP7 的垃圾回收机制
2019/09/06 PHP
javascript的键盘控制事件说明
2008/04/15 Javascript
javascript 面向对象全新理练之数据的封装
2009/12/03 Javascript
jQuery EasyUI 中文API Button使用实例
2010/04/14 Javascript
获取dom元素那些讨厌的位置封装代码
2010/06/23 Javascript
加载jQuery后$冲突的解决办法
2010/07/09 Javascript
JS的location.href跳出框架打开新页面的方法
2014/09/04 Javascript
JS基于构造函数实现的菜单滑动显隐效果【测试可用】
2016/06/21 Javascript
JS中的==运算: [''] == false —>true
2016/07/24 Javascript
jquery轮播的实现方式 附完整实例
2016/07/28 Javascript
微信小程序 在线支付功能的实现
2017/03/14 Javascript
JavaScript该如何学习 怎样轻松学习JavaScript
2017/06/12 Javascript
详解如何让Express支持async/await
2017/10/09 Javascript
vue移动端轻量级的轮播组件实现代码
2018/07/12 Javascript
jQuery实现菜单的显示和隐藏功能示例
2018/07/24 jQuery
浅析Angular 实现一个repeat指令的方法
2019/07/21 Javascript
Python中使用dom模块生成XML文件示例
2015/04/05 Python
Python基于PycURL实现POST的方法
2015/07/25 Python
python3.5 + PyQt5 +Eric6 实现的一个计算器代码
2017/03/11 Python
anaconda如何查看并管理python环境
2019/07/05 Python
pycharm配置git(图文教程)
2019/08/16 Python
pycharm快捷键汇总
2020/02/14 Python
使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)
2020/10/12 Python
css3过渡_动力节点Java学院整理
2017/07/11 HTML / CSS
复古风格的女装和装饰品:ModCloth
2017/12/29 全球购物
WEB控件及HTML服务端控件能否调用客户端方法?如果能,请解释如何调用?
2015/08/25 面试题
常用UNIX 命令(Linux的常用命令)
2013/07/10 面试题
感恩节活动方案
2014/01/27 职场文书
媒体宣传策划方案
2014/05/25 职场文书
2014年小学英语教师工作总
2014/12/03 职场文书
项目技术负责人岗位职责
2015/04/13 职场文书
MySQL去除密码登录告警的方法
2022/04/20 MySQL
解决Springboot PostMapping无法获取数据的问题
2022/05/06 Java/Android