PHP Cookie.

Slides:



Advertisements
Similar presentations
分享人:張益源. 個人資料介紹 姓名:張益源 畢業:體育系 97 級 專長:田徑、籃球、游泳 任教學校:慈濟大學實驗國民小學 學校職務:體育兼資訊老師.
Advertisements

第四章 衛生保健及急救 組員: 4990U002 何易芳 4990U021 張書涵 4990U035 沈采柔 4990U036 王孜瑜 4990U039 許佳靜 4990U043 黃懿華 4991U002 柳瑋翎 4991U008 陳禹伶 第五組.
第四週課程 1 (10/10~10/16) 如何建立資料. 原始資料範例 a1~a5 表示選擇題,輸入原始答案,如 A 、B、C、D b1~b5 表示填充題, c1~c5 表示計算題,輸入得分.
報告人:教育部會計處處長 黃 永 傳 日 期:103 年12 月27 日
第八章 Session與Cookie.
2015年重点税源企业 报表填报流程培训会 海淀地税局 收入核算科.
法 在 身 边 杜绝不良行为,远离违法犯罪 —— 走好青春第一步.
农行签约前准备 1、农行签约之前需登录农行网站-电子银行-安全专区-安全工具-K宝-K宝驱动,确保电脑已经安装农行K宝驱动.
LearnMode學習吧 行動學習 網站註冊程序 長榮中學 電腦中心 製.
網頁狀態管理 ― Cookie 與 Session
分析测试中心实验仪器 预约指南v1.0 合肥工业大学分析测试中心
考 試 院 第五組 組員: 廖巧綺 李亦嬋 劉小梅
無線寬頻分享器設定範例 銜接硬體線路 推斷無線基地台的IP 設定無線基地台 相關觀念解釋.
第 1 章 使用 APP INVENTOR 2 開發 ANDROID APP
Windows 2003 Server FTP站台的架設
PHP +MySQL快速入門 Lesson 4.
臺北市立大學 資訊科學系(含碩士班) 賴阿福
PHP與MySQL連結 大葉大學 資工系 黃鈴玲.
TCP協定 (傳輸層).
第一篇 Unix/Linux 操作介面 第 1 章 Unix/Linux 系統概論 第 2 章 開始使用 Unix/Linux
客戶端的檔案上傳 HtmlInputFile檔案控制項 上傳單一檔案 同時上傳多個檔案.
Cookie 存取Cookie Cookie有效時間 Session 存取Session session 函數
101北一女中 資訊選手培訓營 妳不可不了解的指標 Nan.
Working with Databases (II) 靜宜大學資管系 楊子青
Google Data API Spreadsheet
進階 WWW 程式設計 -- PHP Regular Expression 靜宜大學資訊管理學系 蔡奇偉副教授 2004
PHP5與MySQL5 入門學習指南 凱文瑞克 著 第 18 章 Cookie和 Session.
SQL Stored Procedure SQL 預存程序.
CHT IPv6測試 D-Link Taiwan 友訊科技台灣分公司 TTSS 電信技術支援課 Name:
安裝JDK 安裝Eclipse Eclipse 中文化
網頁切換移轉 JS vs. ASP.NET.
張智星 台大資工系 多媒體檢索實驗室 第九章 小餅乾(Cookies) 張智星 台大資工系 多媒體檢索實驗室.
檔案與磁碟的基本介紹.
FTP檔案上傳下載 實務與運用.
私立南山高中 信息組 電腦研習 電腦資料的備份 中華民國 99年4月20日 星期二.
網頁切換移轉 JS vs. ASP.NET.
DHCP for W2K.
驗證 Authentication.
Cookie 存取Cookie Cookie有效時間 Session 存取Session session 函數
表單(Form).
VS.NET 2003 IDE.
網路科技在商店經營管理之應用 第三章 osCommerce開始安裝 Ting-Yi Chang (張庭毅)
建立一 function s (type) 可以用來繪製cyclic-harmonic curves
UpToDate Anywhere 設定方法
PHP程式設計 Cookie & Session 建國技術學院 資訊管理學系 饒瑞佶.
Ch09 在網頁之間傳遞資訊 網頁程式設計.
表單(Form).
讓Emulator可以 使用Android Market
HTTP 1.1 Method OPTIONS GET HEAD POST PUT DELETE TRACE CONNECT
個人網路空間 資訊教育.
VS.NET 2003 IDE.
如何使用Gene Ontology 網址:
FTP使用教學 簡介: 軟體名稱:FileZilla 軟體性質:Freeware 版本: 繁體中文版
利用 EditorConfig 自訂文字編輯器設定
MiRanda Java Interface v1.0的使用方法
案件名稱: 資安預警通報 通報等級: 第一級 發生時間: 2019/02/24 03:53:28 案件說明:
陣列與結構.
編輯網頁可用那些應用程式? 記事本 Word FrontPage Dreamweaver.
研究生出国申请流程 学生使用手册.
基本指令.
1. 查詢個人電腦版本 1.進入控制台 2.點選“所有控制台項目” 3.點選“系統”.
Chapter 15 檔案存取 LabVIEW中的檔案存取函數也可將程式中的資料儲存成Excel或Word檔。只要將欲存取的檔案路徑位址透過LabVIEW中的路徑元件告訴檔案存取函數後,LabVIEW便可將資料存成Excel或Word檔;當然也可以將Excel或Word檔的資料讀入LabVIEW的程式中。
北一女中 資訊選手培訓營 妳不可不了解的指標 Nan.
如何從政大圖書館館藏目錄匯出書目至EndNote
班級:博碩子一甲 授課老師:鐘國家 助教:陳國政
Parasitics Extraction (PEX) 與 postsimulation(posim)
期末報告第一題 通訊四甲 B 湯智瑋.
Develop and Build Drives by Visual C++ IDE
CHT IPv6測試 D-Link Taiwan 友訊科技台灣分公司 TTSS 電信技術支援課 Name:
InputStreamReader Console Scanner
Presentation transcript:

