JavaScript ausgabe

nick25

Well-known member
ID: 205997
L
30 Mai 2009
515
23
hallo,

ich habe diesen code im internet gefunden.

PHP:
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<script src="//j.maxmind.com/js/apis/geoip2/v2.0/geoip2.js"></script>

<script type="text/javascript">
geoip2.cityISPOrg(function (response) {
    $("#country").html(response.country.names.en);
    $("#longitude").html(response.location.longitude);
    $("#latitude").html(response.location.latitude);
    $("#region").html(response.most_specific_subdivision.names.en);
    $("#postal").html(response.postal.code);
    $("#city").html(response.city.names.en);
    $("#registered_country").html(response.registered_country.names.de);
    $("#isp").html(response.traits.isp);
    $("#proxy").html(response.traits.is_anonymous_proxy);
    $("#ip").html(response.traits.ip_address);
}, null, { w3cGeolocationDisabled: true });
</script>
	
<p>
    <span id="country"></span>,
    <span id="longitude"></span>,
    <span id="latitude"></span>,
    <span id="region"></span>,
    <span id="postal"></span>,
    <span id="city"></span>,
    <span id="registered_country"></span>,
    <span id="isp"></span>,
    <span id="ip"></span>,
    is proxy? <span id="proxy"></span>
 </p>

der ist perfekt für eine seite die ich bastle(ähnliche seite wie www.wieistmeineip.de). das problem ist, das ich die ausgabe in html/php möchte, da ich später vor habe die daten auf ein banner zu schreiben.

ich habe goggle jetzt seit gästern geärgert und keine richtige lösung gefunden. er zeigt mir die daten nicht im quelltext an. am liebsten wäre mir das, daß ganze in php wäre. weil ich mich mit javascript nich auskenne.

es wäre super wenn sich jemand damit auskennt.

gruss
nick25
 
Zuletzt bearbeitet:
stimmt, das php script was die anbieten ist viel mit phar und der rest muss man ein license key haben.

kennt sich niemand mit javacript aus?
 
Wenn du das einbindest kannst du doch per JS auf die Daten auch zugreifen, dann kannst du das per AJAX aufurfen und an PHP weiter geben bzw. du bindest dann ein bild (PHP-Datei) ein, an das du die Parameter weiter gibst.
 
Hier ganz primitiv, ohne deine Bibliothek wirklich zu kennen:

HTML:
<script type="text/javascript"> 
geoip2.cityISPOrg(function (response) { 
    document.write('<img src="mein-php-image-script.php?country=' + response.country.names.en + '&longitude=' + response.location.longitude + '&latitude=' + response.location.latitude + '" alt="" />');
}, null, { w3cGeolocationDisabled: true }); 
</script>

Den PHP-Teil müsstest du noch selber dazu schreiben.
 
Hier ganz primitiv, ohne deine Bibliothek wirklich zu kennen:

HTML:
<script type="text/javascript"> 
geoip2.cityISPOrg(function (response) { 
    document.write('<img src="mein-php-image-script.php?country=' + response.country.names.en + '&longitude=' + response.location.longitude + '&latitude=' + response.location.latitude + '" alt="" />');
}, null, { w3cGeolocationDisabled: true }); 
</script>

Den PHP-Teil müsstest du noch selber dazu schreiben.

das ist schonmal eine super idee. aber mein problem ist die übergabe der daten z.b country=' + response.country.names.en + ' an php. der rest ist ja nurnoch php und kein problem. das einfachste bekomme ich nich hin.
 
das ist schonmal eine super idee.
Um ehrlich zu sein ist das eher eine ziemlich doofe Idee.

(...) das einfachste bekomme ich nich hin.
Ich hab ehrlich gesagt keine Ahnung, was du überhaupt vor hast. Versuch doch mal mehr Infos zu geben. Irgendwo hast du geschrieben, dass du einen Banner mit den Daten erstellen willst. Was genau soll da drauf stehen? Wo soll der Banner eingebunden werden (eigene Webseite, Partner-Webseite, Forum-Signaturen ???) Warum überhaupt ein Banner und keine direkte HTML-Ausgabe? Wie viele Anfragen an die Geo-Datenbank musst du stellen? Hast du ein komerzielles Projekt vor und rechnest mit großen Ansturm? Oder ist das nur für dich und du machst am Tag nur 'ne handvoll anfragen an die Geo-Datenbank?

Und warum gerade die MaxMind-Datenbank? Es gibt auch andere Anbieter, mit evtl. anderem Leistungsumfang, aber dafür auch mit anderen Lizenz-Modellen.

Schau dir z.B. mal https://freegeoip.net/ an. Da kannst du mit
PHP:
'https://freegeoip.net/json/' . $_SERVER['REMOTE_ADDR']
und
PHP:
json_decode()
schon viel Infos bekommen und musst keinen komischen Umweg über JavaScript gehen.
 
