XML Reader Fout.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<script type="text/javascript">
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","http://ipinfodb.com/ip_query.php?ip=<?php echo $_SERVER['REMOTE_ADDR']; ?>&timezone=false",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
document.write("<table border='0'>");
var x=xmlDoc.getElementsByTagName("CD");
for (i=0;i<x.length;i++)
{
document.write("<tr><td>");
document.write("Je ip:</td><td>")
document.write(x[i].getElementsByTagName("Ip")[0].childNodes[0].nodeValue);
document.write("</td><td>");
document.write("</tr>")
document.write("<tr><td>");
document.write("Je Internet status:</td><td>")
document.write(x[i].getElementsByTagName("Status")[0].childNodes[0].nodeValue);
document.write("</td><td>");
document.write("</tr>")
document.write("<tr><td>");
document.write("Je land:</td><td>")
document.write(x[i].getElementsByTagName("CountryName")[0].childNodes[0].nodeValue);
document.write("</td><td>");
document.write("</tr>")
document.write("<tr><td>");
document.write("Je Regionaam:</td><td>")
document.write(x[i].getElementsByTagName("RegionName")[0].childNodes[0].nodeValue);
document.write("</td><td>");
document.write("</tr>")
document.write("<tr><td>");
document.write("Je Stad:</td><td>")
document.write(x[i].getElementsByTagName("City")[0].childNodes[0].nodeValue);
document.write("</td><td>");
document.write("</tr>")
}
document.write("</table>");
</script>
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","http://ipinfodb.com/ip_query.php?ip=<?php echo $_SERVER['REMOTE_ADDR']; ?>&timezone=false",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
document.write("<table border='0'>");
var x=xmlDoc.getElementsByTagName("CD");
for (i=0;i<x.length;i++)
{
document.write("<tr><td>");
document.write("Je ip:</td><td>")
document.write(x[i].getElementsByTagName("Ip")[0].childNodes[0].nodeValue);
document.write("</td><td>");
document.write("</tr>")
document.write("<tr><td>");
document.write("Je Internet status:</td><td>")
document.write(x[i].getElementsByTagName("Status")[0].childNodes[0].nodeValue);
document.write("</td><td>");
document.write("</tr>")
document.write("<tr><td>");
document.write("Je land:</td><td>")
document.write(x[i].getElementsByTagName("CountryName")[0].childNodes[0].nodeValue);
document.write("</td><td>");
document.write("</tr>")
document.write("<tr><td>");
document.write("Je Regionaam:</td><td>")
document.write(x[i].getElementsByTagName("RegionName")[0].childNodes[0].nodeValue);
document.write("</td><td>");
document.write("</tr>")
document.write("<tr><td>");
document.write("Je Stad:</td><td>")
document.write(x[i].getElementsByTagName("City")[0].childNodes[0].nodeValue);
document.write("</td><td>");
document.write("</tr>")
}
document.write("</table>");
</script>
Ik zocht een tooltje om wat data over mijn bezoeker weer te geven. Nu is dat gelukt met ipinfodb. Zocht ik een script om dat om te bouwen naar een html code, had ik dit gevonden. Eenmaal aangepast werkt het niet:
bij deze regel:
Code (php)
1
xmlhttp.open("GET","http://ipinfodb.com/ip_query.php?ip=<?php echo $_SERVER['REMOTE_ADDR']; ?>&timezone=false",false);
Kreeg ik de error: Toegang geweigerd.
Wat is er aan de hand?
Bedankt.. Ik zal ip info db daarover inlichten, dat hun service niet mogelijk is!
Wat ze wel zouden kunnen doen is http access control implementeren, wat eigenlijk niet meer is dan Access-Control-Allow-Origin:* als header meesturen. Geen idee of Internet Explorer er ook een interface voor heeft, maar Firefox en Webkit ondersteunen dat al met hun XMLHttpRequest object.
Wat jij zou kunnen doen om het te fixen is op je eigen host (hetzelfde domein als waar de html vandaan komt waar je dit stukje javascript in gebruikt) een proxy-scriptje zetten. Gewoon fopen & fpassthru (of echo en file_get_contents, nog makkelijker)
Gewijzigd op 23/08/2010 20:26:52 door Jelmer -
Waarom zou je dit uberhaubt met JS willen als het ook gemakkelijk met PHP kan