PHP Cookie

Cookie 將少量資料儲存(by檔案)在遠端個人電腦的技術。 C:\Documents and Settings\電腦帳號\Cookies (Windows NT/2000/XP) 或 C:\Documents and Settings\帳號\Local Settings\Temporary Internet Files\ Cookie 的檔案名稱「可能」 是: tceb@km.tceb.edu[1].txt (就是 主機使用者帳號@網址.txt ) 它的內容可能是: phpbb2km_data       (cookie 名稱) s%3A0%3A%22%22%3B  (cookie 值) km.tceb.edu.tw/       (cookie 網域及路徑) 1536 16956672 29648268 4116192768 29574842 *

Cookie 使用者可以設定拒絕。 哪個瀏覽器設定的cookie,只能在該瀏覽器使用。 以IE為例 [工具]  [Internet選項]  [隱私]

Cookie的限制 每個使用者的瀏覽器只能支援(存取)300個Cookie 每個Cookie的大小最多僅4k Bytes的容量

Cookie的存取 設定: boolean setcookie (變數名,值,有效時間,路徑,領域,安全性) Setcookie(“A”, 10); Setcookie(“B”,”20”,time()+3600); Setcookie(“C”,”hello”,time()+7200,”./test/”,”abc.def.tw”,1); 必須在任何輸出前設定cookie 取出: $_COOKIE陣列 範例18-1 + 18-2

Cookie的存取 哪個瀏覽器設定的cookie,只能在該瀏覽器使用。否則要設定有效時間。 time()+3600 mktime(時,分,秒,月,日,年) 可以用來刪除cookie 範例18-4

PHP Session

Session 將資料儲存在伺服器的技術。 檔案位置 Session是將使用者資訊儲存在Server 端暫存檔中,儲存的位置是依照 php.ini 的設定: session.save_path = /tmp Session 的檔案名稱「可能」是 : sess_3dd484f2bab6a2d2509e9850dae3b897 (就是 sess_ 開頭,加上 32字元的亂數雜湊編碼所組成的檔名) 它的內容可能是: check|s:3:"yes";var1|s:1:"4";var2|s:1:"5"; 其實PHP的Session內容就是「變數名稱|變數類型:長度:內容;」的組合

Session 每次連線都有一個session id 要啟動才可以使用。 php.ini中的session.auto_start參數需設定為1 針對$_SESSION、$HTTP_SESSION_VARS而言 Session_start() 變數需要先註冊 Session_register(變數名) Session_unregister(變數名) $_SESSION陣列存取 所有的session放在session.save_path目錄中(php.ini) 範例18-5, 18-6

Session 使用Session時,有三個程序: 第一:啟動session功能 ─ 使用 session_start( ) 函數 第二:註冊session變數 ─ 使用 session_register( ) 函數     (或用$_SESSION、$HTTP_SESSION_VARS ) 第三:清除session變數或檔案 ─ 使用 session_unregister( )或 session_destroy( )函數 取得 session 的id值(與session檔案名稱,就是sess_後面接的32字元) ─ 使用 session_id ( )函數 查看要傳遞的變數是否已被註冊 ─ 使用 session_is_registerd( ) 函數

