อยากทราบวิธีเขียนโค้ดตรวจสอบ

อยากทราบวิธีเขียนโค้ดตรวจสอบวันหมดอายุของสมาชิกครับว่าควรเริ่มอย่างงัยดีครับ
เช่น สมัครวันนี้ อีกเจ็ดวันข้างหน้าจะหมดอายุแล้ว และมีการแจ้งเตือนสมาชิกด้วยครับ
ช่วยหน่อยนะครับ
ขอขอบคุณล่วงหน้าครับ
01 ธ.ค. 2551 3 3,572

ก็สร้างฟิลด์เก็บวันสมัคร ในรูป mktime หรือ วันที่ของ mysql ก็ได้ แล้วแต่ถนัด ผมแนะนำรูป mktime นะครับ เพราะจะคำนวณง่ายกว่า

การตรวจสอบการหมดอายุ หรือการเตือนนี่ยากหน่อย ผมไม่แน่ใจว่า การหมดอายุมีผลอย่างไร เช่น ถ้าหมดอายุจะ login ไม่ได้ ในกรณีนี้การตรวจว่าหมดอายุ ก็ไม่ยาก เป็นการตรวจในตอนที่ทำการ login ก็ได้ ถ้าตรวจแล้วพบว่าหมดอายุไปแล้วก็จะท login ไม่ได้ และลบข้อมูลสมาชิกไปเลย หรือ อาจใช้การตรวจที่หน้า index ก็ได้ เวลาเรียกเพจใดเพจหนึ่ง ก็ให้มีการ query เพือ่ลบสมาชิกที่หมดอายุ ออกจากระบบ แต่ตามความเห็นผม วิธีแรกน่าจะเวอร์คกว่า

ส่วนการแจ้งเตือน อันนี้อาจจะยากหน่อย เนื่องจากการแจ้งเตือน การกระทำบนหน้าเพจแบบอัตโนมัติจะค่อนข้างยาก ผมจะแยกกรณีที่เป็นไปได้ออก ดังนี้นะครับ

1.ทำการตรวจสอบโดย admin ผมหมายถึงให้ผู้มีหน้าที่ คอยเรียกหน้าที่ทำการตรวจสอบทุกๆวัน วิธีนี้การเขียนโค้ดไม่ยุ่งยาก และมีประสิทธิภาพดีพอสมควร แต่เสียที่ admin ต้องมาจัดการเอง
2.ทำการตรวจสอบในหน้าเพจปกติ เช่น อาจแทรกโค้ดตรวจสอบไว้กับหน้า index ให้มีการตรวจสอบแบะแจ้งเตือนทุกครั้งที่เรียก วิธีนี้ admiin ไม่ต้องมานั่งทำเอง แต่ก็มีข้อเสียคือ อาจทำให้ระบบโดยรวมช้าลงเล็กน้อย เนื่องจากต้องมาคอยตรวจสอบเพจทุกครั้ง
3.คล้ายกับวิธีแรก แต่ใช้การทำงานอัตโนมัติของ Server ด้วยการใช้งาน Cron Job ซึ่งหมายถึง การเรียกหน้าเพจใดเพจหนึ่งให้ทำงานอัตโนมัติ ในช่วงเวลาทมี่กำหนดโดย Server ซึ่งปกติ เราก็อาจเลือกช่วงเที่ยงคืนก็ได้ วิธีนี้ดีสุด แต่ก็ต้องศึกษาเรื่อง Cron Job เพิ่มเติม และ Server ต้องรองรับ
#1

พอมีตัวอย่างหรือป่าวครับอาจารย์
#2

ไม่มีครับ

ก็เป็นการ query บน MyySQL ธรรมดาครับ ไม่มีอะไรซับซ้อน ลองพิจารณาทำทีละส่วน เช่น 


DELETE  FROM ..... WHERE create > เวลาปัจจุบัน - 7 วัน

สำหรับการลบ

SELECT * FROM ..... WHERE create > เวลาปัจจุบัน - จำนวนวันก่อนการเตือน

สำหรับคนที่ต้องการส่งคำเตือน แล้วก็เอาเรายชื่อที่ได้ไปส่งเมล์

ส่วนเรื่อง Cron Job ต้องศึกษาเพิ่มเติมเอาเองครับ
#3
ความคิดเห็น
ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 1024
^