PHP中的會話控制—session和cookie(實現數據傳值功能)
1.session 登錄上一個頁面以後,長時間沒有操作,刷新頁面以後需要重新登錄。
特點:(1)session是存儲在服務器;
(2)session每個人(登陸者)存一份;
(3)session有默認的過期時間;(如果登錄的人過多,數據就會太多,由於存儲在服務器,會給服務器造成壓力,過一定的時間會清除掉)
(4)session裏面可以存儲任意類型的數據。
由以上特點可以總結出session的特點是比較安全。缺點是對服務器造成一定的壓力。
(5)當一個頁面需要使用session時,需要在頁面頂部加session_start();要在頁面最上面寫,前面不能出現任何代碼,代碼指的是PHP代碼,可以有HTML代碼。最好是養成習慣,把<?php session_start(); ?>寫在頁面的最頂部。一個頁面寫一次就可以。
(6)操作session。a.賦值。b.取值。
賦值:
<?php session_start();//session開始標簽,在最頂部寫。 ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>無標題文檔</title> </head> <body> <?php$_SESSION["uid"] = "zhangsan";//給$_SESSION["uid"]賦值。 ?> </body> </html>
取值:
取值可以在任意頁面取值,比如說做登錄頁面時,可以把登錄名、密碼名等信息賦值給 $_SESSION["uid"],在同一個瀏覽器上的其它頁面也可以取到登錄名、密碼名等的值,前提是賦值的頁面要先打開過,如果直接打開其它頁面取值,將無法取到。再就是關閉瀏覽器以後再打開,也要先打開賦值頁面,其它頁面才能取到值。
<?php session_start(); ?> <!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>無標題文檔</title> </head> <body> <?php echo $_SESSION["uid"] ?> </body> </html>
2.cookie
特點:(1)cookie存儲在客戶端,瀏覽器在清除瀏覽信息時會有cookie清除選項。
(2)cookie每人存一份。
(3)cookie沒有默認過期時間。
(4)只能存儲字符串。
由以上特點可以總結出cookie的特點是不安全,不會對服務器造成壓力。
沒有特殊要求的話session和cookie都可以使用,但是當涉及到安全性較高時,要選擇session。
PHP中的會話控制—session和cookie(實現數據傳值功能)