Session register <?php /*註冊session的變數名稱 abc,並將值置入。注意,在session_register( ) 函數內,註冊的是名稱的「字串」,不用加「$」。 */ $abc = "最原始的方法"; session_register("abc"); //這是利用所謂_SESSION方式註冊變數名稱「 xyz 」及值。 $_SESSION["xyz"] = "第二種方法"; //這是利用所謂HTTP_SESSION_VARS方式註冊變數名稱「 third 」及值。 $HTTP_SESSION_VARS["third"] = "第三種方法"; ?> 請特別注意,如果在session_register( )函數前沒有使用 session_start( )來啟動時,會自動呼叫 session_start( );而 $_SESSION 及 $HTTP_SESSION_VARS 方式並不會呼叫 ,須在使用前事先 session_start( ) 才有作用。

Session unregister <?php session_start( ); session_unregister("abc"); //假設 $abc = "123“ ?> 注意:須先啟動session_start( )函數才可正常清除。

Session傳遞 (共用) 透過URLs (網址?PHPSESSID=3dd484f2bab6a2d2509e9850dae3b897) 如果php.ini將「session.use_trans_sid」設定為「0」 透過Cookie php.ini有將「session.use_trans_sid」設定為「1」

Session傳遞 aa.php <?php session_start(); //啟動 session echo '>>第一頁<<'; $_SESSION['color'] = '藍色'; $_SESSION['city'] = '台中市'; $_SESSION['time'] = date("Y年m月d日 H時i分s秒"); // 連結另一個php程式, // 如果可以使用 cookie方式, //注意這裡用單引號 echo '<br /><a href=“bb.php">第二頁(cookie)</a>'; // 如果需用利用url方式傳遞 echo '<br /><a href=“bb.php?'.SID. '">第二頁(URLs)</a>'; ?>

Session傳遞 bb.php <?php session_start(); echo '>>第二頁<< <br />'; echo $_SESSION['color']."<br>"; echo $_SESSION['city']."<br>"; echo date("Y年m月d日 H時i分s秒")." ==> ".$_SESSION['time']; // 如果需用傳遞回第一頁 echo '<br /><a href=“aa.php?'. SID . '">第一頁</a>'; ?>

Session destroy <?php //啟動session session_start( ); /*清除session檔裡所有的資料; 如果要使用session_destroy( )函數,這動作可有可無。 */ session_unset( ); //刪除session檔 session_destroy( ); ?> 注意:須先啟動session_start( )函數才可正常運作。

安全性 在使用者登入時,在session資訊中即加入使用者的IP,然後再不同程式啟動session的同時,也連帶檢查是否來自同一個IP,如果發現不同時,就拒絕使用,並立即刪除這個session的檔案。

安全性 Ch17-4-1.php <?php session_start(); //啟動 session echo ">>> 第 一 頁 <<< <br />"; if ( !empty($_SERVER["HTTP_X_FORWARDED_FOR"]) ) { echo "有經過期他代理主機:".$_SERVER["HTTP_X_FORWARDED_FOR"]; $temp_ip = split(",", $_SERVER["HTTP_X_FORWARDED_FOR"]); $user_ip = $temp_ip[0]; } else { $user_ip = $_SERVER["REMOTE_ADDR"]; } echo "<br /? 使用者IP : $user_ip "; session_register ("user_ip"); //注意這裡用單引號 echo '<br /><a href="ch17-4-2.php?'.SID.'">第二頁</a>'; ?>

安全性 Ch17-4-2.php <?php session_start(); //啟動 session echo ">>> 第 二 頁 <<< <br />"; if ( !empty($_SERVER["HTTP_X_FORWARDED_FOR"]) ) { $temp_ip = split(",", $_SERVER["HTTP_X_FORWARDED_FOR"]); $user2_ip = $temp_ip[0]; } else { $user2_ip = $_SERVER["REMOTE_ADDR"]; } echo "<BR />原來session的IP:".$_SESSION["user_ip"]; echo "<br />目前使用者IP : $user2_ip "; if ( $_SESSION["user_ip"] != $user2_ip ) { echo "您不是原來登入的IP,請正常登入!!<br>"; session_destroy (); } else { echo "OK! <br />"; } //注意這裡用單引號 echo '<br /><a href="ch7-4-1.php">第一頁</a>'; ?>