<?php
$file = 'otp_request_count.json';
$data = file_get_contents($file);
$requestData = json_decode($data, true);
$ip = $_SERVER['REMOTE_ADDR'];
$username = $_POST['username']; // Replace with your actual username variable
// Check if the necessary indexes exist before accessing them
if (isset($requestData['requests'][$ip][$username]['last_request_time']) && isset($requestData['requests'][$ip][$username]['count'])) {
if (time() - $requestData['requests'][$ip][$username]['last_request_time'] > 60) {
unset($requestData['requests'][$ip]);
$requestData['requests'][$ip][$username]['count'] = 0;
$requestData['requests'][$ip][$username]['last_request_time'] = time();
// Write the updated request data back to the JSON file
$data = json_encode($requestData);
file_put_contents($file, $data);
}
if ($requestData['requests'][$ip][$username]['count'] < 3 || time() - $requestData['requests'][$ip][$username]['last_request_time'] > 60) {
// Allow OTP request
$requestData['requests'][$ip][$username]['count']++;
$requestData['requests'][$ip][$username]['last_request_time'] = time();
// Generate and send OTP
// ...
// Write the updated request data back to the JSON file
$data = json_encode($requestData);
file_put_contents($file, $data);
echo "Success";
} else {
// Display error message
$data = (time() - $requestData['requests'][$ip][$username]['last_request_time']);
$time = (60 - $data);
echo "Maximum OTP request limit exceeded. Please try again in ".$time." second(s).";
}
} else {
// Create the necessary indexes with default values
$requestData['requests'][$ip][$username]['count'] = 1;
$requestData['requests'][$ip][$username]['last_request_time'] = time();
// Write the updated request data back to the JSON file
$data = json_encode($requestData);
file_put_contents($file, $data);
echo "Success";
}
?>
Please update the code, add count in ip and add the condition if the ip count is < 3 it will send OTP
$file = 'otp_request_count.json';
$data = file_get_contents($file);
$requestData = json_decode($data, true);
$ip = $_SERVER['REMOTE_ADDR'];
$username = $_POST['username']; // Replace with your actual username variable
// Check if the necessary indexes exist before accessing them
if (isset($requestData['requests'][$ip][$username]['last_request_time']) && isset($requestData['requests'][$ip][$username]['count'])) {
if (time() - $requestData['requests'][$ip][$username]['last_request_time'] > 60) {
unset($requestData['requests'][$ip]);
$requestData['requests'][$ip][$username]['count'] = 0;
$requestData['requests'][$ip][$username]['last_request_time'] = time();
// Write the updated request data back to the JSON file
$data = json_encode($requestData);
file_put_contents($file, $data);
}
if ($requestData['requests'][$ip][$username]['count'] < 3 || time() - $requestData['requests'][$ip][$username]['last_request_time'] > 60) {
// Allow OTP request
$requestData['requests'][$ip][$username]['count']++;
$requestData['requests'][$ip][$username]['last_request_time'] = time();
// Generate and send OTP
// ...
// Write the updated request data back to the JSON file
$data = json_encode($requestData);
file_put_contents($file, $data);
echo "Success";
} else {
// Display error message
$data = (time() - $requestData['requests'][$ip][$username]['last_request_time']);
$time = (60 - $data);
echo "Maximum OTP request limit exceeded. Please try again in ".$time." second(s).";
}
} else {
// Create the necessary indexes with default values
$requestData['requests'][$ip][$username]['count'] = 1;
$requestData['requests'][$ip][$username]['last_request_time'] = time();
// Write the updated request data back to the JSON file
$data = json_encode($requestData);
file_put_contents($file, $data);
echo "Success";
}
?>
Please update the code, add count in ip and add the condition if the ip count is < 3 it will send OTP