PHP与MySQL程序设计 第四版 第十四章 身份验证 笔记

本章学习以下概念:
基本的基于HTTP的验证概念
php的验证变量$_SERVER[‘PHP_AUTH_USER’]和$_SERVER[‘PHP_AUTH_PW’]
一些常用于实现验证过程的PHP函数
3种常用的验证方法:直接在脚本中硬编码登录对(用户名和密码)、基于文件的验证和基于数据库的验证
利用Auth_HTTP包
使用CrackLib扩展测试密码的可猜测性
使用一次性URL恢复丢失的密码

233页 14.2用php验证用户
通过php处理验证时常用到 header()和isset()
header()函数向浏览器发送原始的http首部
void header(string header [,boolean replace [, int http_response_code]])
可选参数replace确定此信息是替换之前发送的首部信息,还是伴随以前的首部信息一同发送
可选参数http_response_code 定义将随同首部信息一起发送的特定响应码
发送401首部信息的示例
header('WWW-Authenticate: Basic Realm="Book Projects"');
header("HTTP/1.1 401 Unauthorized");

注意 除非启用输出缓存,否则这些命令必须在返回任何输出之前执行,违反HTTP规范,将导致服务器错误。

用isset()确定变量是否已设置
boolean isset(mixed var [,mixed var [,...]])
如果变量包含值则返回TRUE,否则返回FALSE。

235页 14.3.2 基于文件的身份验证
将用户名密码保存在文件中如 authenticationFile.txt文件包含以下内容
zhangxingju:602dsdf264sddfg2d6354112
aju:sdf5121635dsfsd2f1sd5f2122d
用户名和加密的密码之间用冒号隔开

先使用file函数将文件读取到数组中
用explode将字符串分解
用加密算法加密密码与文件中密码做判断

14.3.3 基于数据库的身份验证
使用数据库存储需要验证的数据,每次查询验证即可

14.4.2 一次性URL和密码恢复
一次性URL常用于向用户确保唯一性。
密码恢复,常见的忘记密码找回