Home  >  Article  >  php教程  >  使用php完成一个用户注册以及管理的demo(一)

使用php完成一个用户注册以及管理的demo(一)

WBOY
WBOYOriginal
2016-06-06 19:42:201375browse

1.设计mysql的用户表 2.设计文件结构 3.制作后台增加用户的界面 4.对于数据库操作的封装,用来操作数据库的一些方式 5. include.php的制作 (1)用户表的设计 mysql数据库 / 如果用户表user已经存在的话,则删除掉 / DROP TABLE IF EXISTS user ; / !40101 S

1.设计mysql的用户表
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 (
id int(10) unsigned NOT NULL AUTO_INCREMENT,
username varchar(20) NOT NULL,
password char(32) NOT NULL,
sex enum(‘男’,’女’,’保密’) NOT NULL DEFAULT ‘保密’,
email varchar(50) NOT NULL,
face varchar(50) NOT NULL,
/注册时间/
regTime int(10) unsigned NOT NULL,
/活跃程度/
activeFlag tinyint(1) DEFAULT ‘0’,
PRIMARY KEY (id),
/用户名不允许重复/
UNIQUE KEY username (username)
)
/自增长从编号6开始,默认编码为utf-8/
ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
(2)文件的目录结构
使用php完成一个用户注册以及管理的demo(一)
其中addUser把数据提交到doAdminAction.php页面中,在这个页面中调用core(主干,主要)文件夹里的admin.inc.php中的函数操作与用户有关的操作,lib文件夹里的文件里的函数 mysql.func.php封装了与数据库有关的函数,page.func.php封装了与分页有关的函数(凡是带test的是我自己用来测试的,不用管了(>_ (3)制作后台增加用户的界面

<code><span>
<span>html</span>></span>
<span>head</span>>
<span>meta</span> <span>charset</span>=<span>"utf-8"</span>>
<span>title</span>><span><span>title</span>></span>
<span><span>head</span>></span>
<span>body</span>>
<span>H3</span>>添加管理员<span><span>H3</span>></span>
<span>FORM</span>  <span>action</span>=<span>"doAdminAction.php?act=addUser"</span> <span>method</span>=<span>"post"</span>>
<span>TABLE</span> <span>width</span>=<span>"60%"</span> <span>border</span>=<span>"1"</span> <span>cellpadding</span>=<span>"5"</span> <span>cellspacing</span>=<span>"0"</span> <span>bgcolor</span>=<span>"#cccccc"</span>>
<span>tr</span>>
    <span>TD</span> <span>align</span>=<span>"right"</span>>用户名称<span><span>TD</span>></span>
    <span>TD</span>><span>input</span> <span>type</span>=<span>"text"</span> <span>name</span>=<span>"username"</span> <span>placeholder</span>=<span>"请输入用户名称"</span>/><span><span>TD</span>></span>
<span><span>tr</span>></span>
<span>tr</span>>
    <span>TD</span> <span>align</span>=<span>"right"</span>>用户密码<span><span>TD</span>></span>
    <span>TD</span>><span>input</span> <span>type</span>=<span>"text"</span> <span>name</span>=<span>"password"</span> <span>placeholder</span>=<span>"请输入用户名称"</span>/><span><span>TD</span>></span>
<span><span>tr</span>></span>
<span>tr</span>>
    <span>TD</span> <span>align</span>=<span>"right"</span>>用户邮箱<span><span>TD</span>></span>
    <span>TD</span>><span>input</span> <span>type</span>=<span>"text"</span> <span>name</span>=<span>"email"</span> <span>placeholder</span>=<span>"请输入用户名称"</span>/><span><span>TD</span>></span>
<span><span>tr</span>></span>
<span>tr</span>>
    <span>td</span> <span>align</span>=<span>"right"</span>>性别<span><span>td</span>></span>
    <span>td</span>><span>input</span> <span>type</span>=<span>"radio"</span> <span>name</span>=<span>"sex"</span> <span>value</span>=<span>"1"</span> <span>checked</span>=<span>"checked"</span>/>男
    <span>input</span> <span>type</span>=<span>"radio"</span> <span>name</span>=<span>"sex"</span> <span>value</span>=<span>"2"</span> />女
    <span>input</span> <span>type</span>=<span>"radio"</span> <span>name</span>=<span>"sex"</span> <span>value</span>=<span>"3"</span> />保密
    <span><span>td</span>></span>
<span><span>tr</span>></span>
<span>tr</span>>
        <span>td</span> <span>align</span>=<span>"right"</span>>头像<span><span>td</span>></span>
        <span>td</span>><span>input</span> <span>type</span>=<span>"file"</span> <span>name</span>=<span>"face"</span> /><span><span>td</span>></span>
<span><span>tr</span>></span>
<span>tr</span>>
    <span>TD</span> <span>colspan</span>=<span>"2"</span>><span>input</span> <span>type</span>=<span>"submit"</span> <span>value</span>=<span>"添加用户"</span>/><span><span>TD</span>></span>
<span><span>tr</span>></span>
<span><span>FORM</span>></span>
<span><span>body</span>></span>
<span><span>html</span>></span></code>

效果如图所示使用php完成一个用户注册以及管理的demo(一)
(4)数据库的封装


<code><span><span><?php </span> 
<span>/**
 * 连接数据库
 *<span> @return</span> resource
 */</span>
<span><span>function</span> <span>connect</span><span>()</span>{</span>
    <span>$link</span>=mysql_connect(DB_HOST,DB_USER,DB_PWD) <span>or</span> <span>die</span>(<span>"数据库连接失败Error:"</span>.mysql_errno().<span>":"</span>.mysql_error());
    mysql_set_charset(DB_CHARSET);
    mysql_select_db(DB_DBNAME) <span>or</span> <span>die</span>(<span>"指定数据库打开失败"</span>);
    <span>return</span> <span>$link</span>;
}

<span>/**
 * 完成记录插入的操作
 *<span> @param</span> string $table
 *<span> @param</span> array $array
 *<span> @return</span> number
 */</span>
<span><span>function</span> <span>insert</span><span>(<span>$table</span>,<span>$array</span>)</span>{</span>
    <span>$keys</span>=join(<span>","</span>,array_keys(<span>$array</span>));
    <span>$vals</span>=<span>"'"</span>.join(<span>"','"</span>,array_values(<span>$array</span>)).<span>"'"</span>;
    <span>$sql</span>=<span>"insert {$table}($keys) values({$vals})"</span>;
    mysql_query(<span>$sql</span>);
    <span>return</span> mysql_insert_id();
}
<span>//update imooc_admin set username='king' where id=1</span>
<span>/**
 * 记录的更新操作
 *<span> @param</span> string $table
 *<span> @param</span> array $array
 *<span> @param</span> string $where
 *<span> @return</span> number
 */</span>
<span><span>function</span> <span>update</span><span>(<span>$table</span>,<span>$array</span>,<span>$where</span>=null)</span>{</span>
    <span>foreach</span>(<span>$array</span> <span>as</span> <span>$key</span>=><span>$val</span>){
        <span>if</span>(<span>$str</span>==<span>null</span>){
            <span>$sep</span>=<span>""</span>;
        }<span>else</span>{
            <span>$sep</span>=<span>","</span>;
        }
        <span>$str</span>.=<span>$sep</span>.<span>$key</span>.<span>"='"</span>.<span>$val</span>.<span>"'"</span>;
    }
        <span>$sql</span>=<span>"update {$table} set {$str} "</span>.(<span>$where</span>==<span>null</span>?<span>null</span>:<span>" where "</span>.<span>$where</span>);
        <span>$result</span>=mysql_query(<span>$sql</span>);
        <span>//var_dump($result);</span>
        <span>//var_dump(mysql_affected_rows());exit;</span>
        <span>if</span>(<span>$result</span>){
            <span>return</span> mysql_affected_rows();
        }<span>else</span>{
            <span>return</span> <span>false</span>;
        }
}

<span>/**
 *  删除记录
 *<span> @param</span> string $table
 *<span> @param</span> string $where
 *<span> @return</span> number
 */</span>
<span><span>function</span> <span>delete</span><span>(<span>$table</span>,<span>$where</span>=null)</span>{</span>
    <span>$where</span>=<span>$where</span>==<span>null</span>?<span>null</span>:<span>" where "</span>.<span>$where</span>;
    <span>$sql</span>=<span>"delete from {$table} {$where}"</span>;
    mysql_query(<span>$sql</span>);
    <span>return</span> mysql_affected_rows();
}

<span>/**
 *得到指定一条记录
 *<span> @param</span> string $sql
 *<span> @param</span> string $result_type
 *<span> @return</span> multitype:
 */</span>
<span><span>function</span> <span>fetchOne</span><span>(<span>$sql</span>,<span>$result_type</span>=MYSQL_ASSOC)</span>{</span>
    <span>$result</span>=mysql_query(<span>$sql</span>);
    <span>$row</span>=mysql_fetch_array(<span>$result</span>,<span>$result_type</span>);
    <span>return</span> <span>$row</span>;
}


<span>/**
 * 得到结果集中所有记录 ...
 *<span> @param</span> string $sql
 *<span> @param</span> string $result_type
 *<span> @return</span> multitype:
 */</span>
<span><span>function</span> <span>fetchAll</span><span>(<span>$sql</span>,<span>$result_type</span>=MYSQL_ASSOC)</span>{</span>
    <span>$result</span>=mysql_query(<span>$sql</span>);
    <span>while</span>(@<span>$row</span>=mysql_fetch_array(<span>$result</span>,<span>$result_type</span>)){
        <span>$rows</span>[]=<span>$row</span>;
    }
    <span>return</span> <span>$rows</span>;
}

<span>/**
 * 得到结果集中的记录条数
 *<span> @param</span> unknown_type $sql
 *<span> @return</span> number
 */</span>
<span><span>function</span> <span>getResultNum</span><span>(<span>$sql</span>)</span>{</span>
    <span>$result</span>=mysql_query(<span>$sql</span>);
    <span>return</span> mysql_num_rows(<span>$result</span>);
}

<span>/**
 * 得到上一步插入记录的ID号
 *<span> @return</span> number
 */</span>
<span><span>function</span> <span>getInsertId</span><span>()</span>{</span>
    <span>return</span> mysql_insert_id();
}

<span>?></span></span></span></code>

(5)include.php的制作

<code><span><span><?php </span>
header(<span>"content-type:text/html;charset=utf-8"</span>);
define(<span>"ROOT"</span>,dirname(<span>__FILE__</span>));
<span>//设置包含的路径,之后引入的文件路径都在这里</span>
set_include_path(<span>"."</span>.PATH_SEPARATOR.ROOT.<span>"/lib"</span>.PATH_SEPARATOR.ROOT.<span>"/configs"</span>.PATH_SEPARATOR.ROOT.<span>"/core"</span>.PATH_SEPARATOR);
<span>//引入文件</span>
<span>require_once</span> <span>'mysql.func.php'</span>;
<span>require_once</span> <span>'page.func.php'</span>;
<span>require_once</span> <span>'test.func.php'</span>;
<span>require_once</span> <span>'admin.inc.php'</span>;
<span>require_once</span> <span>'configs.php'</span>;
connect();<span>//连接数据库</span>
<span>?></span></span></span></code>

之后在其他的代码中如果需要以上的部分,再开头加一句
require_once ‘../include.php’;

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:C++实现PHP扩展Next article:ubuntu下搭建nginx+php+mysql