基于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实现多服务器session共享之NFS共享的方法
Mar 16 PHP
首页四格,首页五格For6.0(GBK)(UTF-8)[12种组合][9-18][版主安装测试通过]
Sep 24 PHP
记录mysql性能查询过程的使用方法
May 02 PHP
php站内搜索关键词变亮的实现方法
Dec 30 PHP
PHP函数extension_loaded()用法实例
Jan 19 PHP
php结合正则获取字符串中数字
Jun 19 PHP
php抓取并保存网站图片的实现代码
Oct 28 PHP
基于php(Thinkphp)+jquery 实现ajax多选反选不选删除数据功能
Feb 24 PHP
Yii2 如何在modules中添加验证码的方法
Jun 19 PHP
thinkPHP3.2.3结合Laypage实现的分页功能示例
May 28 PHP
YII2.0框架行为(Behavior)深入详解
Jul 26 PHP
jQuery+PHP实现图片上传并提交功能
Jul 27 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
日本收入最高的漫画家:海贼王作者版税年收入高达8.45亿元
2020/03/04 日漫
我的论坛源代码(五)
2006/10/09 PHP
PHP Memcached + APC + 文件缓存封装实现代码
2010/03/11 PHP
php压缩多个CSS为一个css的代码并缓存
2011/04/21 PHP
PHP图像处理之使用imagecolorallocate()函数设置颜色例子
2014/11/19 PHP
使用URL传输SESSION信息
2015/07/14 PHP
教你在header中隐藏php的版本信息
2016/08/10 PHP
javascript CSS画图之基础篇
2009/07/29 Javascript
浅谈JavaScript事件的属性列表
2015/03/01 Javascript
js 获取元素在页面上的偏移量的方法汇总
2015/04/13 Javascript
js原生之焦点图转换加定时器实例
2016/12/12 Javascript
JavaScript基于Dom操作实现查找、修改HTML元素的内容及属性的方法
2017/01/20 Javascript
jQuery Mobile漏洞会有跨站脚本攻击风险
2017/02/12 Javascript
JavaScript队列函数和异步执行详解
2017/06/19 Javascript
更改BootStrap popover的默认样式及popover简单用法
2018/09/13 Javascript
详解在HTTPS 项目中使用百度地图 API
2019/04/26 Javascript
解决layer图标icon不加载的问题
2019/09/04 Javascript
详解Angular cli配置过程记录
2019/11/07 Javascript
详解JavaScript中的Object.is()与"==="运算符总结
2020/06/17 Javascript
python 文件与目录操作
2008/12/24 Python
python操作数据库之sqlite3打开数据库、删除、修改示例
2014/03/13 Python
跟老齐学Python之私有函数和专有方法
2014/10/24 Python
Python编码类型转换方法详解
2016/07/01 Python
python 处理string到hex脚本的方法
2018/10/26 Python
Python在图片中插入大量文字并且自动换行
2019/01/02 Python
python队列Queue的详解
2019/05/10 Python
TFRecord文件查看包含的所有Features代码
2020/02/17 Python
python--shutil移动文件到另一个路径的操作
2020/07/13 Python
python map比for循环快在哪
2020/09/21 Python
详解Django中异步任务之django-celery
2020/11/05 Python
HTML5中使用postMessage实现Ajax跨域请求的方法
2016/04/19 HTML / CSS
写得不错的求职信范文
2014/07/11 职场文书
领导干部群众路线个人对照检查材料思想汇报
2014/09/30 职场文书
工作检讨书500字
2014/10/19 职场文书
任命通知范文
2015/04/21 职场文书
centos8安装nginx1.9.1的详细过程
2021/08/02 Servers