基于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的call_user_func传reference引发的思考
Jul 23 PHP
php中让上传的文件大小在上传前就受限制的两种解决方法
Jun 24 PHP
PHP批量上传图片的具体实现方法介绍.
Feb 26 PHP
PHP+MYSQL实现用户的增删改查
Mar 24 PHP
Yii2验证器(Validator)用法分析
Jul 23 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
Dec 21 PHP
PHP实现的用户注册表单验证功能简单示例
Feb 25 PHP
PHP lcfirst()函数定义与用法
Mar 08 PHP
PHP7内核CGI与FastCGI详解
Apr 14 PHP
laravel 修改.htaccess文件 重定向public的解决方法
Oct 12 PHP
PHP实现创建一个RPC服务操作示例
Feb 23 PHP
深入理解PHP+Mysql分布式事务与解决方案
Dec 03 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_connect与mysql_pconncet的区别详解
2013/05/15 PHP
PHP实现服务器状态监控的方法
2014/12/09 PHP
php获取用户浏览器版本的方法
2015/01/03 PHP
php中的登陆login实例代码
2016/06/20 PHP
laravel框架中控制器的创建和使用方法分析
2019/11/23 PHP
使用jQuery validate 验证注册表单实例演示
2013/03/25 Javascript
js获取页面description的方法
2015/05/21 Javascript
基于JQuery实现仿网易邮箱全屏动感滚动插件fullPage
2015/09/20 Javascript
Javascript中的return作用及javascript return关键字用法详解
2015/11/05 Javascript
Jquery轮播效果实现过程解析
2016/03/30 Javascript
bootstrap laydate日期组件使用详解
2017/01/04 Javascript
jQuery实现级联下拉框实战(5)
2017/02/08 Javascript
jQuery实现定时隐藏对话框的方法分析
2018/02/12 jQuery
详解Vue 多级组件透传新方法provide/inject
2018/05/09 Javascript
JS实现的汉字与Unicode码相互转化功能分析
2018/05/25 Javascript
详解从0开始搭建微信小程序(前后端)的全过程
2019/04/15 Javascript
layer.js open 隐藏滚动条的例子
2019/09/05 Javascript
如何通过shell脚本自动生成vue文件详解
2019/09/10 Javascript
vue 扩展现有组件的操作
2020/08/14 Javascript
python抓取网页中链接的静态图片
2018/01/29 Python
pyspark.sql.DataFrame与pandas.DataFrame之间的相互转换实例
2018/08/02 Python
Python中GIL的使用详解
2018/10/03 Python
python变量赋值方法(可变与不可变)
2019/01/12 Python
Python3.4学习笔记之常用操作符,条件分支和循环用法示例
2019/03/01 Python
python科学计算之narray对象用法
2019/11/25 Python
解决Python发送Http请求时,中文乱码的问题
2020/04/30 Python
matplotlib绘制多子图共享鼠标光标的方法示例
2021/01/08 Python
使用css3实现的windows8开机加载动画
2014/12/09 HTML / CSS
Desigual英国官网:在线购买原创服装
2018/03/09 全球购物
加拿大专业美发产品购物网站:Chatters
2021/02/28 全球购物
奶茶专卖店创业计划书
2014/01/18 职场文书
2015年小学数学教师工作总结
2015/05/20 职场文书
浅谈如何写好演讲稿?
2019/06/12 职场文书
Oracle 数据仓库ETL技术之多表插入语句的示例详解
2021/04/12 Oracle
python编程学习使用管道Pipe编写优化代码
2021/11/20 Python
Python帮你解决手机qq微信内存占用太多问题
2022/02/15 Python