PHP中如何完成Session的設置、獲取和刪除

本篇內容介紹了“PHP中如何完成Session的設置、獲取和刪除”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

創新互聯公司成立與2013年,先為漳州等服務建站,漳州等地企業,進行企業商務咨詢服務。為漳州企業網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。

PHP中如何完成Session的設置、獲取和刪除

在之前的文章中,我們介紹了客戶端用來儲存用戶數據的cookie,本篇我們來看一下在PHP中占有非常重要地位的session,session是一種服務器端的機制,也是用來保存信息的,相比于保存在客戶端的cookie,保存在服務器端的session用戶是無法禁用的,同一個客戶端每次和服務端交互時,不需要每次都傳回所有的cookie值,只需要傳回一個ID就可以了,這個ID是第一次訪問服務器的時候生成的,并且是唯一的。

那接下來就來看一看到底什么是session,應該怎樣去設置、獲取和刪除session吧

什么是session

session中文意思是會話,它用來儲存使用者的相關資料的,這與cookie類似,例如用戶名、個性化設置等等,與cookie不同的是,cookie是將資料保存在客戶端的電腦中,用戶可以禁用;而session是將數據保存在服務器系統下。網頁是無狀態的程序連接,無法記錄用戶的狀態,因此通過session來記錄用戶的相關信息就顯得尤為重要。

當開啟一個session是,PHP會隨機的創建一個sessionID,每個用戶的sessionID是唯一的。這個sessionID在客戶端與服務器端都會有保存的位置,保存在客戶端會使用cookie的指定目錄里;在服務器端回憶文本的形式保存到指定的session目錄里。

與cookie相比,session是有很多優勢的:

因為session的數據不會在客戶端與服務器端來回的反復傳遞,所以通常情況下session還是更安全的;session能夠存儲的信息比cookie要多很多;用戶可以禁用cookie,但是有方法能夠是session正常工作。

了解了什么是session后,接下來看一看應該怎樣去開啟session。

開啟session

不同于cookie,使用cookie可以直接創建,而在使用session之前必須先啟動,目的是為了讓PHP中的核心程序能夠將session相關的內建環境預先加載到內存中。

在PHP中通過session_start()函數可以實現開啟session的目的,函數session_start()的語法格式如下:

session_start ([array $options = array()])

其中需要注意的是:

$options是一個可選函數,是一個關聯數組,并且這個數組中的鍵不需要包含session.前綴。

示例如下:

<?php
    session_start([
        'cookie_lifetime' => 60*60*24,  // 設置 cookie 的有效時間為 1 天
    ]);
    echo 'Session ID 為:'.$_COOKIE['PHPSESSID'];
?>

輸出結果:

PHP中如何完成Session的設置、獲取和刪除

需要注意的是:調用 session_start() 函數會生成一個唯一的 Session ID,并保存在瀏覽器的 Cookie 中,默認名稱為“PHPSESSID”。同時,在本地目錄中生成一個以“sess_”加上 Session ID 組成的 Session 文件,用來存儲 Session 中的數據,輸出結果:

PHP中如何完成Session的設置、獲取和刪除

通過上述實例,已經了解到了應該怎樣去開啟session,那接下來看一下應該怎樣去設置和獲取session

設置和獲取session

在上文中,啟動了session之后,想要使用session變量,還需要經過設置和獲取session中的數據,想要完成這些還需要通過$_SESSION數組來完成。使用$_SESSION之前必須要先試用session_start()函數來開啟session才可以。

$_SESSION 為一個關聯數組,和普通關聯數組鍵值對的含義相同。設置 Session 的語法格式如下:

$_SESSION[名稱] = 值;

示例如下:

<?php
    session_start();
    $str = '好好學習';
    $arr = ['Session','$_SESSION'];
    $_SESSION['study']  = $str;
    $_SESSION['study1']   = '天天向上';
    $_SESSION['title'] = $arr;
    foreach ($_SESSION as $key => $value) {
        if(is_array($value)){
            echo $key.':';
            print_r($value);
        }else{
            echo $key.' = '.$value.'<br>';
        }
    }
?>

輸出結果:

PHP中如何完成Session的設置、獲取和刪除

運行后需要注意的是:會將這幾個變量或數組保存到 $_SESSION 中,還會被保存到服務器端由“sess_”和 Session ID 所命名的文件中,這個文件的位置可以通過修改 php.ini 配置文件或使用 session.save_path 配置。

上文中已經了解了怎樣開啟、設置和獲取session,接下來看一下應該怎樣刪除session。

