ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
1
PHP & Session
2
คุยกันเรื่อง session Session เป็นตัวแปรคล้าย คุกกี้
ข้อมูลที่ถูกเก็บในตัวแปร session จะถูกบันทึกเป็นไฟล์ session เช่นเดียวกับไฟล์คุกกี้ แต่ session จะเก็บไฟล์ไว้ที่ฝั่งเซิร์ฟเวอร์ ความแตกต่างของ Cookie กับ Session คืออายุของตัวแปร อายุของ Cookie ถูกกำหนดด้วยเวลา อายุของ Session ถูกกำหนดด้วยการทำงานของเบราเซอร์
3
คุยกันเรื่อง session ต่อ
ถึงแม้ไฟล์ session จะถูกเก็บทางฝั่งเซิร์ฟเวอร์เพียงแห่งเดียว แต่ทุกครั้งที่ผู้ใช้เรียกสคริปต์ที่มีการประกาศตัวแปร session PHP จะสร้างไฟล์ session เพื่อเก็บข้อมูลตัวแปร session และกำหนด session ID ขึ้นมาสำหรับผู้ใช้แต่ละคน ซึ่ง session ID ที่กำหนดขึ้นมานั้น จะมีค่าที่ไม่ซ้ำกัน และ session ID จะเป็นส่วนหนึ่งของชื่อไฟล์ session ด้วย
4
คุยกันเรื่อง session ต่อ
ความแตกต่างของ Cookie กับ Session คืออายุของตัวแปร อายุของ Cookie ถูกกำหนดด้วยเวลา อายุของ Session ถูกกำหนดด้วยการทำงานของเบราเซอร์
5
การมีอยู่ของ Session Session เริ่มมีอายุตั้งแต่ถูกประกาศ และจะยังคงมีอยู่ตราบเท่าที่เบราเซอร์ยังคงเปิดใช้งานอยู่ หมายความว่าตัวแปร session จะหมดอายุเมื่อเบราเซอร์ถูกปิด และต้องเป็นการปิดทุกหน้าต่างด้วย (ทั้งที่เกี่ยวข้องและไม่เกี่ยวข้อง)
6
Session ดียังไง เอาข้อมูลของผู้ใช้ไปเก็บไว้ที่ฝั่งเซิร์ฟเวอร์ไว้ทำไม ??? เพราะปัญหาของผู้ใช้ที่คิดว่า cookie ไปละเมิดสิทธิส่วนบุคคล จึงทำให้เบราเซอร์ต่างๆ ต้องให้ผู้ใช้สามารถเลือกได้ว่าจะอนุญาตให้ใช้คุกกี้ได้หรือไม่ ถ้าผู้ใช้กำหนดไม่ยอมรับคุกกี้ ตัวแปรคุกกี้ก็ไม่มีสิทธิ์ไปสร้างไฟล์ไว้ได้ ดังนั้นมันจึงเกิดปัญหา หากว่าเราต้องการเก็บค่าข้อมูลเพื่อใช้ได้หลายๆ ครั้ง ก็จะลำบาก session น่าจะเป็นคำตอบของเรื่องนี้
7
HTTP: a stateless protocol
What are sessions? HTTP: a stateless protocol Client 1 Web server Client 2 Joe Mary 1 2 3 4 5 6
8
Why do we need sessions? A SESSION associates DATA with a USER for duration of their entire visit e-commerce CUSTOM web pages for different users (users can log in to web database)
9
How to store session info
1. Cookies Cookies store client-specific data on the client N.B. client may reject cookie! Security issues? Max cookie size 4k 2. Session files Sessions store client-specific data on the server Sessions are tagged with a unique session id
10
Cookies can be stored permanently or for a limited time
A cookie is a small piece of text containing identifying information Sent by server to browser on first interaction Sent by browser to the server that created the cookie on further interactions part of the HTTP protocol Server saves information about cookies it issued, and can use it when serving a request E.g., authentication information, and user preferences Cookies can be stored permanently or for a limited time
11
Session ids Web server Joe Mary 37 95 37 95 Session ID Session ID
12
Session management PHP4 includes functions to:
manage session data on the server generate random session ID to identify user saves session ID: either with a cookie (N.B. session ID only) or in the query string
13
ประกาศตัวแปร session การประกาศตัวแปร session จะใช้ฟังก์ชัน ตัวอย่าง
session_register(‘name’) name เป็นชื่อตัวแปร session ที่เราต้องประกาศ ส่วนค่าที่คืนออกมาจากฟังก์ชัน เป็น boolean เพื่อบอกว่าสำเร็จหรือไม่ *ฟังก์ชันนี้ใช้สำหรับประกาศตัวแปร session เพียงหนึ่งตัวเท่านั้น session_register(‘Mysession’)
14
การใช้งานตัวแปร session
หลังจากประกาศตัวแปร session แล้วสามารถเรียกใช้ตัวแปร session ได้ทันทีภายในสคริปต์ที่มีการประกาศตัวแปร session แต่ถ้าต้องการเรียกใช้งานตัวแปร session ในสคริปต์อื่นๆ ต้องมีการประกาศฟังก์ชัน session_start() ไว้ก่อนที่จะใช้ตัวแปร session เพื่อบอกให้ตัวแปร PHP ทราบว่าเรากำลังจะเรียกใช้ตัวแปร session แล้ว
15
การใช้งานตัวแปร session
เรียกจากตัวแปร PHP (PHP variable) ตัวอย่าง $HTTP_SESSION_VARS[“name”] <? session_register(“myweb”); $HTTP_SESSION_VARS[“myweb”] = “ print $HTTP_SESSION_VARS[“myweb”]; ?>
16
ตัวอย่าง session Testsession1.php <? session_register(“myweb”);
$HTTP_SESSION_VARS[“myweb”] = “ print $HTTP_SESSION_VARS[“myweb”]; ?> Testsession2.php <? session_start(); Print “Testsession2.php<br>”; print $HTTP_SESSION_VARS[“myweb”]; ?>
17
การลบตัวแปร session บางตัว
ถ้าประกาศตัวแปร session ไว้หลายตัว แล้วต้องการลบตัวแปร session บางตัว โดยที่ยังไม่ปิดเบราเซอร์ ให้ใช้ฟังก์ชัน ตัวอย่าง session_unregister(“name”) name เป็นชื่อตัวแปร session ที่เราต้องประกาศ ส่วนค่าที่คืนออกมาจากฟังก์ชัน เป็น boolean เพื่อบอกว่าสำเร็จหรือไม่ *ฟังก์ชันนี้ใช้สำหรับการลบตัวแปร session เพียงหนึ่งตัวเท่านั้น session_unregister(‘Mysession’)
18
การลบตัวแปร session ทุกตัว
การใช้ฟังก์ชันนี้จะทำการลบไฟล์ session ทุกตัวที่ได้ประกาศไว้ ทางฝั่งเซิร์ฟเวอร์ทั้งหมด เราจะไม่สามารถเรียกใช้ตัวแปร session ได้อีก จึงควรระวังการใช้อย่างยิ่ง session_destroy( )
19
ไฟล์ session เก็บไว้ไหน
ให้เข้าไปดูไฟล์ php.ini แล้วดูตำแหน่งไดเรกทอรี่ที่เก็บไฟล์ session ได้ที่ ซึ่ง php แต่ละเวอร์ชั่นจะไม่เหมือนกัน session.save_path = ….
20
อื่นๆ ในไฟล์ php.ini ถ้าเราอยากให้สคริปต์อื่นเริ่มใช้งาน session ได้เลย โดยไม่ต้องใช้คำสั่ง session_start() ก็สามารถกำหนดได้โดยให้ กำหนดให้ตัวแปร session มีอายุเหมือนตัวแปร cookie แต่จะทำให้ตัวแปร session ทุกตัวมีอายุเท่ากันหมด ทำได้โดย session.auto_start = 1 {ปรกติค่าเป็น 0} session.cookie_lifetime = เวลาวินาที {ปรกติค่าเป็น 0}
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.