基于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 获取可变函数参数的函数
Aug 26 PHP
PHP的array_diff()函数在处理大数组时的效率问题
Nov 27 PHP
php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
Sep 28 PHP
在Yii框架中使用PHP模板引擎Twig的例子
Jun 13 PHP
php数组比较实现查找连续数的方法
Jul 29 PHP
PHP判断字符串长度的两种方法很实用
Sep 22 PHP
PHP中检索字符串的方法分析【strstr与substr_count方法】
Feb 17 PHP
PHP判断json格式是否正确的实现代码
Sep 20 PHP
完美的php分页类
Oct 24 PHP
浅析PHP中的闭包和匿名函数
Dec 25 PHP
PHP PDOStatement::fetch讲解
Jan 31 PHP
PHP与SQL语句写一句话木马总结
Oct 11 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连接MySQL代码的参数说明
2008/06/07 PHP
PHP基础之运算符的使用方法
2013/04/28 PHP
php实现批量下载百度云盘文件例子分享
2014/04/10 PHP
基于node.js的快速开发透明代理
2010/12/25 Javascript
按给定几率进行随机抽取的js代码
2010/12/28 Javascript
jquery中ajax调用json数据的使用说明
2011/03/17 Javascript
缓动函数requestAnimationFrame 更好的实现浏览器经动画
2012/12/07 Javascript
如何将一个String和多个String值进行比较思路分析
2013/04/22 Javascript
深入理解Javascript动态方法调用与参数修改的问题
2013/12/10 Javascript
JS延迟加载加快页面打开速度示例代码
2013/12/30 Javascript
使用nodejs、Python写的一个简易HTTP静态文件服务器
2014/07/18 NodeJs
浅谈javascript中字符串String与数组Array
2014/12/31 Javascript
JavaScript判断字符长度、数字、Email、电话等常用判断函数分享
2015/04/01 Javascript
JS获取图片高度宽度的方法分享
2015/04/17 Javascript
JavaScript实现对下拉列表值进行排序的方法
2015/07/15 Javascript
JavaScript设计模式之策略模式详解
2017/06/09 Javascript
js移动端事件基础及常用事件库详解
2017/08/15 Javascript
详解处理bootstrap4不支持远程静态框问题
2018/07/20 Javascript
node.js实现为PDF添加水印的示例代码
2018/12/05 Javascript
node实现socket链接与GPRS进行通信的方法
2019/05/20 Javascript
利用百度echarts实现图表功能简单入门示例【附源码下载】
2019/06/10 Javascript
详解JavaScript中精度失准问题及解决方法
2020/02/04 Javascript
解决Vue router-link绑定事件不生效的问题
2020/07/22 Javascript
uniapp开发小程序实现滑动页面控制元素的显示和隐藏效果
2020/12/10 Javascript
[01:02:09]Liquid vs TNC 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21
2020/07/19 DOTA
[01:06:26]全国守擂赛第二周 Team Coach vs DeMonsTer
2020/04/28 DOTA
Python实现的统计文章单词次数功能示例
2019/07/08 Python
Python 实现自动登录+点击+滑动验证功能
2020/06/10 Python
python爬取招聘要求等信息实例
2020/11/20 Python
阿联酋最好的手机、电子产品和家用电器网上商店:Eros Digital Home
2020/08/09 全球购物
高校毕业生自我鉴定
2013/10/27 职场文书
创建绿色学校先进个人材料
2014/08/20 职场文书
钱学森观后感
2015/06/04 职场文书
PostgreSQL存储过程实用脚本(二):创建函数入门
2021/04/05 PostgreSQL
JavaScript架构localStorage特殊场景下二次封装操作
2022/06/21 Javascript
Redis唯一ID生成器的实现
2022/07/07 Redis