PHP的會話處理函式session

2022-02-09 04:02:59 字數 2242 閱讀 7687

當執行乙個應用程式時,你會開啟它,做些更改,然後關閉它。這很像一次會話。計算機清楚你是誰。它知道你何時啟動應用程式,並在何時終止。但是在網際網路上,存在乙個問題:伺服器不知道你是誰以及你做什麼,這是由於 http 位址不能維持狀態。

通過在伺服器上儲存使用者資訊以便隨後使用,php session 解決了這個問題(比如使用者名稱、購買商品等)。不過,會話資訊是臨時的,在使用者離開**後將被刪除。如果需要永久儲存資訊,可以把資料儲存在資料庫中。

session 的工作機制是:為每個訪問者建立乙個唯一的 id (uid),並基於這個 uid 來儲存變數。uid 儲存在 cookie 中,亦或通過 url 進行傳導。

1. 開始會話

在把資訊儲存到session之前,首先要開啟會話。php提供了session_start()函式來開始或者繼續乙個會話。定義:

1 bool session_start( void )

呼叫如下:

1

<?

php session_start();

?>

2<

html

>

3<

body

>

body

>

4html

>

注意:(1)session_start()函式必須位於標籤之前,也就是該函式必須在任何輸出前呼叫,常常在寫程式時不注意就多輸入了乙個空格或者回車,這時就會報錯。應特別注意這一點。(我可是被坑過)

(2)無論有沒有成功建立會話,session_start()函式都會返回true,因此使用任何異常處理都不起作用。

(3)還可以啟用配置指令session.auto_start,從而不必執行這個函式,但是這樣的話,每個php頁面執行時都會開始或者繼續乙個會話。

2.儲存或者讀取會話

儲存和讀取session變數的正確方法是使用php的$_session變數。$_session是php提供的全域性引數,專門用來儲存和讀取session。(注意關聯陣列的鍵名和普通變數的命名規則一致)

儲存會話時,可以對其直接賦值。

1$_session[『season』] = '秋天';

以上設定了乙個鍵名為「season」的會話元素,其值為「秋天」。當讀取時,就像呼叫普通陣列元素一樣。

下面的兩段**顯示怎麼儲存並讀取乙個會話元素。

這是session1.php檔案:

1

<?php2/*

*3* created by phpstorm.

4* user: yuxiu

5* date: 2016/5/26

6* time: 14:117*/

8if(isset($_post['submit']))

15 ?>

16儲存會話17

18選擇需要設定的資料:

19

這是session2.php檔案:

1

<?php2/*

*3* created by phpstorm.

4* user: yuxiu

5* date: 2016/5/26

6* time: 14:137*/

8session_start(); //

建立或者繼續乙個會話

9$season = $_session['season']; //

讀取會話資料

1011

echo "讀取會話

";12

switch ($season

) 28 ?>

在session1.php中首先使用session_start()建立乙個會話,然後對提交的季節資料使用陣列賦值的方式儲存,最後使用header()函式直接跳轉到開始。在session2.php檔案中,也同樣需要session_start()函式繼續乙個會話並利用session陣列呼叫會話資訊。

3.銷毀會話

當會話不再被使用的時候,就需要人為的銷毀它,雖然php有自動銷毀會話的功能,但這樣會使程式的效率變低。可以使用unset()函式或者session_destroy()函式。

<?php

unset($_session['season']);

?>

或者:

<?php

session_destroy

(); //注意,使用這個函式將重置session陣列,即失去所有的已經儲存的session資料

?>

PHP處理會話函式1 session start

函式功能 開始乙個會話或者返回已經存在的會話。函式原型 boolean session start void 返回值 布林值 功能說明 這個函式沒有引數,且返回值均為true。最好將這個函式置於最先,而且在它之前不能有任何輸出,否則會報警,如 warning cannot send session ...

PHP的檔案處理函式

date 格式化乙個本地時間 time 返回當前時間的時間戳 file exists 檢查檔案或者目錄是否存在 file 把整個檔案讀入乙個陣列中 file get contents 把整個檔案讀入乙個字串 file put contents 將乙個字串寫入檔案 fopen 開啟檔案或者url fr...

php實現簡單的會話

使用會話的步驟如下 1.開始乙個會話 2.註冊會話變數 3.使用會話變數 4.登出變數並銷毀會話。page1.php 開始乙個會話 session start 註冊乙個會話變數 session sess var hello world 顯示會話內容 echo session sess var 的內容...