close

Session的意義

      一個session 代表使用者開啟Browser連線網站,一直到關閉流覽器的工作期間。

     

在這個期間不論使用者瀏覽該網站的任何網頁,甚至離開網站後又回來,對於該網站而言都是同一個Session

     

不過,只要重新開啟Browser,便是一個新的Session,所以即使是同一使用者開啟兩個Browser連接同一網站,將被視為兩個獨立的Session

 

當網頁程式使用Ssssion技術儲存狀態或資料時,不論是否相同頁面,只要在同一個Session內即可存取同一份資料。

 

      若是不同Session,就算在同一部PC,使用相同的Browser,連接相同的網頁,讀寫同一名稱資料,其所存取的仍是兩分獨立不同狀態的資料。

 

 

 

      Session 的運作原理 (Session 是一種將資料記錄於Server的技術)

 

 

 

 

 

Session 的運作原理
 

      一般情況下,SessionID會放在沒有到期日的cookie內,但是其他Session資料都會存在Server上,所以同一個網站的相同與不同網頁之間,可以藉由Cookie掌握同一個SessionID,進而存取相同的資料;不過,因為cookie沒有到期日,代表在關掉browser的時候會自動刪除,因此關閉browser後重新連到該網站,所得到的sessionID,就會是一個新的值。

 

 

Sample:


<?php

       

      $SESSION['last']  = 'Eric' ;

      $SESSION['first'] = 'Peng' ;

      echo 'username: ' ;

     

      echo $SESSION['last'] ;

      echo $SESSION['first'];

 

?>

 

 

 

存取Session

      執行Session_start後,就可以用內部變數 $_SESSION[] 建立、修改Session變數。

 

語法 :

             $_SESSION[‘Name’] = value ;

             Name : 變數名稱

             Value : 變數的值

 

刪除Session

      刪除所有Session : session_unset();

      刪除單一指定    : unset($_SESSION[‘name’] );

 

指定SessionID和印出sessionID

 

      印出: echo session_id();

      指定 session_id(‘ xxxxxxxxx ‘) ; //xxxxxxxx = session id

 

 

 

Session的有效時間

      前面提到一個Session代表Browser開啟到關閉為止的工作時間,所以理論上,只要不關閉Browser,就可以一直保有同一份Session資料;不過實際上,在PHP中,Session的有效時間並沒有那麼長,根據php.ini檔內的設定,預設會自動刪除超過24分鐘沒有存取握的session資料,所以如果使用者的browser長達24分鐘沒有洞做,session資料就會被自動刪除。

arrow
arrow
    全站熱搜

    Eric 發表在 痞客邦 留言(0) 人氣()