File: //var/www/nfc/chick.php
<?php
session_start();
// Step 1: 檢查 User-Agent,確保來自 NFC 裝置
$user_agent = $_SERVER['HTTP_USER_AGENT'];
if (strpos($user_agent, 'NFCReaderApp') === false) {
// 如果 User-Agent 不符合 NFC 應用的特徵,拒絕訪問
echo "無效的訪問,請通過 NFC 掃描標籤進行訪問。";
exit();
}
// Step 2: 檢查 Referer,確保來自正確的來源
$referer = $_SERVER['HTTP_REFERER'];
if (empty($referer) || strpos($referer, 'expected-nfc-source.com') === false) {
echo "請通過 NFC 掃描標籤訪問此頁面。";
exit();
}
// Step 3: 檢查 sessionStorage,這部分會由 JavaScript 來處理
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>NFC Check</title>
<script>
// JavaScript 檢查 sessionStorage,確保用戶通過 NFC 掃描
if (!sessionStorage.getItem('nfc_scanned')) {
// 如果沒有 nfc_scanned 標記,顯示錯誤訊息或重定向到錯誤頁面
window.location.href = 'error.html'; // 你可以顯示一個錯誤頁面
} else {
// 如果 sessionStorage 中有 nfc_scanned,則表示用戶已經通過 NFC 掃描
sessionStorage.setItem('nfc_scanned', 'true'); // 設置標記
setTimeout(function(){
sessionStorage.removeItem('nfc_scanned'); // 5 分鐘後自動清除
}, 300000); // 300000 毫秒 = 5 分鐘
}
</script>
</head>
<body>
<h1>驗證通過,重定向到 FileMaker WebDirect...</h1>
<?php
// 如果一切通過,則重定向到 FileMaker WebDirect
$target_url = "https://yourdomain.com/fmi/webd/ysnet?script=chicknfc";
header("Location: $target_url");
exit();
?>
</body>
</html>