gpt4 book ai didi

javascript - 调用函数时在主页上显示警报

转载 作者:可可西里 更新时间:2023-10-31 23:47:21 26 4
gpt4 key购买 nike

我试图在我的主页 index.php 上显示一条警告消息。我使用第二个文件来插入按钮被按下的次数。但是用户应该只能每 5 分钟投票一次。如果投票失败或成功,它应该向他们显示一条警告消息。

现在它总是在 index.php 上显示两个按钮。

索引.php

<html>
<body>
<!-- ** PHP ** -->
<?php
include_once 'resources/method.php';
?>
<!-- ** HTML ** -->
<form id="button1" action="resources/method.php" method="post">
<input type="submit" value="VOTE"/>
</form>
</body>
</html>

方法.php

<?php
// if (5mins passed) {
// } elseif (time <= 5mins) {
// insert query;
// }

// if (5mins passed) {
?>
<div class="alert">
Wait 5mins
</div>
<?php
// } else {
?>
<div class="alert">
Success!
</div>
<?php
// }
?>

<?php
header ( 'Refresh: 5; URL=/project/index.php' );
?>

这是我目前所坚持的 fiddle 。 Fiddle (其实没必要)

它应该只在 5 分钟还没有过去时显示“等待 5 分钟”按钮和“成功!” 5 分钟后应显示按钮。如果用户没有点击“投票”按钮,则不应显示任何内容。

最佳答案

你永远不应该让前端决定你是否被允许投票。
永远不要相信用户输入,这里也不异常(exception)。您可以轻松地在您的 php 代码中添加一些检查:

$time2wait = 300;
if( isset($_POST) ){
if( $_SESSION['last_action']+$time2wait > time() ){
$message = "Sorry, only one vote per ".$time2wait." seconds";
}
else{
// Do you saving stuff
$_SESSION['last_action'] = time(); // store last action
$message = "The action is complete";
}
}
/* other code might go here, or some html, or some templates */
echo $message;

要改进 UI,您可以添加一个计数器。只需将您的消息更改为如下所示:

$message = "Sorry, only one vote per ".$time2wait." seconds";
$message.= "Please wait <span id='counter'>".($_SESSION['last_action']+$time2wait-time())."</span> seconds";

这将向用户显示剩余的秒数。为了进一步改进这一点,javascript:

var count = parseInt(document.getElementById("counter").innerHTML, 10);
function timer(){
count=count-1;
if (count <= 0){
clearInterval(counter);
// Refresh your page here, like: window.location=window.location;
return;
}
document.getElementById("counter").innerHTML=count;
}

var counter=setInterval(timer, 1000); //1000 will run it every 1 second

- The javascript is based on this topic's answer

关于javascript - 调用函数时在主页上显示警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29846471/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com