显示基于IP地址的动态PHP内容

时间:2015-01-04 20:23:27

标签: php mysql ip

在我的MySQL数据库中,您通过游戏登录,然后在网站上输入您的用户名并查看您的统计数据。这是我的API中的信息片段。

elseif ($_GET['task'] == 'login') {
        $get_user = $_GET['user'];
        $get_db = 'engine';
        $result = mysql_query("SELECT * FROM $get_db WHERE name = '" . mysql_real_escape_string($get_user) . "'", $link);
            while($data = mysql_fetch_array($result)) {
                echo '{"task":"login","password":"'; echo $data['hash'];
                echo '","lastip":"'; echo $data['lastip'];
                echo '","timestamp":"'; echo $data['logindate'];
                echo '"}';
            }
    }

我正在尝试在主页上的搜索文本框下添加一行文本,如果您的IP最近登录到服务器,则会弹出该文本。它会说"嘿,你不是用户名?"

执行此操作需要哪种类型的代码?我需要调用他们的IP,并在数据库中搜索已经过身份验证的所有用户,然后确保根据他们的时间戳显示最新的用户。

3 个答案:

答案 0 :(得分:1)

您可以同时使用 $ _ SERVER ['REMOTE_ADDR'] $ _ SERVER ['HTTP_X_FORWARDED_FOR'] 获取公共IP,有时(使用第二种情况)私人IP。

顺便提一下,请注意old mysql_*() functions are deprecated as of PHP 5.5。您应该使用mysqli或PDO_MySQL扩展。

答案 1 :(得分:0)

$_SERVER['REMOTE_ADDR']会为您提供查看该页面的人的IP地址。

从那里你只需要将它与你查询中的lastip字段进行比较。

$userIP = $_SERVER['REMOTE_ADDR'];
$query = "SELECT * FROM ".$get_db." WHERE lastip = ".$userIP." ORDER BY logindate DESC LIMIT 1";

或类似的东西。

答案 2 :(得分:0)

您可以使用$_SERVER['REMOTE_ADDR'],其中包含查看器的IP。 然后你可以运行

SELECT name FROM 'users' where users.known_ips LIKE '%$ip%' AND users.loggedin = 0 ORDER BY lastlogin DESC LIMIT 1;

('%'表示0个或更多字符。它是wildcard。)然后你可以使用

mysqli_stmt_bind_results($ipquery,$name);
mysqli_stmt_fetch($ipquery);
# Now $name = first username found

如果他们曾使用该计算机登录,则此方法将获得他们的名字。