在我的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,并在数据库中搜索已经过身份验证的所有用户,然后确保根据他们的时间戳显示最新的用户。
答案 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
如果他们曾使用该计算机登录,则此方法将获得他们的名字。