PHP Session與Cookie區別小結

大家都知道,如果想將客戶唯一標識並將其進行保存的方法分爲:Cookie(餅乾)Session(訪問)。

但是對於SessionCookie的區別到底是在什麼方面呢?

我搜索了一下網絡上較流行的說法總結起來,即:Session爲服務器存儲Cookie爲客戶端存儲。

是,對於SessionCookie來說最大的區別在此,但是對於區別到底在哪裏呢?以下就是我所根據代碼及相關理解所整理的。

代碼:

A1.php

<?php

function CookiesTest($newValue){

              if(!isset($_COOKIE["CookiesTest"])){

                            setcookie('CookiesTest',$newValue,time() + 3600);

                            echo "CookieValue:".$_COOKIE["CookieValue"];

              }

}

function SessionTest($newValue){

              if(!session_is_registered('SessionTest')){

                            session_register("SessionTest");

              }

}

CookiesTest("HelloCookies!");

SessionTest("HelloSession!");

echo "CookieValue:".print_r($_COOKIE)."<br>";

echo "CookieValue:".$_COOKIE["CookiesTest"]."<br>";

$SessionTest = "dd";

echo $SessionTest;

echo $_SESSION["SessionTest"];

?>

A2.php

<?php

//session_start();

echo $_SESSION["SessionTest"];

echo $CookiesTest;

?>

Cookie

1)用來存儲連續訪問一個頁面時所使用。(即,對地Cookie的值不是真正意義上的全局變更的概念,即,對於A1.php來說通過調整$_COOKIE[“XX”]可以調用相應的Cookie值,但是如果再打開一個A2.phpIE遊覽器,再取該Cookie值時就取不出來了!因此對於Cookie來說並不是實際意義上的全局概念。)

2Cookie是存儲在客戶端,對於Cookie來說是存儲在用戶WINTemp目錄中的。

Session:(一種特殊的Cookie,當Cookie被禁時Session也會被禁,但是對於Session可以通過重定向的方式重新獲得)

1)可以用來存儲用戶全局的唯一變量。對於Session來說可以通過Session_start()重新定向並獲得Session的值並進行操作且並不分瀏覽是否被重複打開。如上面的A1.php進行了Session的操作,如果再打開一個IE後使用Sessoin_start();Session相應的變量又會被重新啓用,即實現了真正意義的全局及唯一。

2)對於Session來說是存儲在服務器上的php指定的目錄中的(session_dir)的位置進行的存放。以上就是我對SessionCookie的認識,希望大家批評指正。

發佈了46 篇原創文章 · 獲贊 8 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章