php热身2:CRUD with Ajax

这次热身是一个会员管理系统,包括会员注册、登录、资料修改功能,使用ajax技术

1.建表

use common_module;
create table if not exists member(
user_id int auto_increment primary key,
email varchar(60) comment '会员邮箱',
user_name varchar(60) comment '用户名',
password varchar(32) comment '密码',
question varchar(255) comment '找回密码问题',
answer varchar(255) comment '问题答案',
sex tinyint(1) comment '性别 1男 2女',
reg_time date comment '注册时间',
birthday date comment '出生年月日',
last_login date coment '最后一次登录时间',
last_ip varchar(15) comment '最后一次登录IP',
visit_count smallint(5) comment '登录次数',
parent_id mediumint(9) comment '推荐人id',
nickname varchar(60) comment '昵称',
address varchar(60) comment '地址',
phone varchar(20) comment '手机号',
is_adm smallint(6) comment '管理权限'
)CHARSET=utf8;

2.数据库连接类
书上没用PDO。但是pdo的封装,因为pdo函数用的不多,没啥经验,就先放放,只搞一个fetchAll好了。

3.引入公共包含文件
建一个inc.php,里面包含了所有要包含的文件,以及数据库连接实例和模版实例,以后只要引入它就行了,百宝箱的感觉。

4.ajax
稍微仔细写一下。
在html或者模版页中,引入js文件。js文件里面定义了一些事件处理函数,比如某文本框失去焦点后发起ajax请求,得到结果后在html或者模版页上进行显示,比如提示用户名已经注册等。
其中ajax的请求,需要指定url,也就对应到了后台的php文件上。
js文件中函数的编写,可以使用jquery。

网上找到一个很简单的例子:
check.html中进行用户名注册,当文本框失去焦点后,引入的check.js里的代码被执行,向check.php发起请求,得到结果后将check.html中的标签的属性进行修改或增加(提示用户名已经注册或未注册)
这个例子并没有自行编写ajax发送请求的底层函数,而是通过使用jquery,jquery自带了ajax功能。

jQuery还不怎么会用,例子中用到的几个函数:
ready()函数:在DOM加载后执行
$.post(url, data, callback_function()):发起ajax的POST请求,传入数据为data,回调函数为callback_function()。e.g. 在回调函数中进行ajax查询结果的后续处理。

好了,ajax流程讲清楚了,落实到细节上就可以了。当然其中少不了check.php中连接到数据库进行查询与判断:

<?php
/**
 * Created by PhpStorm.
 * User: Chris
 * Date: 2016/5/15
 * Time: 11:01
 */

session_start();
include('inc.php');
//demo来自天涯PHP博客 http://blog.phpha.com
if(_post('name')){
    $username = _post('name');
    $sql = "select * from member where user_name=?";
    $args = array($username);
    $result=$db->fetchAll($sql, $args);
    if(sizeof($result)){ //找到了
        exit('1');
    }
    exit('0');
}else if(_post('email')){
    $email = _post('email');
    $sql = "select * from member where email=?";
    $args = array($email);
    $result=$db->fetchAll($sql, $args);
    if(sizeof($result)){ //找到了
        exit('1');
    }
    exit('0');
}
?>

5.注册、登录、修改、查看
和前面一个例子相比,多了session的管理。登录后需要把用户的信息赋值给session,这样在页面之间跳转的时候就可以进行验证判断了。

6.管理员模块
书上和作者给出的代码中没有进行真正的权限管理处理,不过一个简单的办法,就是当用户登录后,会将信息赋值给session,那么是否是管理员只需要通过session就可以判断了,那么只要session中管理员项验证通过就可以进入管理员模块了。

7.下载链接
http://pan.baidu.com/s/1hsoA6QK

原文地址:https://www.cnblogs.com/zjutzz/p/5496151.html