基于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.NET的入门教程
Oct 09 PHP
php的ajax框架xajax入门与试用介绍
Dec 19 PHP
linux下删除7天前日志的代码(php+shell)
Jan 02 PHP
PHP 使用MySQL管理Session的回调函数详解
Jun 21 PHP
PHP防盗链代码实例
Aug 27 PHP
几个优化WordPress中JavaScript加载体验的插件介绍
Dec 17 PHP
PHP使用strtotime获取上个月、下个月、本月的日期
Dec 30 PHP
Yii针对添加行的增删改查操作示例
Oct 18 PHP
php实现留言板功能(代码详解)
Mar 28 PHP
PHP SFTP实现上传下载功能
Jul 26 PHP
PHP中数组转换为SimpleXML教程
Jan 27 PHP
PHP 7.4中使用预加载的方法详解
Jul 08 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
PHP字符串的编码问题的详细介绍
2013/04/27 PHP
PHP正则表达式之捕获组与非捕获组
2015/11/06 PHP
初识ThinkPHP控制器
2016/04/07 PHP
PHP操作路由器实现方法示例
2019/04/27 PHP
Javascript中获取出错代码所在文件及行数的代码
2010/09/23 Javascript
JS 操作Array数组的方法及属性实例解析
2014/01/08 Javascript
JQuery判断checkbox是否选中及其它复选框操作方法合集
2015/06/01 Javascript
jQuery实现选项联动轮播效果【附实例】
2016/04/19 Javascript
js实现抽奖效果
2017/03/27 Javascript
AngulaJS路由 ui-router 传参实例
2017/04/28 Javascript
详解ElementUI之表单验证、数据绑定、路由跳转
2017/06/21 Javascript
Angular中的$watch、$watchGroup、$watchCollection
2017/06/25 Javascript
vue2.0中set添加属性后视图不能更新的解决办法
2019/02/22 Javascript
在node中使用jwt签发与验证token的方法
2019/04/03 Javascript
jquery+css3实现的经典弹出层效果示例
2020/05/16 jQuery
python基础教程之popen函数操作其它程序的输入和输出示例
2014/02/10 Python
pandas全表查询定位某个值所在行列的方法
2018/04/12 Python
python实现泊松图像融合
2018/07/26 Python
浅谈关于Python3中venv虚拟环境
2018/08/01 Python
python脚本调用iftop 统计业务应用流量的思路详解
2019/10/11 Python
Python如何实现动态数组
2019/11/02 Python
解决Python3.8用pip安装turtle-0.0.2出现错误问题
2020/02/11 Python
详解HTML5 Canvas绘制时指定颜色与透明度的方法
2016/03/25 HTML / CSS
很酷的小工具和电子产品商城:GearBest
2016/11/19 全球购物
Lookfantastic澳大利亚官网:英国知名美妆购物网站
2021/01/07 全球购物
营销与策划应届生求职信
2013/11/04 职场文书
建筑工程技术应届生求职信
2013/11/17 职场文书
社区优秀志愿者先进事迹
2014/05/09 职场文书
5s标语大全
2014/06/23 职场文书
行政求职信
2014/07/04 职场文书
捐助感谢信
2015/01/22 职场文书
幼儿园2015年度工作总结
2015/04/01 职场文书
JUnit5常用注解的使用
2021/07/02 Java/Android
Win11安装受阻怎么办? Windows11安装问题与解决方案汇总
2021/11/21 数码科技
解决Mysql中的innoDB幻读问题
2022/04/29 MySQL