PHP會話控制考察點

為什么要使用會話控制技術

HTTP協議是無狀態的,也就是說HTTP沒有一個內建的機制來維護兩個事務之間的狀態。當一個用戶完成一個請求發起第二個請求的時候,服務器無法知道這次請求是來自于上一次的客戶。而用戶登錄、購物車等,這些是需要服務器能夠保存用戶的狀態的。會話技術就是用來完成這件事的。其思想是允許服務器跟蹤客戶端做出的連續請求。

會話控制技術的實現方式

通過GET參數傳遞

在get里面把狀態傳遞到下一頁

使用get參數傳遞不安全而且不穩定,不建議使用

Cookie本質上是服務器發送給客戶端的片段信息,存儲在客戶端瀏覽器的內存或者是硬盤中的技術。

  • Cookie的寫入操作
    setcookie($name,$value,$expire,$path,$domain,$secure)
  • 讀取Cookie
    $_COOKIE數組
  • 刪除Cookie
    刪除cookie不能使用unset,因為$_COOKIE是只讀的。要想刪除,只需要讓其過期就就行:
    setcookie($name,'',time()-1000)
  • Cookie的優缺點
    • 優點:存儲在客戶端,不會占用服務器的資源
    • 缺點:信息保存在客戶端,安全性得不到保障,而且用戶可以關閉cookie。

Session

Session將數據保存在服務器上,相比cookie更加安全。
session并不是完全脫離cookie,他是基于cookie的(需要將sessionid保存在客戶端,如果cookie被禁用,可以通過url來傳遞sessionid)

  • session 的操作
    1. session_start();//要使用之前一定要開啟
    2. 然后直接操作$_SESSION數組
    3. 要刪除,直接賦空數組:$_SESSION = [];
    4. 如果想刪除文件,則使用session_destroy();//同時會刪除對應session的cookie
  • session 配置(php.ini)
    1. session.auto_start
    2. session.cookie_domain
    3. session.cookie_lifetime
    4. session.cookie_path
    5. session.name
    6. session.save_path
    7. session.use_cookies
    8. session.use_trans_sid
    9. session.gc_probability
    10. session.gc_divisor
    11. session.gc_maxlifetime
    12. session.save_handler
  • session的優缺點
    • 優點:信息安全
    • 缺點:占用服務器的資源,分布式不方便
  • 傳遞sessionid
    如果cookie被禁用,那么可以通過get來傳遞sessionid:

"xxx.php?<?php echo session_name().'='.session_id();  ?>"//通過session_name()和session_id()來拼接"xxx.php?<?php echo SID; ?>"//SID常量在cookie開啟的時候為空,在cookie被禁用的時候是session_name()和session_id()拼接的樣子
  • session 的存儲

    session_set_save_handler()函數可以將session存儲在服務器上(mysql Memcache redis等)

轉載于:https://www.cnblogs.com/clannadxr/p/7723309.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/287434.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/287434.shtml
英文地址,請注明出處:http://en.pswp.cn/news/287434.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

數據庫SQL語句學習筆記(6)-使用函數處理數據

1.SQL也可以用函數來處理數據&#xff0c;函數一般是在數據上執行的&#xff0c;為數據的轉換和處理提供了方便。但是每一個數據庫管理系統&#xff08;DBMS&#xff09;都有特定的函數&#xff0c;事實上&#xff0c;只有少數幾個函數被所有的DBMS等同地支持。例如&#xff0c…

java3n 1_1005 繼續(3n+1)猜想(JAVA)

卡拉茲(Callatz)猜想已經在1001中給出了描述。在這個題目里&#xff0c;情況稍微有些復雜。當我們驗證卡拉茲猜想的時候&#xff0c;為了避免重復計算&#xff0c;可以記錄下遞推過程中遇到的每一個數。例如對 n3 進行驗證的時候&#xff0c;我們需要計算 3、5、8、4、2、1&…

