
批改狀態(tài):合格
老師批語:寫的可以,這種卡片樣式我也喜歡!
setcookie('name','value','expire','path','domain','secure','httponly');
參數(shù) | 描述 |
---|---|
name | 規(guī)定 cookie 的名稱 |
value | 規(guī)定 cookie 的值 |
expire | 規(guī)定 cookie 的過期時間,time()+3600 * 24 * 30 將設(shè)置 cookie 的過期時間為 30 天。如果這個參數(shù)沒有設(shè)置,那么 cookie 將在 session 結(jié)束后(即瀏覽器關(guān)閉時)自動失效 |
path | 規(guī)定 cookie 的服務(wù)器路徑,如果路徑設(shè)置為 “/“,那么 cookie 將在整個域名內(nèi)有效 |
domain | 規(guī)定 cookie 的域名,為了讓 cookie 在所有子域名中有效,您需要把 cookie 的域名前加上 “.” |
secure | 規(guī)定是否需要在安全的 HTTPS 連接來傳輸 cookie。如果 cookie 需要在安全的 HTTPS 連接下傳輸,則設(shè)置為 TRUE,默認是 FALSE |
httponly | 只可以通過http協(xié)議來訪問 |
<?php
//1.通過setcookie(),來設(shè)置cookie
setcookie('name','admin',time()+600,'/','.php.edu',0);
header()方法發(fā)送原生http頭來設(shè)置cookie
<?php
header("Set-Cookie:n=1");
setrawcookie()發(fā)送未經(jīng) URL 編碼的 cookie
<?php
setcookie('email','7777@qq.com');
setrawcookie('email','8888@163.com');
<?php
setcookie('name','admin',time()+600,'/','.php.edu',0);
echo $_COOKIE['name'];
<?php
setcookie('name','admin',time()+600,'/','.php.edu',0);
setcookie('name','zhang');
echo $_COOKIE['name'];
<?php
//刪除cookie,把第三個參數(shù)設(shè)置為過去的時間,值設(shè)置為空
setcookie('name','admin',time()+600,'/','.php.edu',0);
setcookie('name','',time()-3600,'/','.php.edu',0);
print_f($_COOKIE);
localStorage.setItem('name','wang');
/*添加數(shù)據(jù)*/
localStorage.getItem('name');
/*讀取數(shù)據(jù)*/
/*刪除一條數(shù)據(jù)*/
localStorage.removeItem('name');
/*批量刪除數(shù)據(jù)*/
localStorage.clear();
session把用戶的會話信息保存到服務(wù)器上
session的工作原理:
用戶向服務(wù)器發(fā)送請求,服務(wù)器會檢測請求里有沒有一個session ID,沒有的話,服務(wù)器會創(chuàng)建一個session文件并生成一個session ID,然后把session ID返回給客戶端;如果請求中有session ID的話,服務(wù)器就會把之前的會話信息讀取出來并且這個會話信息在服務(wù)器的任何一個頁面都是共享的。
<?php
session_start();
//session_start() 函數(shù)必須位于 <html> 標簽之前
//存儲 Session 變量
$_SESSION['name'] = 'admin001';
//輸出session變量
echo 'session的值是:'.$_SESSION['name'];
//銷毀session
//session_destroy();
session_unset();
//釋放當前在內(nèi)存中已經(jīng)創(chuàng)建的所有$_SESSION變量,但不刪除session文件以及不釋放對應(yīng)的session id
session_destroy();
//刪除當前用戶對應(yīng)的session文件以及釋放session id,內(nèi)存中的$_SESSION變量內(nèi)容依然保留
print_r($_SESSION);
?>
//demo3.php代碼
<?php
$username = $_POST['username'];
$password = $_POST['password'];
//清除cookie
function clearCookies(){
setcookie('username','',time()-3600);
setcookie('isLogin','',time()-3600);
}
//登錄驗證
if ($_POST['sub']){
if($username == 'admin' && $password == '123456'){
clearCookies();
setcookie('username',$username);
setcookie('isLogin','1');
print_r($_COOKIE);
header("Location:demo4.php");
}else{
exit('<script>
alert("用戶名或密碼錯誤");
</script>');
}
}
//退出登錄
if($_GET['action'] == 'logOut'){
clearCookies();
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>實戰(zhàn)練習(xí)</title>
<style>
body{
margin:0;
padding: 0;
box-sizing: border-box;
background-color: gainsboro;
display:flex;
justify-content: center;
align-items: center;
}
.content{
width: 500px;
height: 300px;
border-radius: 10px;
box-shadow: 0 0 5px #888;
background-color: #fff;
position:absolute;
top:30%;
padding:10px;
}
</style>
</head>
<body>
<table class="content">
<form action="" method="post">
<tr>
<td><label for="username">賬號:</label></td>
<td><input type="text" name="username" id="username"></td>
</tr>
<tr>
<td><label for="password">密碼:</label></td>
<td><input type="password" name="password" id="password"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="sub" value="提交"></td>
</tr>
</form>
</table>
</body>
</html>
//demo4.php代碼
<?php
if(!isset($_COOKIE['isLogin']) || $_COOKIE['isLogin'] != "1"){
exit('<script>
alert("請先登錄");
location.href = "demo3.php";
</script>');
}
echo '<h1>歡迎登錄</h1>'.$_COOKIE['username'].'<a href="demo3.php?action=logOut">退出</a>';
設(shè)置setcookie(),header(‘Set-Cookie:a=1’),setrawcookie()
查看cookie用$_COOKIE
更新直接覆蓋setcookie()
刪除cookie,設(shè)置時間為負數(shù),setcookie(‘參數(shù)’,’null’,time()-3600);
如果設(shè)置了根目錄,域名;刪除時必須寫上根目錄和域名
設(shè)置php.ini,session.auto_start = 0;啟動會話時需要寫session_start();
session變量賦值:$_SESSION[‘name’] = ‘a(chǎn)dmin’;
刪除session:
session_unset();
釋放當前在內(nèi)存中已經(jīng)創(chuàng)建的所有$_SESSION變量,但不刪除session文件以及不釋放對應(yīng)的session id
session_destroy();
刪除當前用戶對應(yīng)的session文件以及釋放session id,內(nèi)存中的$_SESSION變量內(nèi)容依然保留
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號