1

我是 php 的初学者,我需要你的帮助来解决以下问题。假设我有两个页面 - index.php(用户需要执行一些操作)和redeem.php(他生成的代码)。现在,它应该如何工作:

  • 用户每天只能执行一次任务(),如果任务已经完成,则显示正确的消息
  • 完成任务后可以访问redeem.php (✔ - 完成)
  • 如果用户没有投票,redeem.php 应该有一些保护(✔ - 完成)

现在..我不知道如何解决第一点。我可以根据 cookie 来做到这一点,但是一些“聪明”的用户可以简单地删除它们:/ 所以这是没有意义的。我想最好的方法是 mysql 但我完全不知道如何抓住完成任务的时间然后使用它,这取决于用户今天是否完成了他的任务。好的,我希望你能理解所有这些;p 并期待你们的一些好的建议谢谢!;-)

4

2 回答 2

1

我会创建一个voting_records包含一user_id列和一vote_datetime列的表。要创建新记录:

INSERT INTO `voting_records` (user_id, vote_datetime) VALUES (123, NOW());

要检查用户是否在过去 24 小时内投票:

SELECT (DATEDIFF(NOW(), max(vote_datetime)) < 24*60*60) AS already_voted FROM voting_records WHERE user_id = 123
于 2013-06-24T13:57:32.367 回答
1

您只需保存此特定操作可用的日期,而不是 cookie。所以你可以做类似的事情

$expireTime = strtotime("+1 day");

使用过期时间,您可以简单地检查当前时间是否主要或等于过期日期:

if (time() >= $expireTime) {
    echo "Hey, you already voted!";
} else {
    header("Location: /redeem.php");
    exit;
}

显然,如果没有一段代码可以开始,我不能更具体。

于 2013-06-24T13:58:16.297 回答