使用php完成一个用户注册以及管理的demo(一)
2015-02-11 15:35
537 查看
1.设计mysql的用户表
2.设计文件结构
3.制作后台增加用户的界面
4.对于数据库操作的封装,用来操作数据库的一些方式
5. include.php的制作
(1)用户表的设计 mysql数据库
/如果用户表user已经存在的话,则删除掉/
DROP TABLE IF EXISTS
/!40101 SET @saved_cs_client = @@character_set_client /;
/!40101 SET character_set_client = utf8 /;
CREATE TABLE
/注册时间/
/活跃程度/
PRIMARY KEY (
/用户名不允许重复/
UNIQUE KEY
)
/自增长从编号6开始,默认编码为utf-8/
ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
(2)文件的目录结构
![](http://img.blog.csdn.net/20150211233222192)
其中addUser把数据提交到doAdminAction.php页面中,在这个页面中调用core(主干,主要)文件夹里的admin.inc.php中的函数操作与用户有关的操作,lib文件夹里的文件里的函数 mysql.func.php封装了与数据库有关的函数,page.func.php封装了与分页有关的函数(凡是带test的是我自己用来测试的,不用管了(>_<))。在php中总是包含其他的文件写起来会很麻烦,利用include.php可以一次包含全部。具体的后边再说。
(3)制作后台增加用户的界面
效果如图所示
![](http://img.blog.csdn.net/20150212000603846)
(4)数据库的封装
(5)include.php的制作
之后在其他的代码中如果需要以上的部分,再开头加一句
require_once ‘../include.php’;
2.设计文件结构
3.制作后台增加用户的界面
4.对于数据库操作的封装,用来操作数据库的一些方式
5. include.php的制作
(1)用户表的设计 mysql数据库
/如果用户表user已经存在的话,则删除掉/
DROP TABLE IF EXISTS
user;
/!40101 SET @saved_cs_client = @@character_set_client /;
/!40101 SET character_set_client = utf8 /;
CREATE TABLE
user(
idint(10) unsigned NOT NULL AUTO_INCREMENT,
usernamevarchar(20) NOT NULL,
passwordchar(32) NOT NULL,
sexenum(‘男’,’女’,’保密’) NOT NULL DEFAULT ‘保密’,
facevarchar(50) NOT NULL,
/注册时间/
regTimeint(10) unsigned NOT NULL,
/活跃程度/
activeFlagtinyint(1) DEFAULT ‘0’,
PRIMARY KEY (
id),
/用户名不允许重复/
UNIQUE KEY
username(
username)
)
/自增长从编号6开始,默认编码为utf-8/
ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
(2)文件的目录结构
其中addUser把数据提交到doAdminAction.php页面中,在这个页面中调用core(主干,主要)文件夹里的admin.inc.php中的函数操作与用户有关的操作,lib文件夹里的文件里的函数 mysql.func.php封装了与数据库有关的函数,page.func.php封装了与分页有关的函数(凡是带test的是我自己用来测试的,不用管了(>_<))。在php中总是包含其他的文件写起来会很麻烦,利用include.php可以一次包含全部。具体的后边再说。
(3)制作后台增加用户的界面
<!doctype html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <H3>添加管理员</H3> <FORM action="doAdminAction.php?act=addUser" method="post"> <TABLE width="60%" border="1" cellpadding="5" cellspacing="0" bgcolor="#cccccc"> <tr> <TD align="right">用户名称</TD> <TD><input type="text" name="username" placeholder="请输入用户名称"/></TD> </tr> <tr> <TD align="right">用户密码</TD> <TD><input type="text" name="password" placeholder="请输入用户名称"/></TD> </tr> <tr> <TD align="right">用户邮箱</TD> <TD><input type="text" name="email" placeholder="请输入用户名称"/></TD> </tr> <tr> <td align="right">性别</td> <td><input type="radio" name="sex" value="1" checked="checked"/>男 <input type="radio" name="sex" value="2" />女 <input type="radio" name="sex" value="3" />保密 </td> </tr> <tr> <td align="right">头像</td> <td><input type="file" name="face" /></td> </tr> <tr> <TD colspan="2"><input type="submit" value="添加用户"/></TD> </tr> </FORM> </body> </html>
效果如图所示
(4)数据库的封装
<?php /** * 连接数据库 * @return resource */ function connect(){ $link=mysql_connect(DB_HOST,DB_USER,DB_PWD) or die("数据库连接失败Error:".mysql_errno().":".mysql_error()); mysql_set_charset(DB_CHARSET); mysql_select_db(DB_DBNAME) or die("指定数据库打开失败"); return $link; } /** * 完成记录插入的操作 * @param string $table * @param array $array * @return number */ function insert($table,$array){ $keys=join(",",array_keys($array)); $vals="'".join("','",array_values($array))."'"; $sql="insert {$table}($keys) values({$vals})"; mysql_query($sql); return mysql_insert_id(); } //update imooc_admin set username='king' where id=1 /** * 记录的更新操作 * @param string $table * @param array $array * @param string $where * @return number */ function update($table,$array,$where=null){ foreach($array as $key=>$val){ if($str==null){ $sep=""; }else{ $sep=","; } $str.=$sep.$key."='".$val."'"; } $sql="update {$table} set {$str} ".($where==null?null:" where ".$where); $result=mysql_query($sql); //var_dump($result); //var_dump(mysql_affected_rows());exit; if($result){ return mysql_affected_rows(); }else{ return false; } } /** * 删除记录 * @param string $table * @param string $where * @return number */ function delete($table,$where=null){ $where=$where==null?null:" where ".$where; $sql="delete from {$table} {$where}"; mysql_query($sql); return mysql_affected_rows(); } /** *得到指定一条记录 * @param string $sql * @param string $result_type * @return multitype: */ function fetchOne($sql,$result_type=MYSQL_ASSOC){ $result=mysql_query($sql); $row=mysql_fetch_array($result,$result_type); return $row; } /** * 得到结果集中所有记录 ... * @param string $sql * @param string $result_type * @return multitype: */ function fetchAll($sql,$result_type=MYSQL_ASSOC){ $result=mysql_query($sql); while(@$row=mysql_fetch_array($result,$result_type)){ $rows[]=$row; } return $rows; } /** * 得到结果集中的记录条数 * @param unknown_type $sql * @return number */ function getResultNum($sql){ $result=mysql_query($sql); return mysql_num_rows($result); } /** * 得到上一步插入记录的ID号 * @return number */ function getInsertId(){ return mysql_insert_id(); } ?>
(5)include.php的制作
<?php header("content-type:text/html;charset=utf-8"); define("ROOT",dirname(__FILE__)); //设置包含的路径,之后引入的文件路径都在这里 set_include_path(".".PATH_SEPARATOR.ROOT."/lib".PATH_SEPARATOR.ROOT."/configs".PATH_SEPARATOR.ROOT."/core".PATH_SEPARATOR); //引入文件 require_once 'mysql.func.php'; require_once 'page.func.php'; require_once 'test.func.php'; require_once 'admin.inc.php'; require_once 'configs.php'; connect();//连接数据库 ?>
之后在其他的代码中如果需要以上的部分,再开头加一句
require_once ‘../include.php’;
相关文章推荐
- 使用php完成一个用户注册以及管理的demo(php实现单文件与多文件的上传)
- 使用php完成一个用户注册以及管理的demo(三)
- 使用php完成一个用户注册以及管理的demo(二)
- 【JavaMail】(2)JavaMail的一个案例:用户在网站上注册完成后给用户发一封邮件, 且需要用户通过邮件激活后才可以使用。
- 使用PHP制作 简易员工管理系统之八(使用COOKIE保存用户登陆id以及显示用户登录时间)
- 页面静态化3 --- 使用PHP页面缓存机制来完成页面静态化(下)操作一个案例(新闻管理系统)
- 使用sqlite3(数据库知识)的接口函数完成一个用户注册功能模块设计 要封装成函数,在独立的main中调用测试
- 演示事件(Event)怎样使用以及怎样为用户控件添加一个事件(示例代码下载)
- 一个jsp+cgi+html小工程,完成注册,后台使用CGI
- 使用PHP实现用户登录和注册的功能
- 使用“成员资格管理用户”以及“Forms 身份验证提供程序”保护需要授权才能访问的资源
- php插件phpthumb使用方法,一个demo
- PHP学习笔记 用户注册模块用户类以及验证码类
- 转一个QQ登陆SDK使用说明,附SDK以及demo
- 注册用户名称的PHP验证以及含中英文混合的字符串长度的判断
- 使用PHP实现用户登录和注册的功能
- PHPCMS V9.3.2用户注册模板中的一个低级Bug
- PHP―使用MYSQL来 进入用户管理中心进行更多的操作
- drp用户管理完成后,asp.net与java的一个简单比较
- PHP网页服务实现注册和商店NPC管理(安装+搭建+使用+问题处理)