分析理解一个添加基础token功能的代码
session_start(); //启动Session
function token_start() { //创建函数token_start
$_SESSION['token'] = md5(rand(1,10000)); 创建变量token,计算生成随机数的MD5散列
}
//验证token
function token_check() {
$return = $_REQUEST['token'] === $_SESSION['token'] ? true : false; //验证请求token与生成token是否一致,将结果(true、false)返回给return
token_start();
return $return;
}
//如果token为空则生成一个token
if(!isset($_SESSION['token']) || $_SESSION['token']=='') {
token_start();
}
if(isset($_POST['test'])){
if(!valid_token()){ //如果是无效的,打印失败
echo "token fail";
}else{ //反之,有效则成功
echo 'success,Value:'.$_POST['test'];
}
}
session 变量用于存储关于用户会话(session)的信息,或者更改用户会话(session)的设置。
Session 的工作机制是:为每个访客创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在 cookie 中,或者通过 URL 进行传导。
session_start()就是用来启动 Session的
function,用来创建php函数
语法
function functionName()
{
// 要执行的代码
}
functionName以字母或下划线开头(不能以数字开头)
存储session 变量的正确方法是使用 $_SESSION 变量
md5() 函数计算字符串的 MD5 散列。
md5() 函数使用 RSA 数据安全,包括 MD5 报文摘要算法。
语法
md5(string,raw)
参数
string:必需。规定要计算的字符串。
raw:可选。
规定十六进制或二进制输出格式:TRUE - 原始 16 字符二进制格式;FALSE - 默认。32 字符十六进制数
rand() 函数生成随机整数。
语法
rand(min,max)生成区间内的随机数
运算符
x === y 绝对等于 如果 x 等于 y,且它们类型相同,则返回 true
isset() 函数用于检测变量是否已设置并且非 NULL。
语法
bool isset ( mixed $var [, mixed $... ] )
参数说明:
$var:要检测的变量。
如果一次传入多个参数,那么 isset() 只有在全部参数都被设置时返回 TRUE,计算过程从左至右,中途遇到没有设置的变量时就会立即停止。
返回值
如果指定变量存在且不为 NULL,则返回 TRUE,否则返回 FALSE。
$_POST 变量用于收集来自 method=“post” 的表单中的值。