php热身2:CRUD with Ajax

简介: 这次热身是一个会员管理系统,包括会员注册、登录、资料修改功能,使用ajax技术1.建表use common_module;create table if not exists member(user_id int auto_increment primary key,email varch...

这次热身是一个会员管理系统,包括会员注册、登录、资料修改功能,使用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

目录
相关文章
|
14天前
|
前端开发 JavaScript PHP
【PHP开发专栏】jQuery与PHP实现Ajax通信
【4月更文挑战第30天】本文介绍了使用jQuery和PHP实现Ajax通信的步骤。首先,讲解了Ajax的基础和jQuery简化Ajax操作的概念。接着,展示了如何使用jQuery的`$.get()`、`$.post()`和`$.ajax()`方法发送GET和POST请求,以及如何控制请求细节。在PHP端,讨论了接收和响应Ajax请求的方法,包括处理数据、设置响应类型和错误处理。结合jQuery与PHP,开发者能实现高效、无缝的异步数据传输,提升Web应用的用户体验。
|
14天前
|
XML 前端开发 JavaScript
【PHP 开发专栏】PHP 与 Ajax 交互开发
【4月更文挑战第30天】本文探讨了PHP与Ajax交互在Web开发中的应用。Ajax负责客户端的异步请求,PHP处理服务器端业务逻辑。两者结合实现高效、流畅的用户体验。文中阐述了Ajax的工作原理,PHP的角色,数据传输格式选择,并提供了发送Ajax请求、PHP处理请求的示例代码。实际应用包括实时数据更新、表单验证和动态内容加载。开发中需注意跨域、数据安全和性能优化。PHP与Ajax的结合将继续在Web开发中发挥重要作用。
|
4月前
|
前端开发 JavaScript 关系型数据库
PHP代码合集21个邮箱2个问答23个ajax特效
PHP代码合集21个邮箱2个问答23个ajax特效
18 0
|
5月前
|
前端开发 PHP 数据安全/隐私保护
【PHP学习】—利用ajax原理实现密码修改功能(九)
【PHP学习】—利用ajax原理实现密码修改功能(九)
|
5月前
|
前端开发 JavaScript PHP
【PHP学习】—利用ajax原理实现登录功能(八)
【PHP学习】—利用ajax原理实现登录功能(八)
|
10月前
|
JSON 前端开发 安全
ajax中实现访问url已阅即焚的解决方案(url动态参数、变量加密、常量不变、php加密解密、API访问验证方式)
ajax中实现访问url已阅即焚的解决方案(url动态参数、变量加密、常量不变、php加密解密、API访问验证方式)
186 0
|
10月前
|
前端开发 JavaScript 关系型数据库
宝塔设置PHP定时任务实战记录(定时任务、ajax异步刷新API、shell脚本、访问url)
宝塔设置PHP定时任务实战记录(定时任务、ajax异步刷新API、shell脚本、访问url)
504 0
|
10月前
|
前端开发
phpStudy PHP5.6版本ajax出现HTTP_RAW_POST_DATA is deprecated头部错误原因
phpStudy PHP5.6版本ajax出现HTTP_RAW_POST_DATA is deprecated头部错误原因
43 0
|
6月前
|
XML 前端开发 JavaScript
什么是Ajax和jquery
什么是Ajax和jquery
48 0
|
5月前
|
JSON 前端开发 Java
利用Spring Boot处理JSON数据实战(包括jQuery,html,ajax)附源码 超详细
利用Spring Boot处理JSON数据实战(包括jQuery,html,ajax)附源码 超详细
62 0