งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

Dr. Theerayut Thongkrau Session & Cookie Chapter 10.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "Dr. Theerayut Thongkrau Session & Cookie Chapter 10."— ใบสำเนางานนำเสนอ:

1 Dr. Theerayut Thongkrau Session & Cookie Chapter 10

2 Session Server จะไม่สามารถรู้ได้เลยว่าผู้ที่เข้า มาดูเว็บเป็นคนเดียวกัน หรือคนละคน เช่น ไม่รู้ว่า username คนนั้นทำอะไร, ไม่รู้ว่าสินค้าที่เลือกซื้อในรถเข็นเป็น ของใคร การแก้ปัญหาดังกล่าว คือ ใช้ตัวแปร Session ซึ่งเป็นตัวแปรที่ถูกสร้างขึ้น เพื่อเป็นตัวแทนผู้เข้าชมเว็บแต่ละคน 2

3 การใช้ Session เมื่อต้องการใช้ Session จะต้องกำหนด ดังนี้ เว็บหน้าใดที่ใช่คำสั่งนี้ หมายถึง สามารถอ่านและเขียนข้อมูลบนตัวแปร session ได้ 3 เขียนก่อนโค้ด HTML

4 การเก็บสถานการณ์ Login ไว้ใน Session 1. สร้างฟอร์มสำหรับ Login 2. ตรวจสอบ username/password ใน ฐานข้อมูล 3. สร้าง session ชื่อผู้ใช้ 4. นำ session ชื่อผู้ใช้ไปใช้ในหน้าอื่นๆ 4

5 สร้างฟอร์มสำหรับ Login 5 Username: Password: รหัสผ่านไม่ถูกต้อง ใช้สำหรับตรวจสอบ ว่า Login ถูกต้อง หรือไม่ โดยดูจาก ค่าพารามิเตอร์ชื่อ error ถ้าเป็น 1 ให้ แสดงว่าผิดพลาด login.php

6 ตรวจสอบ username/password ใน ฐานข้อมูล แล้วสร้าง session ชื่อผู้ใช้ 6 checkLogin.php

7 นำ session ชื่อผู้ใช้ไปใช้ ในหน้าอื่นๆ 7 สวัสดี มาแล้ว ประกาศว่าใช้ session ดึงค่าจาก Session มาแสดง index.php hello.php

8 การ Logout การ Logout คือ การลบ session ปัจจุบันออกไป 8 logout.php

9 ช่วงอายุของ Session การกำหนดอายุของ Session แต่ละ Server จะแตกต่างกันไปแต่ใน Apache Web Server จะกำหนดในไฟล์ php.ini ซึ่งค่า default จะกำหนดไว้ที่ 24 นาที (1440 วินาที ) session.gc_maxlifetime =

10 Cookie คุกกี้ คือ ไฟล์ขนาดเล็กที่ Server ทำ การเขียนลงบนเครื่องผู้เข้าชมเว็บ คุกกี้มักใช้ในการระบุตัวตนของผู้ใช้ โดยใช้ร่วมกับ Session เมื่อมีการร้องขอหน้าเว็บเพ็จจากเครื่อง เดิมที่เคยเข้าและเขียนคุกกี้แล้ว จะมี การส่งข้อมูลในคุกกี้ไปด้วย 10

11 Cookie 11 เก็บข้อมูลบนคุกกี้ ดึงข้อมูลจากคุกกี้ Client web browser Web server

12 องค์ประกอบของคุกกี้ 12 username = pocky 1/1/2015 ชื่อ ค่า วันหมดอายุ

13 Cookie รูปแบบการเขียนคุกกี้ setcookie("name", "value", time()+expire_time); time() หมายถึง เวลาในปัจจุบัน expire_time คือ อายุของคุกกี้ มีหน่วยเป็น วินาที การดึงคุกกี้จากเครื่องผู้ใช้จะใช้ตัวแปรดังนี้ $_COOKIE["name"] การลบคุกกี้ setcookie("name", "", time()- expire_time); 13

