关于PHP实现用户登录相关知识点(一)

内容概要:
    - 用户登录流程
    - PHP实现验证操作
    - PHP实现页面跳转
    - PHP的操作数据库扩展
    - 不同方法之间的优缺点
    - PDO操作的优点
    - session在PHP操作方法


# 1. 准备工作

1. 编写静态登录页面
2. 搭建运行环境
   在httpd-vhosts.conf下配置一个基于域名的虚拟主机,
   在本地DNS hosts文件中增加域名
3. 创建数据库、创建数据表、字段,测试内容
2. 登录流程图 关于PHP实现用户登录相关知识点(一) 

3. 完善案例
  • 接收表单数据
  • 验证数据合法性
  • 验证数据合理性
  • 执行成功跳转

3.1 接收数据
get会将数据暴露到url参数中,而post是以一种私密的方式提交给服务器,所以对于一些安全度要求高的数据使用post方式提交
PHP接收表单的预定义变量
  • $_GET                  用于接收以get方式提交的数据,包括url的形式
  • $_POST               用于接收以post方式提交的数据
  • $_REQUEST       可同时接收getpost提交的数据

3.2 验证数据合法性
此步骤判断数据是否为空,使用PHP的empty()判断
   
[PHP] 纯文本查看 复制代码
1
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);