(1)浏览器查看cookie:
Name,Value,Domain域名,Path,Expires / Max-Age过期时间,
Size,HTTP,Secure安全,Samesite同一网站
发送请求时会将cookie的Name和Value发送给服务器,过期的数据服务器将不会进行处理
(2)PHP通过setcookie()来设置cookie
bool setcookie( string $名字; //规定cookie名称 [,string $值] //规定cookie值 [,int $过期时间 = 0] //规定cookie有效期 [,path $路径] //规定cookie的服务器路径 [,string $域名] //规定cookie的域名 [,bool $安全 = false] //安全,是否通过安全的HTTPS连接来传输cookie [,bool $http只读 = false] //如果为true,JS无法修改cookie,增加安全性 );
一般来说3个参数就够了,键、值、有效期
且一般不会将用户名和密码写入cookie,因为很不安全
(3)下面举个实例
用户名和密码存为cookie,时限60秒
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>demo测试</title> </head> <body> <form action="./cookie.php" method="post"> 姓名:<input type="text" name="username"><hr> 密码:<input type="password" name="pwd"><hr> <input type="submit" value="提交按钮"> </form> </body> </html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <?php //连接user数据库 include 'config.php'; $connect = mysqli_connect(DB_HOST,DB_USER,DB_PWD,DB_NAME); if(!$connect){ die("could not connect:".mysqli_error()); }else{ echo "连接成功<br>"; //再次访问,通过cookie识别 if (($_COOKIE['username'] != null)&&($_COOKIE['password'] != null)) { echo "COOKIE存在可以用<br>"; $username = $_COOKIE['username']; $password = $_COOKIE['password']; }else{ echo "COOKIE过期"; } if(($_POST['username'] != null)&&($_POST['pwd'] != null)){ $username = $_POST['username']; $password = $_POST['pwd']; //获取数据 $sql = "select* from user where name='$username'"; $result = mysqli_query($connect,$sql); $row = mysqli_fetch_array($result); //获取正确密码 var_dump($row['password']); if ($row['password'] == $password) { //密码验证通过,设置cookie,将用户名和密码保存在客户端 setcookie('username',$username,time()+60);//设置时效为60秒,60秒后cookie失效 setcookie('password',$password,time()+60); //跳转到登录后的欢迎界面 header('Location:welcome.php'."?username=$username"); }else{ echo "用户名或密码错误"; } }else{ echo "请输入用户名或密码"; } } //关闭连接 $close = mysqli_close($connect); if(!$close){ die("关闭数据库失败"); }else{ echo "关闭成功"; } ?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <?php echo "欢迎"; ?>
.