Hi,
ich habe ein Formular, mit dem ich 3 Werte in eine MySql DB schreibe.
Der PHP Code für die DB:
Bis hierhin ist noch alles ok. Die drei Werte werden in die DB geschrieben.
Jetzt kommt aber der (für mich) schwierigere Teil.
Ich hatte vorhin in einem anderen Thread ( http://www.tutorials.de/forum/php/354287-ip-aus-db-auslesen-und-land-stadt-lokalisieren.html ) eine Frage, die mir beantwortet wurde.
Ich will über den Dienst ( http://ipinfodb.com/ip_location_api.php ) mittels IP, zwei Werte auslesen, und diese dann erneut in meine eigene DB schreiben.
Das will ich quasi nacheinander Ausführen (mit der datei addtodb.php, die im Forumlar übergeben wird).
Die Reihenfolge wäre also so:
1.) Mittels Formular die Werte nick, ip und aka in meine DB schreiben.
2.) Über den externen Dienst (mit meiner soeben eingetragenen IP) die Werte "Country name" und "Region name" auslesen, und diese zwei Werte dann in meine DB schreiben.
Das hier ist der Code von der oben genannten Seite:
Hier muss die IP Adresse rein, die ich mit dem Forumlar in meine DB geschrieben habe:
Momentan steht die da ja noch statisch drin. Müsste ich also irgendwie meine $ipadress Variable einbauen (bloß wie?).
Dann denke ich, das ich den Arraywert $ip_data['country_name'] und $ip_data['region_name'] in neue Variablen speichern muss (die Namen, die ich in meiner DB angelegt habe. Wäre also dann $region und $country).
Und diese dann wieder in die DB schreiben.
So die Theorie.
Ich bin auch kein Profi in Sachen PHP. Weiß also nicht so genau, ob mein Weg der Richtige ist, und wie ich das überhaupt umsetzen kann.
Ich bräuchte also nach dem
etwas hilfe.
Mache schon ewig dran rum und bekomme es nicht hin.
So, das war ganz schön viel Code und Text
Vielleicht weiß jemand Rat.
Danke und Gruß
ich habe ein Formular, mit dem ich 3 Werte in eine MySql DB schreibe.
HTML:
<form action="addtodb.php" method="post" id="form">
Nick: <input name="nick" type="text" size="30" id="nick"/>
IP: <input name="ipadress" type="text" size="30" id="ip"/>
AKA: <input name="aka" type="text" size="30" id="aka"/>
<input type="submit" value="Add to DB" id="button"/>
</form>
Der PHP Code für die DB:
PHP:
<?PHP
include ("db.php");
$result = mysql_query("INSERT INTO `test` (nick,ipadress,aka)
VALUES ('$_POST[nick]','$_POST[ipadress]','$_POST[aka]')");
if ($result) {
echo "Alles OK."; }
else {
die(mysql_error()); }
mysql_close ($db);?>
Bis hierhin ist noch alles ok. Die drei Werte werden in die DB geschrieben.
Jetzt kommt aber der (für mich) schwierigere Teil.
Ich hatte vorhin in einem anderen Thread ( http://www.tutorials.de/forum/php/354287-ip-aus-db-auslesen-und-land-stadt-lokalisieren.html ) eine Frage, die mir beantwortet wurde.
Ich will über den Dienst ( http://ipinfodb.com/ip_location_api.php ) mittels IP, zwei Werte auslesen, und diese dann erneut in meine eigene DB schreiben.
Das will ich quasi nacheinander Ausführen (mit der datei addtodb.php, die im Forumlar übergeben wird).
Die Reihenfolge wäre also so:
1.) Mittels Formular die Werte nick, ip und aka in meine DB schreiben.
2.) Über den externen Dienst (mit meiner soeben eingetragenen IP) die Werte "Country name" und "Region name" auslesen, und diese zwei Werte dann in meine DB schreiben.
Das hier ist der Code von der oben genannten Seite:
PHP:
<?php
function locateIp($ip){
$d = file_get_contents("http://www.ipinfodb.com/ip_query.php?ip=$ip&output=xml");
//Use backup server if cannot make a connection
if (!$d){
$backup = file_get_contents("http://backup.ipinfodb.com/ip_query.php?ip=$ip&output=xml");
$answer = new SimpleXMLElement($backup);
if (!$backup) return false; // Failed to open connection
}else{
$answer = new SimpleXMLElement($d);
}
$country_code = $answer->CountryCode;
$country_name = $answer->CountryName;
$region_name = $answer->RegionName;
$city = $answer->City;
$zippostalcode = $answer->ZipPostalCode;
$latitude = $answer->Latitude;
$longitude = $answer->Longitude;
$timezone = $answer->Timezone;
$gmtoffset = $answer->Gmtoffset;
$dstoffset = $answer->Dstoffset;
//Return the data as an array
return array('ip' => $ip, 'country_code' => $country_code, 'country_name' => $country_name, 'region_name' => $region_name, 'city' => $city, 'zippostalcode' => $zippostalcode, 'latitude' => $latitude, 'longitude' => $longitude, 'timezone' => $timezone, 'gmtoffset' => $gmtoffset, 'dstoffset' => $dstoffset);
}
//Usage example
$ip = "74.125.45.100";
$ip_data = locateIp($ip);
echo "IP : " . $ip_data['ip'] . "\n";
echo "Country code : " . $ip_data['country_code'] . "\n";
echo "Country name : " . $ip_data['country_name'] . "\n";
echo "Region name : " . $ip_data['region_name'] . "\n";
echo "City : " . $ip_data['city'] . "\n";
echo "Zip/postal code : " . $ip_data['zippostalcode'] . "\n";
echo "Latitude : " . $ip_data['latitude'] . "\n";
echo "Longitude : " . $ip_data['longitude'] . "\n";
echo "Timezone : " . $ip_data['timezone'] . "\n";
echo "GmtOffset : " . $ip_data['gmtoffset'] . "\n";
echo "DstOffset : " . $ip_data['dstoffset'] . "\n";
?>
Hier muss die IP Adresse rein, die ich mit dem Forumlar in meine DB geschrieben habe:
PHP:
//Usage example
$ip = "74.125.45.100";
$ip_data = locateIp($ip);
Momentan steht die da ja noch statisch drin. Müsste ich also irgendwie meine $ipadress Variable einbauen (bloß wie?).
Dann denke ich, das ich den Arraywert $ip_data['country_name'] und $ip_data['region_name'] in neue Variablen speichern muss (die Namen, die ich in meiner DB angelegt habe. Wäre also dann $region und $country).
Und diese dann wieder in die DB schreiben.
PHP:
$result = mysql_query("INSERT INTO `test` (region,country)
VALUES ('$_POST[region]','$_POST[country]')");
So die Theorie.
Ich bin auch kein Profi in Sachen PHP. Weiß also nicht so genau, ob mein Weg der Richtige ist, und wie ich das überhaupt umsetzen kann.
Ich bräuchte also nach dem
PHP:
//Usage example
Mache schon ewig dran rum und bekomme es nicht hin.
So, das war ganz schön viel Code und Text
Vielleicht weiß jemand Rat.
Danke und Gruß