14 การใช้คุกกี้ร่วมกับ Session Session จะมีระยะเวลาจำกัดหากเลยเวลาที่ กำหนด เช่น 24 นาที ข้อมูลใน Session จะ หายไป การให้ Cookies มาช่วยเก็บข้อมูล Session จะช่วยให้การเข้าเว็บครั้งต่อไป สามารถนำข้อมูลจากคุกกี้มาสร้าง Session ใหม่ได้อัตโนมัติ ตัวอย่างเช่น Facebook เมื่อมีการเชคที่ Keep me logged in จะเก็บ สถานการณ์ Login ไว้ในคุกกี้ เมื่อเข้าใช้ครั้ง ต่อไปจะสร้าง Session ของผู้ใช้ จากคุกกี้ อัตโนมัติ 14

15 การใช้คุกกี้ร่วมกับ Session จากตัวอย่างการใช้ session ก่อนหน้า นำมาแก้ไขดังนี้ –login.php จะทำการเพิ่ม checkbox เพื่อ ถามผู้ใช้ว่าต้องการเก็บข้อมูลลงบนเครื่อง ที่ใช้หรือไม่ –checkLogin.php เพิ่มการเขียนคุกกี้เมื่อ ตรวจสอบ username และ password สำเร็จ –index.php เพิ่มการดึงคุกกี้ที่เขียนไว้ ออกมาสร้าง Session ใหม่ –logout.php ลบคุกกี้หลังจากทำลาย Session เสร็จแล้ว 15

16 สร้างฟอร์มสำหรับ Login 16 Insert title here Username: Password: จำการเข้าสู่ระบบที่เครื่อง นี้ รหัสผ่านไม่ถูกต้อง เพิ่ม checkbox หาก มีการเลือกจะทำการ เก็บข้อมูลลงคุกกี้ login.php

17 เขียน username ลงคุกกี้ 17 checkLogin.php ถ้ามีการเลือก checkbox ให้เขียน ชื่อ username ลงใน คุกกี้

18 การดึงคุกกี้ในครั้งต่อไป 18 สวัสดี Log out main.php การทดสอบควรทำให้ Session หมดอายุก่อน โดยรันไฟล์ killsession.php

19 การลบคุกกี้หลัง Logout 19 logout.php กำหนดค่าว่างให้กับตัวแปรคุกกี้ และกำหนดอายุคุกกี้ให้สิ้นสุดลง

20 การสร้างตะกร้าสินค้าด้วย Session ฟังก์ชันเพิ่มสินค้าลงตะกร้า ฟังก์ชันลบสินค้าจากตะกร้า ฟังก์ชันปรับปรุงสินค้าในตะกร้า ดูโค้ดทั้งหมดที่ไฟล์ cart.php 20