die seite zeigt mir die falsche stadt an. maxmind.com ist dagegen klasse, der zeigt mir seit 3 tagen die richtige stadt an. und wenn ich ehrlich bin auch die koordinaten kommen fast hin. meistens sind es mir ca. 500 meter bis zu meiner wohnung.

ich habe gelesen das man es mit einem hidden imput feld übergeben kann. leider mache ich irgendwas falsch. javascript ist irgendwie nich meine sprache. hättest du nich ein 2 oder so zeiler damit ich es mit

<?php
echo $city;
?>

aufrufen kann? ich möchte nur die daten die mir in javascript angezeigt werden in php ausgeben sprich von javascript zu php. wenn ich den schnippsel(javascript) im post1 mir ausgeben lasse, die ausgabe nicht im quelltext angezeigt wird und ich es nicht in php übernehmen kann.
 
Zuletzt bearbeitet:
Also das mit echo wird so nicht klappen, denn du musst bei wahnsinns beispiel von php ein bild zurück geben lassen. Willst du Text ausgeben lassen, dann musst du den Aufruf per Ajax machen, die Rückgabe dann in ein Html-Element fügen (was aber die API von dir ja bereits macht/machen sollte).

Du kannst aber auch ein iframe sonst statt eines Bildes einfügen....

Könntest du mal genau aufschreiben was du überhaupt vor hast?? Sehe gerade keinen Sinn darin was du machen willst.
 
ganz einfach. das mit dem bild kommt erst viel später. ich möchte nur das ich die javascript ausgabe von dem schnippsel in php übergebe.

sprich diese ausgabe(siehe post1):

PHP:
<p>
    <span id="country"></span>,
    <span id="longitude"></span>,
    <span id="latitude"></span>,
    <span id="region"></span>,
    <span id="postal"></span>,
    <span id="city"></span>,
    <span id="registered_country"></span>,
    <span id="isp"></span>,
    <span id="ip"></span>,
    is proxy? <span id="proxy"></span>
 </p>

im end effekt mit echo ausgeben oder wenn man will auch in die datenbank speichern. das mit den daten aufs bild speichern kommt erst viel viel später. dafür brauche ich wieder javascript
 
Wozu die Daten vom Client zurück an PHP schicken lassen, wenn Du sie auch direkt in PHP abfragen kannst? Das Javascript wird auch nur die JSON-API abfragen und die Ausgabe verwerten.

Die Doku der API bei MaxMind ist doch eigentlich nicht verkehrt. Alles, was Du brauchst, ist ein Demo oder License Key, um die JSON-API abzufragen. Dadurch hast Du alle Daten in PHP und kannst Dir sicher sein, dass die nicht vom Client verfälscht wurden.
 
Wozu die Daten vom Client zurück an PHP schicken lassen, wenn Du sie auch direkt in PHP abfragen kannst? Das Javascript wird auch nur die JSON-API abfragen und die Ausgabe verwerten.

Die Doku der API bei MaxMind ist doch eigentlich nicht verkehrt. Alles, was Du brauchst, ist ein Demo oder License Key, um die JSON-API abzufragen. Dadurch hast Du alle Daten in PHP und kannst Dir sicher sein, dass die nicht vom Client verfälscht wurden.

ich möchte es mir zurück schicken lassen weil ich die kosten für eine lizenz sparen möchte. klar ist es über die api einfacher.

wäre jemand so nett und würde mir kurz verraten wie ich die Daten vom Client zurück an PHP schicken lassen kann.

vielen dank
 
wäre jemand so nett und würde mir kurz verraten wie ich die Daten vom Client zurück an PHP schicken lassen kann.
Mit einem weiteren/neuen/zusätzlichen Request, z.B. per AJAX, img-Tag oder iframe. Am einfachsten mit angehängten GET-Parametern.

Wurde alles schonmal erwähnt oder zumindest angerissen.
 
habe ich gesehen und ausprobiert. ob es nun mit post oder get übergeben wird ist mir egal nur igendwie funktioniert es nich.
 
ich möchte es mir zurück schicken lassen weil ich die kosten für eine lizenz sparen möchte. klar ist es über die api einfacher.
Hm, ob das so gedacht ist?

Naja, letztendlich ist das Zurücksenden der Daten doch simpel. Du hast ja schon jQuery geladen, also setz in dem Callback einfach einen AJAX-Request mit der Response an Deinen Server ab:
HTML:
<script>
geoip2.cityISPOrg(function (response) {
   $.post('ajax.php', {response: response});
}, null, { w3cGeolocationDisabled: true });
</script>
Aufgrund der Menge der Daten solltest Du POST wählen. GET-Requests sind auf eine bestimmte Länge begrenzt.