Я выполнил свой php-код для регулирования входа в систему, однако теперь я хочу использовать простой код js или jquery, чтобы получить время отсчета регулирования от php и сделать прямой обратный отсчет.
Должен ли я поместить скрипт js в файл php? или HTML-файл? Если да, то как мне отредактировать мой код для работы?
До сих пор я поместил таймер span id в php, который теперь показывает таймер, но опять же я не получаю таймер php live
Мой php код:
<?php
include('database.php');
function get_multiple_rows($getfailed) {
$rows = array();
while($row = $getfailed->fetch_assoc()) {
$rows[] = $row;
}
return $rows;
}
$throttle = array(1 => 1, 5 => 2, 10 => 30);
$getfailedq = "SELECT MAX(attempted) AS attempted FROM failed_logins";
if ($getfailed = $mySQL->query($getfailedq)) {
$rows = get_multiple_rows($getfailed);
$getfailed->free();
$latest_attempt = (int) date('U', strtotime($rows[0]['attempted']));
$getfailedq = "SELECT COUNT(1) AS failed FROM failed_logins WHERE attempted > DATE_SUB(NOW(), INTERVAL 15 minute)";
if ($getfailed = $mySQL->query($getfailedq)) {
$rows = get_multiple_rows($getfailed);
$getfailed->free();
$failed_attempts = (int) $rows[0]['failed'];
krsort($throttle);
foreach ($throttle as $attempts => $delay) {
if ($failed_attempts > $attempts) {
$remaining_delay = (time() - $latest_attempt) - $delay;
if ($remaining_delay < 0) {echo '<span id="timer">' . abs($remaining_delay) . '</span>';}
break;
}
}
}
}
?>
Мой JS:
<script>
var count=30;
var counter=setInterval(timer, 1000); //1000 will run it every 1 second
function timer(){
count=count-1;
if (count <= 0){
clearInterval(counter);
return;
}
document.getElementById("timer").innerHTML=count + " secs"; // watch for spelling
}
</script>
Вы можете инициализировать вашу переменную JS с помощью переменной PHP, например:
var counter = <?php echo $counter; ?>;
И создайте свой счетчик в JS.
РЕДАКТИРОВАНИЕ № 1:
После инициализации переменной вам нужно отсчитать ее.
var counter = <?php echo $counter; ?>;
setInterval(function () {
console.log(counter);
counter--;
}, 1000 /*ms*/ );
Других решений пока нет …