ตัวแปร Session - ภาควิชาคณิตศาสตร์และคอมพิวเตอร์

Download Report

Transcript ตัวแปร Session - ภาควิชาคณิตศาสตร์และคอมพิวเตอร์

Electronic Commerce
อาจารย์ชนิดา เรืองศริ วิ ฒ
ั นกุล หลักสูตรสาขาวิชา
เทคโนโลยีสารสนเทศ
Session and
Cookies
Company
LOGO
ปั ญหาการส่งข้อมู ลข้ามเพจ
้
่
 ให้สร ้างเพจขึนมา
3 เพจ ชือ
page1.php,page2.php,page3.php



่ กล่องร ับข้อความสาหร ับกรอก
page1 มีฟอร ์มทีมี
่
่ ใ้ ช้ เมือกดปุ่
ม submit จะส่งค่าไปเรียก
ชือผู
page2.php
page2 มีฟอร ์มร ับหมายเลขบัตรเครดิตของผู ใ้ ช้
่
ม submit จะส่งค่าไปเรียก page3.php
เมือกดปุ่
page3 แสดงตัวแปรจาก page1 และ page2
2
Company
LOGO
ต ัวแปร Session
่ Hotmail เมือ
 ตัวอย่างการใช ้ Session เชน
่ เรา
ื่ เข ้าใชและไปที
้
ลงชอ
เ่ พจต่างๆ ในเว็บเมล์
้
เซริ ฟ
์ เวอร์จะทราบว่าเราเป็ นผู ้ใชคนไหนไม่
วา่ จะ
ื่ ออก
เปลีย
่ นเพจไป จนกว่าเราจะลงชอ
้
 ก่อนใชงานตั
วแปร session ต ้องเรียกใช ้
ั session_start() ก่อนคาสงั่
ฟั งก์ชน
แสดงผล (echo) และต ้องเขียนก่อนเริม
่ โค ้ด
html
้ ว
 การอ่านหรือบันทึกค่าตัวแปร session ใชตั
่ ถ ้าต ้องการใชตั้ วแปร
แปร $_SESSION เชน
3
Company
LOGO
PHP Sessions
 การใช้งาน
ื่ user มีคา่ u52wns
 สร ้าง session ชอ
<?
session_start();
$_SESSION[“user”] = “u52wns”;
?>
Company
LOGO
PHP Sessions
 การตรวจสอบความมีอยู ่ของ sessions ใช้
คาสัง่ isset
<?
isset($_SESSION[“user”]) {
//welcome message
} else {
//login form
}
Company
LOGO
ต ัวแปร Session จะหายไป
่
เมือไร
 ผู ้ใชปิ้ ดเว็บเบราเซอร์
้ ได ้ติดต่อกับเซริ ฟ
 ผู ้ใชไม่
์ เวอร์เป็ นเวลานาน
จนกระทั่ง session หมดอายุ
 การกาหนดเวลา session หมดอายุ ให ้ไป
แก ้ไขไฟล์ c:\windows\php.ini เปลีย
่ นตัว
ื่ session.gc_maxlifetime ค่า
แปรชอ
เริม
่ ต ้นคือ 1440 (24 นาที)
้ งก์ชน
ั unset() สาหรับทาลาย
 เรียกใชฟั