【遙感物候】Matlab求解一元六次多項式,計算植被生長季始期

一元六次多項式能很好的逼近濾波后的曲線,與二次多項式相比,在擬合植被整個生長季曲線方面有更好的優勢,該方法常用來描述北方溫帶和高緯度地區時序NDVI生長季模式。因此,本文使用一元六次多項式來擬合植被整個生長季曲線,效果很好。那么擬合后,這樣解方程呢求生長季參數…

Android之給控件添加水紋波效果

1 問題 給控件添加水紋波效果&#xff0c;點擊起來像點中了&#xff0c;不然效果太粗糙了&#xff0c;沒反應。 2 實現 給控件添加如下屬性 android:background"?android:attr/selectableItemBackground"波紋有邊界 android:background"?android:attr/sele…

《看聊天記錄都學不會C語言?太菜了吧》(1)我在大佬群里問基礎問題沒人理?

若是大一學子或者是真心想學習的小伙伴可以私聊我&#xff0c;若你是真心學習可以送你書籍&#xff0c;指導你學習&#xff0c;給予你目標方向的學習路線&#xff0c;無套路&#xff0c;博客為證。 本系列文章將會以通俗易懂的對話方式進行教學&#xff0c;對話中將涵蓋了新手…

個人博客作業_week2

1. 是否需要有代碼規范 1.這些規范都是官僚制度下產生的浪費大家的編程時間、影響人們開發效率&#xff0c;浪費時間的東西。 我不同意這個論點。 有句俗語’無規矩不成方圓‘&#xff0c;這亙古傳承的至理同樣適用于寫代碼。制定代碼撰寫規范并不是 迫于壓力完成上級的任務&am…

最全面透徹的RabbitMQ指南

概念RabbitMQ是實現了高級消息隊列協議&#xff08;AMQP&#xff09;的開源消息代理軟件&#xff08;亦稱面向消息的中間件&#xff09;。RabbitMQ服務器是用Erlang語言編寫的&#xff0c;而集群和故障轉移是構建在開放電信平臺框架上的。所有主要的編程語言均有與代理接口通訊…

TensorFlow中RNN實現的正確打開方式

上周寫的文章《完全圖解RNN、RNN變體、Seq2Seq、Attention機制》介紹了一下RNN的幾種結構&#xff0c;今天就來聊一聊如何在TensorFlow中實現這些結構&#xff0c;這篇文章的主要內容為&#xff1a; 一個完整的、循序漸進的學習TensorFlow中RNN實現的方法。這個學習路徑的曲線較…

【遙感物候】Hants NDVI時間序列諧波分析法數據重構,植被生長季曲線效果可佳(附Hants軟件下載)

NDVI時間序列諧波分析法(Harmonic Analysis of NDVI Time-Series)(簡稱Hants )對時間序列數據進行平滑。該方法是一種新的物候分析方法,可用于定量化的監測植被動態變化。其核心算法是傅里葉變換和最小二乘法擬合, 即把時間波譜數據分解成許多不同頻率的正弦曲線和余弦曲線,…

Android之在Java socket作為服務器里面返回數據頭部怎么寫入瀏覽器需要下載文件的文件名

1 問題 Android app里面寫了一個Java socket的簡單服務器,在瀏覽器里面輸入相應的IP和端口訪問服務器下載文件,Java socket怎么寫返回數據的頭部信息,瀏覽器才知道需要下載文件的名字呢? 2 關于Content-Disposition 在常規的HTTP應答中,Content-Disposition 響應頭指示回…

java中hasnext的作用_java中Scanner的hasNext()的疑問

第一個問題&#xff0c;兩段代碼的區別在于阻塞的位置不同&#xff0c;加上一行輸出代碼就可以很明顯地看到差別。Test.javaimport java.util.Scanner;public class Test {public static void main(String[] args) {Scanner s new Scanner(System.in);while(s.hasNext()){Syst…

