2015-01-04 16 views
0

在我的MySQL數據庫中,您通過遊戲登錄,然後在網站上輸入您的用戶名並查看您的統計信息。這是我的API的信息片段。顯示基於IP地址的動態PHP內容

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

相同的ip!=相同的人...使用cookie代替。 – Orangepill

+0

我會傾向於同意Orangepill在這裏...即使下面的答案可以幫助你實現你的目標,但它確實不是正確的(或安全的)方式。 – Mooseknuckles

回答

0

$_SERVER['REMOTE_ADDR']會給你查看頁面的人的IP地址。

從那裏你只需要將它與你的查詢中的lastip字段進行比較。

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

或者沿着這些線。

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 

該方法將得到他們的名字,如果他們曾經使用過該計算機登錄。