PHP应用cookie案例

(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 "欢迎";
?>

 

 

 

 

 

.

猜你喜欢

转载自570109268.iteye.com/blog/2414260