cookie與SESSIONID
阿新 • • 發佈:2018-12-05
cookie,session的介紹:https://blog.csdn.net/xybelieve1990/article/details/49948795
setcookie()函式注意點:
①如果只給了鍵不給值,那麼就是在刪除改鍵。
②cookie的設定是有覆蓋性的。但是,想要替換掉cookie的成員,不僅鍵要相同,作用域也要相同,如果不同就會另外新增新的成員來存放資料,如下圖:
還有一點要注意,setcookie()預設的path引數是檔案當前的資料夾,但是有些不一樣(見上圖第三項是預設值),和我們自己設定的差了末尾的斜槓‘/’。PS:去掉斜槓我也不懂具體是什麼情況,但是它們兩之間在獲取值的優先順序上差別很大。
那麼問題來了,我們獲取$_COOKIE['a']的時候到底是什麼值?
經過多種實驗得出:取值的優先順序和函式巢狀類似,越靠近的那一層最先獲取。而路徑末尾缺少斜槓的優先順序介於前後兩者之間。即:/</web</web/</web/con</web/con/。
取值的時候就是按照這個優先順序來確定的。
③想要手動設定cookie覆蓋session_start()設定的cookie,一定要注意作用域要相同,否則是無法覆蓋,刪除的。
例如:客戶端cookie已經有了PHPSESSION(由session_start()設定的),想要刪掉:
錯誤:setcookie('PHPSESSID');
正確:setcookie('PHPSESSID',null,0,"/");
總之,cookie的修改必須是鍵,和作用域都相同才行。