黑马程序员技术交流社区
标题: 【西安校区】关于PHP实现用户登录相关知识点(一) [打印本页]
作者: 西安前端组 时间: 2018-4-9 20:13
标题: 【西安校区】关于PHP实现用户登录相关知识点(一)
本帖最后由 西安前端组 于 2018-4-9 20:27 编辑
内容概要:
- 用户登录流程
- PHP实现验证操作
- PHP实现页面跳转
- PHP的操作数据库扩展
- 不同方法之间的优缺点
- PDO操作的优点
- session在PHP操作方法
# 1. 准备工作
1. 编写静态登录页面
2. 搭建运行环境
在httpd-vhosts.conf下配置一个基于域名的虚拟主机,
在本地DNS hosts文件中增加域名
3. 创建数据库、创建数据表、字段,测试内容
2. 登录流程图
3. 完善案例接收表单数据
验证数据合法性
验证数据合理性
执行成功跳转
3.1 接收数据get会将数据暴露到url参数中,而post是以一种私密的方式提交给服务器,所以对于一些安全度要求高的数据使用post方式提交
PHP接收表单的预定义变量
3.2 验证数据合法性此步骤判断数据是否为空,使用PHP的empty()判断
[PHP] 纯文本查看 复制代码
bool empty ( mixed $var )
判断一个变量是否被认为是空的。当一个变量并不存在,或者它的值等同于FALSE,那么它会被认为不存在。如果变量不存在的话,empty()并不会产生警告。
3.3 验证数据合理性判断表单提交的用户名密码是否和数据的用户名密码匹配,如果匹配,跳转到管理首页,只要有一个不匹配,则提示用户错误信息,并且跳转到首页
3.3.1 PHP连接数据库首先mysql是一种cs架构的软件,所以对于PHP在连接数据库处于客户端的层面,对于PHP需要连接数据库,必须要开启对应的操作数据库扩展,在php.ini中找到对应的代码,去掉前面的分号重启apche即可,例如
mysql扩展 extension=php_mysql.dll
mysqli扩展 extension=php_mysqli.dll
PDO扩展 extension=php_pdo_mysql.dll
三者特点:
mysql:
1、最早的操作数据库API,操作简单容易上手 ,提供了一个面向过程的接口
2、但是从 PHP 5.5.0 起这个扩展已经被废弃,并且从 PHP 7.0.0. 开始被移除
mysqli:MySQL增强版扩展 过度版本
1、支持面向过程和面向对象
2、增加预处理语句,异常,事务捕获等
3、就是只支持mysql数据库。如果你要是不操作其他的数据库,这无疑是最好的选择
PDO:PHP Data Objects
1、支持预处理语句,异常捕获,事务等操作,仅支持面向对象,
2、只需要封装一个类,可以自由切换数据库到postgresql,或者sqlServer等数据库,而在程序端不用做太多的调整,其功能类似于JDBC、ODBC、DBI之类接口
3.3.2 使用mysql扩展连接数据库连接数据库mysql_connect("数据库地址","用户名","密码"); 返回一个连接资源
设置字符集 mysql_query(sql指令)
向数据库发送sql指令mysql_query("set names utf8");
选择数据库mysql_query("use 数据库名");
执行sql语句mysql_query("select|update|delete|insert语句");
说明:如果为update|delete|insert执行成功返回true,失败返回false
如果为select执行成功返回资源结果集,失败返回false
5.资源结果集处理mysql_fetch_assoc($res);
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |