نمونه PHP: ذخیره حضور و غیاب بیومتریک در MySQL
یک callback handler کارا به زبان PHP که ثبتهای تردد را در MySQL ذخیره میکند، در سه گام.
اطلاعات تکمیلی
نمونه با برنامه PHP
یک نمونه ساده PHP -- جدول را بسازید، اسکریپت را مستقر کنید و دریافت دادههای حضور را شروع کنید.
گام 1 — ساخت جدول MySQL
cams_db_setup.sql
CREATE DATABASE IF NOT EXISTS cams_biometric;
USE cams_biometric;
CREATE TABLE IF NOT EXISTS attendance_logs (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id VARCHAR(50) NOT NULL,
log_time DATETIME NOT NULL,
punch_type VARCHAR(20) DEFAULT NULL,
input_type VARCHAR(20) DEFAULT NULL,
temperature DECIMAL(4,1) DEFAULT NULL,
face_mask TINYINT(1) DEFAULT NULL,
serial_number VARCHAR(50) DEFAULT NULL,
label_name VARCHAR(100) DEFAULT NULL,
raw_json TEXT DEFAULT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
UNIQUE KEY (user_id, log_time)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;گام 2 — PHP Callback Handler
cams-callback.php
<?php
// Database config
$pdo = new PDO("mysql:host=localhost;dbname=cams_biometric;charset=utf8mb4", "root", "");
// Read incoming JSON
$rawInput = file_get_contents("php://input");
$data = json_decode($rawInput, true);
// Parse PunchLog and insert
if (isset($data['RealTime']['PunchLog'])) {
$log = $data['RealTime']['PunchLog'];
$stmt = $pdo->prepare("
INSERT INTO attendance_logs
(user_id, log_time, punch_type, input_type, temperature, face_mask, serial_number, label_name, raw_json)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
ON DUPLICATE KEY UPDATE punch_type=VALUES(punch_type), input_type=VALUES(input_type)
");
$stmt->execute([
$log['UserId'] ?? '',
date('Y-m-d H:i:s', strtotime($log['LogTime'] ?? 'now')),
$log['Type'] ?? null,
$log['InputType'] ?? null,
$log['Temperature'] ?? null,
isset($log['FaceMask']) ? ($log['FaceMask'] ? 1 : 0) : null,
$data['RealTime']['SerialNumber'] ?? null,
$data['RealTime']['LabelName'] ?? null,
$rawInput
]);
}
// Always respond with this
header("Content-Type: application/json");
echo '{"status":"done"}';
?>گام 3 — استقرار و تست
1
جدول را بسازید
اجرا کنید: mysql -u root -p < cams_db_setup.sql
2
فایل PHP را آپلود کنید
در صورت نیاز اطلاعات اتصال به پایگاه داده را ویرایش کنید و روی سرور خود آپلود کنید.
3
Callback URL را تنظیم کنید
در API Monitor تنظیم کنید: https://yourserver.com/cams-callback.php
4
ثبت تردد و بررسی
روی دستگاه ثبت تردد انجام دهید، سپس بررسی کنید: SELECT * FROM attendance_logs;