刪除單個session

刪除單個session元素需要通過unset()函數,該函數可以釋放指定的變量,相當于直接注銷掉數組中的元素,他的語法格式如下:

unset(mixed $var [, mixed $...])

其中需要注意的是:

$var 為要釋放的變量,unset() 函數可以接收多個參數,參數之間使用,分隔。

實例如下:

<?php
    session_start();
    echo '<pre>';
    $str = '好好學習';
    $arr = ['刪除 Session','$_SESSION'];
    $_SESSION['study']  = $str;
    $_SESSION['study1']   = '天天向上';
    $_SESSION['title'] = $arr;
    echo '定義一個 Session,如下所示:<br>';
    print_r($_SESSION);
    echo '刪除 Session 中名為 title 的元素:<br>';
    unset($_SESSION['title']);
    print_r($_SESSION);
?>

輸出結果:

PHP中如何完成Session的設置、獲取和刪除

如此便通過unset()函數完成了刪除session單個元素了。

刪除session多個元素

如果想要一次性刪除多個 Session 元素,即一次注銷所有的會話變量,可以通過將一個空的數組賦值給 $_SESSION 來實現

實例如下:

<?php
    session_start();
    echo '<pre>';
    $str = '好好學習';
    $arr = ['刪除 Session','$_SESSION'];
    $_SESSION['study']  = $str;
    $_SESSION['study1']   = '天天向上';
    $_SESSION['title'] = $arr;
    echo '定義一個 Session,如下所示:<br>';
    print_r($_SESSION);
    echo '刪除 Session 中名為 title 的元素:<br>';
    $_SESSION = array();
    print_r($_SESSION);
?>

通過將一個空的數組賦值給 $_SESSION 輸出結果:

PHP中如何完成Session的設置、獲取和刪除

還有一種方法就是通過session_unset() 函數來釋放session中的所有元素,實例如下:

<?php
    session_start();
    echo '<pre>';
    $str = '好好學習';
    $arr = ['刪除 Session','$_SESSION'];
    $_SESSION['study']  = $str;
    $_SESSION['study1']   = '天天向上';
    $_SESSION['title'] = $arr;
    echo '定義一個 Session,如下所示:<br>';
    print_r($_SESSION);
    echo '刪除 Session 中名為 title 的元素:<br>';
    session_unset();
    print_r($_SESSION);
?>

輸出結果與上述實例的結果相同,由此我們便通過兩種方法可以刪除session多個元素了。

“PHP中如何完成Session的設置、獲取和刪除”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注創新互聯網站,小編將為大家輸出更多高質量的實用文章!

分享標題:PHP中如何完成Session的設置、獲取和刪除
地址分享:http://m.kartarina.com/article34/jeoppe.html

成都網站建設公司_創新互聯,為您提供全網營銷推廣電子商務虛擬主機企業網站制作網站建設ChatGPT

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都做網站
主站蜘蛛池模板: 少妇人妻无码精品视频app| 永久免费av无码网站韩国毛片| 亚洲AV无码第一区二区三区| 中文字幕av无码不卡| 国产午夜精品无码| 无码一区二区三区亚洲人妻| 亚洲国产精品无码久久久蜜芽 | 亚洲av无码片在线观看| 无码夜色一区二区三区| 毛片无码免费无码播放| 国产成人无码精品久久久露脸| 无码国产精品一区二区免费16| 精品无码一区二区三区水蜜桃| 亚洲heyzo专区无码综合| 少妇人妻偷人精品无码视频新浪| 国产在线无码精品无码| 亚洲精品无码av中文字幕| 久久久g0g0午夜无码精品| 久久亚洲AV无码精品色午夜| 久久久久亚洲AV片无码| 亚洲午夜国产精品无码老牛影视| 精品人妻少妇嫩草AV无码专区 | 久久亚洲AV成人无码国产电影| 亚洲AV成人无码久久精品老人| 国产成人无码18禁午夜福利p | 中文字幕无码av激情不卡| 免费无码看av的网站| 一级片无码中文字幕乱伦| 国产午夜无码片免费| 日韩精品真人荷官无码| 亚洲日韩精品无码专区加勒比| 成人麻豆日韩在无码视频| 免费无码一区二区三区蜜桃| 国产成年无码久久久久毛片| 精品爆乳一区二区三区无码av | 亚洲精品天堂无码中文字幕| 国产精品无码久久久久久久久久| 亚洲动漫精品无码av天堂| 无码Aⅴ在线观看| 无码av最新无码av专区| 亚洲国产精品无码AAA片|