《看聊天記錄都學不會C語言?太菜了吧》(2)我說編程很容易你們不服?

若是大一學子或者是真心想學習剛入門的小伙伴可以私聊我&#xff0c;若你是真心學習可以送你書籍&#xff0c;指導你學習&#xff0c;給予你目標方向的學習路線&#xff0c;無套路&#xff0c;博客為證。 本系列文章將會以通俗易懂的對話方式進行教學&#xff0c;對話中將涵蓋…

ABAP的自學之路 ,初步認識ABAP 一

由于工作的關系&#xff0c;最近需要對SAP系統進行二次開發&#xff0c;于是開始學習ABAP。鑒于網上對于ABAP的資料少之又少&#xff0c;所以自己整理一些資料。 第一章 ABAP 開發環境和總體介紹1.1 ABAP 開發環境ABAP 開發的三種環境&#xff1a;&#xff08;1&#xff09;SAP…

LCD1602,4位數據總線液晶屏時鐘,STC12C5A60S2的10位ADC功能程序

/* 程序名&#xff1a;    LCD1602&#xff0c;4位數據總線液晶屏時鐘&#xff0c;STC12C5A60S2的10位ADC功能程序 編寫時間&#xff1a;  2015年10月4日 硬件支持&#xff1a;  LCD1602液晶屏 STC12C5A60S2 外部12MHZ晶振 接線定義&#xff1a; DB7 --> P1^7DB6…

WPF|黑暗模式的錢包支付儀表盤界面設計

收集下大家的意見&#xff0c;是否需要在文中貼上源碼&#xff08;文末會給出源碼鏈接&#xff09;&#xff0c;請大家踴躍留言。閱讀目錄效果展示準備簡單說明 源碼結尾&#xff08;視頻及源碼倉庫&#xff09;1. 效果展示欣賞效果&#xff1a;2. 準備創建一個WPF工程&#x…

量子計算機的現狀和趨勢

量子計算機概述 計算機是一種新型的運算 它具有具有強大的并行處理數據的能力&#xff0c;可解決現有計算機難以運算的數學問題。因此&#xff0c;它成為世界各國戰略競爭的焦點。 量子計算機的優勢 量子計算機與現有的電子計算機以及正在研究的光計算機&#xff0c;生物計算機…

【空間數據庫】Windows操作系統PostgreSQL+PostGIS環境搭建圖文安裝教程

PostgreSQL是一種特性非常齊全的自由軟件的對象-關系型數據庫管理系統(ORDBMS),PostgreSQL支持大部分的SQL標準并且提供了很多其他現代特性,如復雜查詢、外鍵、觸發器、視圖、事務完整性、多版本并發控制等。同樣,PostgreSQL也可以用許多方法擴展,例如通過增加新的數據類…

Android之gravity=“center_vertical“和layout_gravity=“center“的效果

1、兩控件分別加上2個下面的屬性 gravity="center_vertical" android:layout_gravity="center" 代碼如下 <LinearLayoutandroid:id="@+id/ll_no_love"android:layout_width="match_parent"android:layout_height="match…

《看聊天記錄都學不會C語言?太菜了吧》(3)人艱不拆,代碼都在談戀愛?!

若是大一學子或者是真心想學習剛入門的小伙伴可以私聊我&#xff0c;若你是真心學習可以送你書籍&#xff0c;指導你學習&#xff0c;給予你目標方向的學習路線&#xff0c;無套路&#xff0c;博客為證。 本系列文章將會以通俗易懂的對話方式進行教學&#xff0c;對話中將涵蓋…

spark java 計數_spark程序——統計包含字符a或者b的行數

本篇分析一個spark例子程序。程序實現的功能是&#xff1a;分別統計包含字符a、b的行數。java源碼如下&#xff1a;package sparkTest;import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaRDD;import org.apache.spark.api.java.JavaSparkContext;import…