session
เข้ามาช่วยในการจดจำผู้ใช้เริ่มต้นด้วยการเพิ่ม
session_start()
ไว้ในส่วนบนสุดของ .php
ต่อมาก็เพิ่มโค้ดให้เก็บค่าลง session เข้าไปก่อนที่จะ redirect ไปยังหน้าอื่น
และเพื่อไม่ให้มีการ log in ซ้ำซ้อน ซึ่งอาจจะนำปัญหามาให้ ก็ให้ตรวจสอบก่อนว่ามีการ log in อยู่แล้วหรือไม่เสียก่อน ในตอนเริ่มแรก
ส่วนในหน้าอื่น ๆ ที่จำเป็นต้อง log in ก่อน เพื่อแสดงข้อมูลออกมาก็ให้ตรวจสอบค่า $_SESSION['username']
ดูว่ามีการ log in หรือไม่ ถ้ามีก็ดึงข้อมูลมาตามปกติ แต่ถ้าไม่มีจะบังคับให้ log in เสียก่อน หรือแสดงข้อมูลที่แตกต่างกันออกไป อันนี้ก็แล้วแต่จะออกแบบ
ส่วนการ logout นั้นทำได้ง่าย ๆ ด้วยคำสั่ง session_destroy()
ทุกอย่างก็หายไป
ทั้งหมดนี้เป็นเพียง โครงร่างคร่าว ๆ ที่สามารถทำงานได้ ถ้าหากต้องการให้เว็บออกมาสวยงาม จำเป็นต้องใช้การวางเลย์เอ้าท์ รวมทั้งการออกแบบการไหลของข้อมูลเสียใหม่ แต่โดยรวมแล้ว จะมีฟังชั่นที่จำเป็นเพียงเท่านี้
ที่ผ่านมาจะเห็นว่าไม่มีการพูดถึง SQL Injection เลยเพราะว่า เราใช้ฟังชั่น PDO::prepare()
ในการเตรียมข้อมูล ตราบใดที่ไม่มีบั๊กในฟังชั่นนี้ ฐานข้อมูลของเรายังปลอดภัยอยู่
No comments:
Post a Comment