[英]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.