Cookie
设置Cookie用setcookie函数格式如下:
setcookie('name','value');
例子:
<meta charset="utf-8">
<?php
setcookie('www.aaa.com','123456');
setcookie('www.bbb.com','zxcasd');
setcookie('www.ccc.com','1fewq');
setcookie('www.ddd.com','sadb23v');
setcookie('www.eee.com','sadvb221');
设置超时时间
超时时间用time参数即可:
<meta charset="utf-8">
<?php
setcookie('www.aaa.com','123456');
setcookie('www.bbb.com','zxcasd',time()+60);
setcookie('www.ccc.com','1fewq',time()+600);
setcookie('www.ddd.com','sadb23v',time()+60*60);
setcookie('www.eee.com','sadvb221',time()+60*60*24*30);
这里借助插件看一下就知道,这个Cookie过期了:
用Cookie写一个网站访问计数器
在写之前需要说明一下,这个Cookie设置完以后,直接取是取不出来的,只有第二次访问页面时,才会带着cookie访问,所以我们这么写:
<meta charset="utf-8">
<meta charset="utf-8">
<?php
# 初始化变量num
$num = 0;
# 如果cookie的值为空
if (empty($_COOKIE['access']))
{
# 设置cookie的值为1
setcookie('access',1);
# 因为第一次访问不带cookie,所以这里做一个优化,让它输出1,假装用户带着cookie访问的
echo "1";
# 如果已经有了cookie
}else{
# 那么num的值就等于当前的cookie值
$num = $_COOKIE['access'];
# num的值进行自加
$num++;
# 重新设置cookie
setcookie('access',$num);
echo $num;
}
Session
cookie是保存在浏览器端的,而session是保存在服务器端的,但是session必须依靠cookie来实现,在使用session之前,必须使用一个函数session_start():
先写一个传递session的页面:
<?php
session_start();
$_SESSION['website']='www.baidu.com';
这边var_dump一下这个session:
<?php
session_start();
var_dump($_SESSION);
?>
清空Session
直接把Session赋值给一个空数组就行了:
<?php
session_start();
# 清空Session
$_SESSION=array();
var_dump($_SESSION);
// 或者
// session_destroy()
?>
Session登陆测试
首先写一个登录界面进行表单提交:
<!DOCTYPE html>
<html>
<head>
<title>后台管理</title>
<meta charset="utf-8">
</head>
<body>
<form action="t3.php" method="post">
用户名: <input type="text" name="username"/><br><br>
密码: <input type="password" name="password"/><br><br>
<input type="submit" value="登录" />
</form>
</body>
</html>
接着写一个验证环节:
<meta charset="utf-8">
<?php
# 开启一个会话
session_start();
# 如果post的数据为空
if (empty($_POST))
{
# 输出无法登录并给出跳转登录链接
echo "<script>alert('内容不能为空!')</script>";
echo "<a href='t2.php'>请登录</a>";
}else{
# 若post数据不为空则把username,password分别赋值给他们的变量
$username = $_POST['username'];
$password = $_POST['password'];
# 如果username和password符合条件
if ($username == 'admin' and $password == 'admin888')
{
# 将username的值储存到session的name中
$_SESSION['name'] = $username;
# 跳转到t1.php
header("Location: t1.php");
}else{
# 不符合条件则给出跳转链接重新登录
echo "<script>alert('用户名或密码错误!')</script>";
echo "<a href='t2.php'>请登录</a>";
}
}
最后符合条件来到欢迎登陆界面,这里做了一个session验证:
<meta charset="utf-8">
<?php
# 开始一个会话
session_start();
# 如果session的值为空
if (empty($_SESSION))
{
# 输出无权访问并给出跳转登录链接
echo "<script>alert('无权访问!')</script>";
echo "<a href='t2.php'>请登录</a>";
}else{
# 若session值不为空则将session中name的值赋给变量name进行下一步的弹窗
$name = $_SESSION['name'];
echo "<script>alert('欢迎 $name 登录系统!')</script>";
}