基于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 相关文章推荐
提升PHP执行速度全攻略(下)
Oct 09 PHP
一个php作的文本留言本的例子(三)
Oct 09 PHP
apache+php完美解决301重定向的两种方法
Jun 08 PHP
PHP中使用crypt()实现用户身份验证的代码
Sep 05 PHP
php中mt_rand()随机数函数用法
Nov 24 PHP
ThinkPHP自动完成中使用函数与回调方法实例
Nov 29 PHP
Yii不依赖Model的表单生成器用法实例
Dec 04 PHP
详解PHP数组赋值方法
Nov 07 PHP
php post json参数的传递和接收处理方法
May 31 PHP
Yii 使用intervention/image拓展实现图像处理功能
Jun 22 PHP
浅谈laravel数据库查询返回的数据形式
Oct 21 PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
Apr 04 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
多文件上传的例子
2006/10/09 PHP
一个程序下载的管理程序(二)
2006/10/09 PHP
PHP检测移动设备类mobile detection使用实例
2014/04/14 PHP
详解WordPress中简码格式标签编写的基本方法
2015/12/22 PHP
Zend Framework分页类用法详解
2016/03/22 PHP
php查找字符串中第一个非0的位置截取
2017/02/27 PHP
使用PHPStorm+XDebug搭建单步调试环境
2017/11/19 PHP
php中加密解密DES类的简单使用方法示例
2020/03/26 PHP
从Ajax到JQuery Ajax学习
2007/02/14 Javascript
javascript 控制弹出窗口
2007/04/10 Javascript
IE下双击checkbox反应延迟问题的解决方法
2014/03/27 Javascript
JQuery实现带排序功能的权限选择实例
2015/05/18 Javascript
微信小程序 参数传递详解
2016/10/24 Javascript
jQuery实现节点的追加、替换、删除、复制功能示例
2017/07/11 jQuery
JS原型prototype和__proto__用法实例分析
2020/03/14 Javascript
Vue elementui字体图标显示问题解决方案
2020/08/18 Javascript
[46:44]VG vs TNC Supermajor小组赛B组败者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
python开启多个子进程并行运行的方法
2015/04/18 Python
黑科技 Python脚本帮你找出微信上删除你好友的人
2016/01/07 Python
python 连接各类主流数据库的实例代码
2018/01/30 Python
Python多叉树的构造及取出节点数据(treelib)的方法
2019/08/09 Python
Python scipy的二维图像卷积运算与图像模糊处理操作示例
2019/09/06 Python
pycharm修改file type方式
2019/11/19 Python
python小项目之五子棋游戏
2019/12/26 Python
python爬虫搭配起Bilibili唧唧的流程分析
2020/12/01 Python
CSS3 2D模拟实现摩天轮旋转效果
2016/11/16 HTML / CSS
《七颗钻石》教学反思
2014/02/28 职场文书
经典广告词大全
2014/03/14 职场文书
财产公证书
2014/04/10 职场文书
销售团队激励口号
2014/06/06 职场文书
岗位竞聘报告范文
2014/11/06 职场文书
单身申明具结书
2015/02/26 职场文书
公司备用金管理制度
2015/08/04 职场文书
CSS 实现多彩、智能的阴影效果
2021/05/12 HTML / CSS
JavaScript中时间格式化新思路toLocaleString()
2021/11/07 Javascript
MySQL限制查询和数据排序介绍
2022/03/25 MySQL