iT邦幫忙

2021 iThome 鐵人賽

DAY 26
0
Software Development

PHP 語法通關系列 第 26

Day26 Cookie 的使用-1

cookie的使用方法:

  • 這邊我們用setcookie()

  • 添加COOKIE值
    setcookie('下標','值','有效時間','有效作用域 / 表示當前作用域下');

  • 修改COOKIE值
    setcookie('下標','新值','新的有效時間','有效作用域');

  • 刪除COOKIE值
    setcookie('下標',null,'設置過期時間','有效作用域');

  • 查看COOKIE值
    cookie所有的值都是使用於系統提供的$_COOKIE預定義數組,所有的cookie設置的值都會成為該數組的一個元素。
    查看cookie值可以使用var_dump()或者print_r()
    如果使用特點的COOKIE的值: $_COOKIE['下標'];

  • $_COOKIE是一個可以跨頁面的系統預定義變量。

  • $_COOKIE在設置當前頁面是無法讀取信息的(當前設置cookie頁面打印cookie時出不來)

  • COOKIE的缺點。

    1. 它必須依賴於客戶端允許(客戶端可以關閉COOKIE)
    2. 相對不安全,COOKIE信息容易洩露

小練習

首先我們創了一個 login.html

<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>文檔</title>
</head>
<body>
<form action="login.php" method="post">
用戶名:<input type="text" name="name" id=""><br/>
密碼:
<input type="password" name="pwd" id=""><br/>
<input type="submit" value="登錄">
</form>
</body>
</html>

有了一個登入的html檔案,那接下來我們要一個判斷登入的檔案 login.php
這邊我們要設置我們的Cookie,使用這個Cookie判斷, 然後跳轉到index.php,如果判斷失敗也可以做一些處理這邊就沒寫上了。

<?php
//var_dump($_POST);
	if($_POST['name'] == 'winnie' && $_POST['pwd'] == 'admin'){
		//製作Cookie
		setCookie('islogin',true,time()+3600,'/');
		setCookie('name',$_POST['name'],time()+3600,'/');
		setCookie('pwd',$_POST['pwd'],time()+3600,'/');
		//var_dump($_COOKIE);
		//登錄成功
		echo '<script>alert("登錄成功");location="./index.php"</script>';
	}else{
		//登錄失敗跳轉註冊頁面
	}

接下來我們設好我們的Cookie後,成功我們就可以跳轉到index.php
index.php

<?php
var_dump($_COOKIE);
	//這是首頁
	if(isset($_COOKIE['islogin']) && $_COOKIE['islogin'] == true){
		
		//代表用戶已經登錄 

		echo '親愛的小可愛'.$_COOKIE['name'].'會員,歡迎您回來<br/>';

		echo '<a href="a.php">去a頁面</a><br/>';
		echo '<a href="b.php">去b頁面</a><br/>';
		echo '<a href="c.php">去c頁面</a><br/>';
	}else{
		//用戶沒有登錄
		echo '對不起,您無權訪問3S後自動跳轉到登錄頁面';
		echo '<meta http-equiv="refresh" content="3;url=./login.html">';
	}

接著做好後我們可以來做abc頁面~~ 這個我們明天完成他,還有logout消除Cookie。


上一篇
Day25 來人上菜! 給我來點Cookie and Session
下一篇
Day27 Cookie 的使用-2
系列文
PHP 語法通關30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言