Added new structure for iplookups (ie called from logs).
[moodle.git] / iplookup / ipatlas / plot.php
1 <?php  
3 include("plotconf.inc");
4 include("plot.inc");
6 if (isset($user)) {
7     $user = get_record("user", "id", $user);
8     $fullname = fullname($user, true);
9     $username = "<b>$fullname</b> [$user->city, $user->country] : ";
10 } else {
11     $username = "";
12 }
14 if ($CFG->debug > 1) {
15 error_reporting(E_ALL);
16 } else {
17 error_reporting(E_ERROR);
18 }
20 // cleanup
21 if (isset($HTTP_GET_VARS["lastquery"])) {
22     $HTTP_GET_VARS["lastquery"] = clean_param($HTTP_GET_VARS["lastquery"], PARAM_HOST);
23 }
25 // check if it is the user's ip, or another host
27 if(!isset($HTTP_GET_VARS["address"]) || ($HTTP_GET_VARS["address"] == "")) { 
28     $address = $HTTP_SERVER_VARS['REMOTE_ADDR'];
29     $local = 1; 
30 } else {
31     $HTTP_GET_VARS["address"] = clean_param($HTTP_GET_VARS["address"], PARAM_HOST);
32     $address = $HTTP_GET_VARS["address"];
33     $local = 0; 
34 }
36 // this is the most important function, gets lat/lon and description of location
37 $values = getstuff($address, $local) or die("Error in plot.inc");
39 if(isset($logging) && is_writable("plotlog.txt")) {
40   $log = @fopen("plotlog.txt", "a") or print "";
41   @fputs($log, $HTTP_SERVER_VARS["REMOTE_ADDR"] ."\t". date("F j, Y, g:i a") . "\t$address\t$values[address]\t$values[lat]\t$values[lon]\n") or print "";
42 @fclose($log);
43 }
45 if(isset($HTTP_COOKIE_VARS["atlasprefs"]) && validcookie($HTTP_COOKIE_VARS["atlasprefs"])) {
46 list( , , , $imagething) = split(":", $HTTP_COOKIE_VARS["atlasprefs"]);
47 $imagething = clean_param($imagething, PARAM_FILE);
48 $earthimage = isvalidimage($imagething, $earthimages, $defaultimage);
49 } else {
50 $earthimage = $earthimages[$defaultimage];
51 }
53 if(strstr($earthimage, ":")) {
54     list($earthimage, , , ) = split(":", $earthimage);
55 }
57 // check if we need to run it in css mode
58 if(!shouldrun($HTTP_SERVER_VARS['HTTP_USER_AGENT'])) {
60 list($width, $height) = getimagecoords($earthimages, $earthimage);
62   // make sure some coords were found
63   if($values["lat"] == "" || $values["lon"] == "") { 
65     $display = "&nbsp;";
66     $extracss = "";
68 } else {
70 list($x, $y) = getlocationcoords($values["lat"], $values["lon"], $width, $height);
72 if(isset($HTTP_COOKIE_VARS["atlasprefs"])) {
73 list( , , , , $dotname) = split(":", $HTTP_COOKIE_VARS["atlasprefs"]);
74 $dotname = clean_param($dotname, PARAM_FILE);
75 list($thedot, $dotwidth, $dotheight) = finddot($dotname, $cssdots, $defaultdot);
76 } else {
77 $dotname = $cssdots[$defaultdot];
78 list($dotname, , , ) = split(":", $dotname);
79 $dotname = clean_param($dotname, PARAM_FILE);
80 list($thedot, $dotwidth, $dotheight) = finddot($dotname, $cssdots, $defaultdot);
81 }
83 // magical formula for placing the css dot
84 $x = ($x - floor($dotwidth / 2));
85 $y = ($y - floor($dotheight / 2));
87 $extracss = "<style>
88 #dotDiv { padding-left:$x; padding-top:$y; }
89 </style>";
90 $display = "<div id=\"dotDiv\"><img width=\"$dotwidth\" height=\"$dotheight\" src=\"$thedot\">";
92   }
94 } else {
96   // gd mode
98 list($width, $height) = getimagecoords($earthimages, $earthimage) or die("Unable to find width/height for image $earthimage in config file");
99 $extracss = "";
100 $display = "<img src=\"plotimage.php?lat=$values[lat]&amp;lon=$values[lon]\" width=\"$width\" height=\"$height\" alt=\"\" />";
104 # START HTML
106 print '
108 <html><head><title>'.t("Plotting").' '.$values["address"].'</title>
109 '.$extracss.'
111 <!-- your head tags here -->
112 <link rel="Stylesheet" href="ip-atlas.css">
113 </head><body bgcolor="#FFFFFF">
116 <a name="map"></a>
118 <table valign="top" cellpadding=0 cellspacing=0 border=0 background="'.$earthimage.'" width="'.$width.'" height="'.$height.'"><tr><td valign="top">'.$display.'</td></tr></table>
121 <br />
122 ';
124 if(isset($address)) {
125 print "$username $values[desc]";
128 $PHP_SELF = 'plot.php';
130 print '
131 <br /><br />
132 <form method="GET" action="'.$PHP_SELF.'#map">
133 <table width="100%"><tr><td nowrap align="left">
134 '.t("IP/Hostname:").' <input value="'.$values["address"].'" type="text" size="30" name="address"><input type="Submit" value="'.t("Submit").'"></td><td align="right" width="100%">
135 [ <a href="ip-atlas_prefs.php?lastquery='?><?php  if(isset($HTTP_GET_VARS["address"])) { echo $HTTP_GET_VARS["address"]; } ?><?php  echo '">'.t("preferences").'</a> ]
136 [ <a href="'."$PHP_SELF".'">'.t("locate me").'</a> ]
137 </td></tr></table>
138 </form>
139 ';
141 include("footer.inc");
143 print "</body></html>";
145 ?>