่
session แต่ละตัว เชน
unset($_SESSION[“user”] เพือ
่ ลบตัว
6
Company
LOGO
การลบต ัวแปร session ทุกตัว
 ถ ้าต ้องการลบตัวแปร session ทุกตัวทีป
่ ระกาศ
ั
ไว ้ ควรใชฟั้ งก์ชน
session_destroy( )
ั นีจ
 การใชฟั้ งก์ชน
้ ะทาการลบไฟล์ session ทุก
ตัวทีไ่ ด ้ประกาศไว ้ ทางฝั่ งเซริ ฟ
์ เวอร์ทัง้ หมด เรา
จะไม่สามารถเรียกใชตั้ วแปร session ได ้อีก จึง
้ างยิง่
ควรระวังการใชอย่
Company
LOGO
คุกกี ้ (Cookie)
 ตัวแปร session จะถูกลบเมือ
่ ผู ้ใชปิ้ ดเว็บเบราเซอร์ ถ ้า
ต ้องการให ้ตัวแปรยังคงอยูห
่ ลังจากปิ ดเบราเซอร์ไป
แล ้ว ต ้องใชตั้ วแปรคุกกี้
 Cookies โดยทั่วไปจะใชส้ าหรับระบุตวั ตนและความมี
อยูข
่ อง users ชว่ ยให ้ users ไม่จาเป็ นต ้อง login
้
ซ้าซอน
 เป็ นไฟล์ขนาดเล็กทีถ
่ ก
ู สร ้างโดยสคริปต์ทางฝั่ ง
Server แล ้วฝั งตัวอยูบ
่ นคอมพิวเตอร์ทางฝั่ ง Clients
้ งก์ชน
ั setcookie()
 ใชฟั
ื่ user มีคา่ เท่ากับ 0 และ
 การสร ้างตัวแปรคุกกีช
้ อ
ิ นาทีข ้างหน ้า
หมดอายุในอีกสบ
 setcookie(“user”, “0”, time() +600);
8
Company
LOGO
PHP Cookies
 การตรวจสอบความมีอยูข
่ อง sessions ใชค้ าสงั่
isset
<?
isset($_COOKIE[“user”]) {
//welcome message
} else {
//login form
}
Company
LOGO
PHP Cookies
 การลบ Cookies
ั setcookie โดยกาหนดให ้ expire
ใชฟั้ งก์ชน
เป็ นเวลาในอดีต
 setcookie(“user”, “u48wns”, time() 3600);

Company
LOGO
ต ัวแปร Session กับ Cookie
 Session มีข ้อดีคอ
ื ปลอดภัยสูง เพราะข ้อมูลที่
ถูกเก็บในตัวแปร session จะเก็บไฟล์ไว ้ทีฝ
่ ั่ ง
เซริ ฟ
์ เวอร์
้ ดเบราเซอร์ไป ตัว
 คุกกีม
้ ข
ี ้อดีคอ
ื ถึงแม ้ผู ้ใชจะปิ
ี คือ
แปรคุกกีย
้ ังคงอยู่ (ถ ้ายังไม่หมดอายุ) ข ้อเสย
ความเป็ นสว่ นตัว บางเว็บไซต์ใชคุ้ กกีต
้ รวจสอบ
้ ้าเว็บไซต์ใดบ ้าง
ว่าผู ้ใชเข
่
 ใช
ตั้ วขแปร
seesion
อายุ
อง Cookie
ถูก เก็บข ้อมูลสาคัญ เชน
กาหนดด้
รหั
สผ่าน วยเวลา
อายุของ Session ถูกกาหนดด้วยการ
 ความแตกต่
างของ Cookie กั์ บ Session คือ
ทางานของเบราเซอร
Company
LOGO
การมีอยู ่ของ Session
 Session เริม
่ มีอายุตงั ้ แต่ถก
ู ประกาศ และจะ
้
ยังคงมีอยูต
่ ราบเท่าทีเ่ บราเซอร์ยังคงเปิ ดใชงาน
อยู่
 หมายความว่าตัวแปร session จะหมดอายุ
เมือ
่ เบราเซอร์ถก
ู ปิ ด และต ้องเป็ นการปิ ดทุก
หน ้าต่างด ้วย (ทัง้ ทีเ่ กีย
่ วข ้องและไม่เกีย
่ วข ้อง)
Company
LOGO
Session ดียงั ไง
้
 เอาข ้อมูลของผู ้ใชไปเก็
บไว ้ทีฝ
่ ั่ งเซริ ฟ
์ เวอร์ไว ้
ทาไม ???
้ ค
 เพราะปั ญหาของผู ้ใชที
่ ด
ิ ว่า cookie ไปละเมิด
ิ ธิสว่ นบุคคล จึงทาให ้เบราเซอร์ตา่ งๆ ต ้องให ้
สท
้
ผู ้ใชสามารถเลื
อกได ้ว่าจะอนุญาตให ้ใชคุ้ กกีไ้ ด ้
หรือไม่
ถ ้าผู ้ใชก้ าหนดไม่ยอมรับคุกกี้ ตัวแปรคุกกีก
้ ็ไม่ม ี
ิ ธิไ์ ปสร ้างไฟล์ไว ้ได ้ ดังนัน
สท
้ จึงเกิดปั ญหา หาก
้ ้หลายๆ
ว่าเราต ้องการเก็บค่าข ้อมูลเพือ
่ ใชได
ครัง้ ควรใช ้ session
Company
LOGO
แบบฝึ กหัด
ื่ ผู ้ใชและ
้
 ให ้สร ้างฟอร์ม user.php เพือ
่ รับชอ
ื่ ผู ้ใชและ
้
รหัสผ่านจากผู ้ใช ้ และให ้สง่ ค่าชอ
รหัสผ่านไปยัง check.php
ื่ ผู ้ใช ้ และ
 check.php ให ้ทาการตรวจสอบชอ
ื่ ผู ้ใช ้ และให ้
รหัสผ่าน หากเหมือนกันให ้แสดงชอ
ื่ ผู ้ใชนั้ น
นาชอ
้ ไปแสดงยังหน ้าต่อไปคือ
show.php