PHP/MYSQL IP 检查/记录器

标签 php mysql ip

好的,我有一个 Minecraft 服务器,我正在为它制作一个投票脚本。

我需要一种方法来检查 mySQL 中的用户 ip。 如果它不存在,它会将 ip 放入数据库中,并在 24 小时后将其从数据库中删除。

如果有人能帮我做到这一点,那就太好了,谢谢

最佳答案

网上有很多关于如何实现这一点的教程,因此我不会给你代码。只需一些提示即可帮助您入门。

在PHP中,你可以从$_SERVER superglobal

获取用户的ip地址
$ip = $_SERVER['REMOTE_ADDR'];

检查它是否存在于你的表中

$query = sprintf("SELECT COUNT(*) FROM yourtable WHERE `ip` = '%s'", mysql_real_escape_string($ip));

如果不存在,使用 INSERT 命令和时间戳存储它。

至于在 24 小时后删除,您可以设置一个 cron 作业,每隔一小时左右运行一次表并删除所有已过期的条目。但是,不删除条目会更容易。相反,当用户投票时,只需检查他最后一次投票的时间戳。如果自上次投票以来已过去 24 小时,则只需更新时间戳。

基本上,工作流程是:

1. Get users's IP address.
2. Does this IP exist in table? 
  2a. If no, let user vote, and enter his ip in the table along with the current time in the timestamp column
  2b. If yes, get the timestamp of his last vote. Has it been 24 hours since his last vote?
    2b.a. If yes, let user vote and update timestamp column with current time.
    2b.b. If no, do not let user vote / reject his vote. Leave timestamp column unchanged.

关于PHP/MYSQL IP 检查/记录器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9060596/

相关文章:

mysql - 试图获取独特的论坛帖子列表,但不起作用

php - MySQL 将下个月的记录按 3 天的跨度分组

c# - 如何计算两个ip之间的主机数? C#

ruby-on-rails-3 - Rails 3 应用程序中具有某些子网的 IP 白名单

php - Jquery UI 自动完成功能在 IE10 上不起作用

php - 迭代对象并转换为数组类型

php - WordPress如何更新数据库字段

PHP/mySQL Like 函数不起作用

php - 如何在Symfony2中捕获ParamConverter异常?

c++ - 通过 Socket Creation/getsockname 查找本地 IP