cookie
存在客户端
设置cookie(增删改)
<?php
//增、改
setcookie("name", "zhangsan");
//删除
setcookie("name", "");
setcookie("name");
?>
获取cookie
$_COOKIE["name"]
设置有效期
setcookie(key, value, time); //time()+60*60*24
time()-1 //删除cookie
PHP_INT_MAC //代表整型最大值
cookie 有效路径
setcookie(key, value, time, path); //参数设置为“/”,整个domain内有效,设置为“/11”,它在domain下的/11目录及子目录内有效
cookie有效域
setcookie(key, value, time, path, domain); //cookie仅在当前域下有效
cookie是否安全传输
setcookie(key, value, time, path, domain,secure); //1为开启安全传输,0为默认值,如果为0,则cookie在http和https都有效
cookie的缺点
数据原文存储于浏览器端,原始数据安全性较低;如果cookie数据量较大,由于每次请求都要携带,增加宽带使用。
session
存在服务器端
开启session机制
session_start(); //没有session创建,有就不创建,一个会话中只有一个session
利用$_SESSION操作session数据
session_start();
//增,改(存在值就是修改,不存在就是增加)
$_SESSION["name"] = "123";
//查
var_dump($_SESSION["name"]);
//删除
unset($_SESSION["name"]);
注销session
session_destroy();
Cookie实例
<?php
$username = "";
//请求中有名字为name的cookie
if(isset($_COOKIE['username'])){
$username = $_COOKIE['username'];
}
echo $_COOKIE['username'];
if( $_SERVER['REQUEST_METHOD']=="POST"){
$username = $_POST['username'];
$pwd = $_POST['pwd'];
if( empty($_POST["issave"])){
$issave = 0;
}else{
$issave = $_POST["issave"];
}
if($username =="abc" and $pwd =="888"){
if($issave == 1){
setcookie("username",$username,time()+60*60*24,"/"); //存储cookie
}
else{
setcookie("username"); //删除cookie
$username = "";
}
}
}
?>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<form action="" method="post">
<input type="text" name="username" value="<?php echo $username;?>"/><br />
<input type="text" name="pwd"/><br />
<input type="checkbox" name="issave" value="1"/>保存用户名<br />
<input type="submit" value="登录"/>
</form>
</body>
</html>
Session实例
index.php
<?php
session_start();
?>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<?php
if( isset($_SESSION['name'])){ //已登录
echo "欢迎,{$_SESSION['name']}";
}
else{
echo '<a href="login.php">登录</a>';
}
?>
<a href="logout.php ">注销</a>
</body>
</html>
login.php
<?php
session_start(); //打开session
if( $_SERVER['REQUEST_METHOD']=="POST"){
$username = $_POST['username'];
$pwd = $_POST['pwd'];
if($username =="abc" and $pwd =="888"){
header("location:index.php");
$_SESSION['name'] = $username;
}else{
echo "用户名或密码错误";
}
}
?>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<form action="" method="post">
<input type="text" name="username" /><br />
<input type="text" name="pwd"/><br />
<input type="checkbox" name="issave" value="1"/>保存用户名<br />
<input type="submit" value="登录"/>
</form>
</body>
</html>
logout.php
```<?php
session_start();
unset($_SESSION["name"]);
session_destroy();```