<?php
// เก็บ IP address ของผู้ใช้
$ip_address = $_SERVER['REMOTE_ADDR'];
// เชื่อมต่อกับฐานข้อมูล
$db = new PDO('mysql:host=localhost;dbname=mydb', 'root', 'password');
// ตรวจสอบว่า IP address นี้เข้าใช้งานมาก่อนหรือไม่
$sql = "SELECT COUNT(*) AS count FROM visits WHERE ip_address = ?";
$stmt = $db->prepare($sql);
$stmt->execute([$ip_address]);
$result = $stmt->fetch();
$count = $result['count'];
// กำหนดจำนวนการเข้าใช้งานสูงสุด
$max_visits = 2;
// แสดง IP address
echo "IP address ของคุณคือ: $ip_address";
// ตรวจสอบจำนวนการเข้าใช้งาน
if ($count >= $max_visits) {
// แสดงข้อความแจ้งเตือน
echo "<p style='color: red; font-size: large; font-weight: bold;'>คุณเข้าใช้งานเกินจำนวนที่กำหนด กรุณารอ 5 วินาที</p>";
// เล่นเสียงแจ้งเตือน
echo "<audio controls><source src='alarm.mp3' type='audio/mpeg'></audio>";
// นับเวลาถอยหลัง
echo "<script>
var timeLeft = 5;
var interval = setInterval(function() {
document.getElementById('countdown').innerHTML = timeLeft;
timeLeft--;
if (timeLeft === 0) {
clearInterval(interval);
window.location.reload();
}
}, 1000);
</script>";
echo "<p id='countdown'></p>";
} else {
// บันทึกการเข้าใช้งาน
$sql = "INSERT INTO visits (ip_address) VALUES (?)";
$stmt = $db->prepare($sql);
$stmt->execute([$ip_address]);
// ดำเนินการโปรเซสต่อไป
// ...
}
?>
- เก็บ IP address ของผู้ใช้ (
$ip_address
) - เชื่อมต่อกับฐานข้อมูล MySQL (
$db
) - ตรวจสอบจำนวนการเข้าใช้งานจาก IP address นี้ (
$count
) - กำหนดจำนวนการเข้าใช้งานสูงสุด (
$max_visits
) - แสดง IP address
- ตรวจสอบจำนวนการเข้าใช้งาน:
- ถ้ามากกว่า
$max_visits
:- แสดงข้อความแจ้งเตือนสีแดง
- เล่นเสียงแจ้งเตือน
- นับเวลาถอยหลัง 5 วินาที
- รีเฟรชหน้าเว็บเมื่อครบเวลา
- ถ้าไม่เกิน:
- บันทึกการเข้าใช้งาน
- ดำเนินการโปรเซสต่อไป
- ถ้ามากกว่า
หมายเหตุ:
- ปรับแต่งข้อความแจ้งเตือน เสียง และระยะเวลาการนับถอยหลังตามต้องการ
- ตรวจสอบให้แน่ใจว่าได้เปลี่ยนชื่อผู้ใช้และรหัสผ่านฐานข้อมูลให้ถูกต้อง
- ทดสอบโค้ดก่อนนำไปใช้งานจริง
ตัวอย่างการปรับแต่ง:
- เพิ่มข้อความเพิ่มเติมในข้อความแจ้งเตือน เช่น อธิบายสาเหตุที่จำกัดจำนวนการเข้าใช้งาน
- เปลี่ยนเสียงแจ้งเตือนเป็นเสียงอื่น
- เพิ่มปุ่ม “ลองใหม่” ให้ผู้ใช้สามารถดำเนินการต่อได้ทันทีโดยไม่ต้องรอ