基于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 相关文章推荐
基于mysql的论坛(1)
Oct 09 PHP
php数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系
Nov 02 PHP
php阻止页面后退的方法分享
Feb 17 PHP
php简单实现发送带附件的邮件
Jun 10 PHP
详细解读PHP中接口的应用
Aug 12 PHP
php导出csv文件,可导出前导0实例代码
Nov 16 PHP
详解PHP防止直接访问.php 文件的实现方法
Jul 28 PHP
PHP对称加密算法(DES/AES)类的实现代码
Nov 14 PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
Jun 13 PHP
thinkphp5+layui实现的分页样式示例
Oct 08 PHP
php字符串函数 str类常见用法示例
May 15 PHP
PHP利用curl发送HTTP请求的实例代码
Jul 09 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 写文本日志实现代码
2010/05/18 PHP
php中Session的生成机制、回收机制和存储机制探究
2014/08/19 PHP
大家都应该掌握的PHP关联数组使用技巧
2015/12/25 PHP
JQuery 获得绝对,相对位置的坐标方法
2010/02/09 Javascript
jQuery validate 中文API 附validate.js中文api手册
2010/07/31 Javascript
javascript图像处理—仿射变换深度理解
2013/01/16 Javascript
jQuery多项选项卡的实现思路附样式及代码
2014/06/03 Javascript
jquery显示隐藏元素的实现代码
2016/05/19 Javascript
详解AngularJS ui-sref的简单使用
2017/04/24 Javascript
AngularJS ui-router刷新子页面路由的方法
2018/07/23 Javascript
vue如何根据网站路由判断页面主题色详解
2018/11/02 Javascript
js字符串倒序的实例代码
2018/11/30 Javascript
基于node.js实现爬虫的讲解
2019/02/18 Javascript
vue 中Virtual Dom被创建的方法
2019/04/15 Javascript
bootstrapValidator表单校验、更改状态、新增、移除校验字段的实例代码
2020/05/19 Javascript
vue3弹出层V3Popup实例详解
2021/01/04 Vue.js
TensorFlow模型保存/载入的两种方法
2018/03/08 Python
python如何通过twisted实现数据库异步插入
2018/03/20 Python
Python基于opencv的图像压缩算法实例分析
2018/05/03 Python
利用python的socket发送http(s)请求方法示例
2018/05/07 Python
使用NumPy和pandas对CSV文件进行写操作的实例
2018/06/14 Python
pandas dataframe添加表格框线输出的方法
2019/02/08 Python
python实现按行分割文件
2019/07/22 Python
python读写文件write和flush的实现方式
2020/02/21 Python
python用Configobj模块读取配置文件
2020/09/26 Python
浅谈CSS3 box-sizing 属性 有趣的盒模型
2019/04/02 HTML / CSS
美国一家专业的太阳镜网上零售商:Solstice太阳镜
2016/07/25 全球购物
Sunglasses Shop德国站:欧洲排名第一的太阳镜网站
2017/08/01 全球购物
C#面试题问题集
2016/04/02 面试题
《金钱的魔力》教学反思
2014/02/24 职场文书
自考毕业自我鉴定
2014/03/18 职场文书
2014年学校工作总结
2014/11/20 职场文书
申请吧主发表的感言
2015/08/03 职场文书
如何书写你的职业生涯规划书?
2019/06/27 职场文书
创业计划书之甜品店
2019/09/18 职场文书
python pygame入门教程
2021/06/01 Python