[英]Php inside js condition
我在 js 條件下使用 php 功能進行 js 倒計時。 除了重新加載頁面時 php 功能仍然運行之外,一切都很好。
var countDownDate = new Date("2020/04/25 16:15:25").getTime();
var x = setInterval(function() {
var now = new Date().getTime();
var distance = countDownDate - now;
var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
var seconds = Math.floor((distance % (1000 * 60)) / 1000);
document.getElementById("demo").innerHTML = hours + "h " + minutes + "m " + seconds + "s ";
if (distance < 0) {
clearInterval(x);
document.getElementById("demo").innerHTML = "SESSION EXPIRED";
<?php block_user(2); ?>
document.getElementById("demo2").innerHTML = "User 2 blocked";
}
}, 1000);
如果 block_user(2) 實際上阻塞了數據庫中的用戶,那么它似乎是在第一個頁面加載時執行的。 PHP 將在頁面加載時執行。 它不會被推遲到 javascript 中的條件。 如果您的 function 阻止您多次阻止用戶,這就是如果您重新加載頁面它不起作用的原因。 您必須對 PHP 腳本進行一些異步調用。
if (distance < 0) {
clearInterval(x);
document.getElementById("demo").innerHTML = "SESSION EXPIRED";
$.post("block_user.php", {user_id:2}).done(function (response) {console.log(response);});
document.getElementById("demo2").innerHTML = "User 2 blocked";
}
然后 block_user.php 會在 $_POST['user_id'] 中查找 user_id 並執行 block_user($_POST['user_id']);
這是一個簡化的解決方案,它不考慮安全性或清理您的帖子變量,但它是解決您的問題的開始。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.