21 ฟังก์ชันเพิ่มสินค้าลง ตะกร้า 21 function addtocart($pid, $q){ // ถ้ามีสินค้าในตะกร้อยแล้ว $_SESSION['cart'] จะเป็น array if (is_array($_SESSION['cart'])){ if (product_exists($pid)) return; $max = count($_SESSION['cart']); // ดึงเอา index ของ array ช่องสุดท้ายออกมา $_SESSION['cart'][$max]['productid'] = $pid; // นำรหัสสินค้าไปเก็บ $_SESSION['cart'][$max]['qty'] = $q; // นำจำนวนสินค้าไปเก็บ // ถ้ายังไม่มีสินค้าใดๆเลยในตะกร้า จะสร้าาง array ใหม่ } else { $_SESSION['cart'] = array(); $_SESSION['cart'][0]['productid'] = $pid; // นำรหัสสินค้าไปเก็บ $_SESSION['cart'][0]['qty'] = $q; // นำจำนวนสินค้าไปเก็บ } productidqty ……… รหัสสินค้า ($pid) = 2 จำนวนสินค้า ($q) = 1 21 รหัสสินค้า ($pid) = 4 จำนวนสินค้า ($q) = 2 1 max รหัสสินค้า ($pid) = 1 จำนวนสินค้า ($q) = 5 15 $_SESSION['cart'] cart.php

22 ฟังก์ชันลบสินค้าจาก ตะกร้า 22 function removefromcart($pid) { $pid = intval($pid); // แปลงรหัสสินค้าเป็น integer เพื่อใช้ในการเปรียบเทียบ $max = count($_SESSION['cart']); // ดึงจำนวนสินค้าในตะกร้าออกมา for ($i=0;$i<$max;$i++) { // วนลูปค้นหาตามรหัสสินค้า if ($pid==$_SESSION['cart'][$i]['productid']) { // ถ้ารหัสสินค้าตรงกัน unset($_SESSION['cart'][$i]); // ลบสินค้านั้นออก break; } $_SESSION['cart'] = array_values($_SESSION['cart']); // สร้างเป็น array ใหม่ } productidqty pid 2 max $_SESSION['cart'] 0 i 1 productidqty cart.php

23 การดึงข้อมูลจาก $_SESSION['cart'] 23 " value=" " maxlength="3" size="2"> )"> ราคารวม: บาท cart.php

24 ผลลัพธ์ HTML 24 Serial Name Price Qty Amount Options 1 Toro MAGNUM ราคารวม: 85 บาท

25 เขียน JavaScript สำหรับ ส่งข้อมูล 25 function del(pid){ if (confirm('คุณต้องการลบสินค้าใช่หรือไม่ ?')){ document.form1.pid.value=pid; // กำหนดรหัสสินค้าที่ต้องการลบ document.form1.action.value='delete'; // กำหนดให้ทำการลบสินค้าในตะกร้า document.form1.submit(); // สั่งให้เริ่ม submit form } function clear_cart(){ if (confirm('คุณต้องการลบสินค้าทั้งหมดใช่หรือไม่ ?')){ document.form1.action.value='clear'; document.form1.submit(); } function update_cart(){ document.form1.action.value='update'; document.form1.submit(); } cart.php

26 การสร้างใบสั่งซื้อ 26 $date=date('Y-m-d'); // ดึงวันที่ปัจจุบันมา ตามรูปแบบที่กำหนด $memName = $_SESSION["memName"]; // ดึงชื่อผู้ใช้จาก session $result=mysql_query("insert into orders values ('', '$memName', '$date', 'wait')"); // เพิ่ม record order ใหม่ // เพิ่มรหัสสินค้าใน record ใหม่ที่สร้างไปก่อนหน้านี้ แล้วนำตัวเลขนั้นมาเป็นหมายเลข order $orderid=mysql_insert_id(); $max=count($_SESSION['cart']); // ดึงจำนวนสินค้าในตะกร้าออกมา for($i=0;$i<$max;$i++){ // วนลูปเพื่อเพิ่มรายการสินค้าในตาราง item $pid=$_SESSION['cart'][$i]['productid']; // ดึงรหัสสินค้าออกมา $q=$_SESSION['cart'][$i]['qty']; // ดึงจำนวนสินค้าออกมา mysql_query("insert into item values ('', $orderid,$pid,$q)"); mysql_insert_id(); // เพิ่มรหัสรายการสินค้า } unset($_SESSION['cart']); // เมื่อการสั่งซื้อเสร็จสิ้น จะทำการลบทุกอย่างออกจากตะกร้า $_SESSION['cart'] productidqty order _id usern ame order_date order_ status 1pocky :25:14 wait item _id order _id product _id qt y ตาราง order ตาราง item createOrder.php


ดาวน์โหลด ppt Dr. Theerayut Thongkrau Session & Cookie Chapter 10.

งานนำเสนอที่คล้ายกัน


Ads by Google