2016-08-04 14 views
-1

コンピュータのIPアドレスを取得する必要があり、そのIPアドレスが自分のデータベースにあるかどうかを確認する必要があります。そうだった場合は、自分のデータベースに登録されているIPアドレスに登録されている名前を表示する必要があります。IPアドレスを知り、データベースに登録されているかどうかを確認してください

実際にはエラーが検出されず、出力が表示されないので混乱しています。

ここに私のコード


<?php 
$ipname = gethostbyname(trim(`hostname`)); 
$ip_query = "SELECT ip_address FROM table 5"; 
$ip_add = mysql_query($ip_query); 

if ($ip_add === $ipname){ 
echo "{$ip_add['guest_name']}"; 
} 
?> 
+2

ようこそスタックオーバーフローに!あなたのコードが「うまくいかない」方法を詳しく説明できますか?あなたは何を期待していましたか、実際何が起こったのですか?例外/エラーがある場合は、それが発生した行と例外/エラーの詳細を投稿してください。これらの詳細を入力または編集してください。 – FrankerZ

+0

この回答に記載されている機能を使用することができます。http://stackoverflow.com/questions/1634782/what-is-the-most-accurate-way-to-retrieve-a-users-correct-ip-address-in- php – Diab

+0

@Diab彼の質問には何が関係していますか? – FrankerZ

答えて

0

は、IPは、いくつかのケースでは動作しませんので、まずあなたはそれがhereを実現される機能を使用して取得する必要が取得している方法です。クエリ自体は最初の5行しか取得していないので、 "where"部分を追加する必要があるので、クエリは次のようになります。$ ip_query = "SELECT ip_address FROM table ip = $ ipname";その後、あなたがするmysql_queryの出力を比較するべきではありません、出力はあなたが結果

$num_rows = mysql_num_rows($ip_add) 
if ($num_rows>=1) { 
$ip = mysql_result($ip_add,0,'ip_address'); 

// then compare the ip variable with the one you have from the function 

} 
0

検索、与えられたfunctionIP Addressを取得するために別の関数を使用すべきMySQLのリソースです。そこに質問をチェックインしてください。 ip addressが存在する場合は、guest nameを印刷してください。

[注::私はテーブル名としてYourTableNameを使用しました。クエリで適切なテーブル名を入れてください。]

<?php 
$ipname = getIpAddress(); 

$query = mysql_query("SELECT guest_name FROM `YourTableName` WHERE ip_address = '$ipname'"); 
$countUser = mysql_num_rows($query); 

if($countUser > 0){ 
    while($row = mysql_fetch_array($query)){ 
    echo "User Name: ".$row['guest_name']."<br>"; 
    } 
} else { 
    //Your Logic 
} 

function getIpAddress() { 
    if (!empty($_SERVER['HTTP_CLIENT_IP'])) { 
    return $_SERVER['HTTP_CLIENT_IP']; 
    } else if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { 
    $ips = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); 
    return trim($ips[count($ips) - 1]); 
    } else { 
    return $_SERVER['REMOTE_ADDR']; 
    } 
} 
?> 

NOTE: The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead

関連する問題