Dateigrösse: 8.53 kb
1 <?php 2 // function returns browser number or gecko rv number 3 // this function is called by above function, no need to mess with it unless you want to add more features 4 function browser_version( $browser_user_agent, $search_string ) 5 { 6 $string_length = 8;// this is the maximum length to search for a version number 7 //initialize browser number, will return '' if not found 8 $browser_number = ''; 9 10 // which parameter is calling it determines what is returned 11 $start_pos = strpos( $browser_user_agent, $search_string ); 12 13 // start the substring slice 1 space after the search string 14 $start_pos += strlen( $search_string ) + 1; 15 16 // slice out the largest piece that is numeric, going down to zero, if zero, function returns ''. 17 for ( $i = $string_length; $i > 0 ; $i-- ) 18 { 19 // is numeric makes sure that the whole substring is a number 20 if ( is_numeric( substr( $browser_user_agent, $start_pos, $i ) ) ) 21 { 22 $browser_number = substr( $browser_user_agent, $start_pos, $i ); 23 break; 24 } 25 } 26 return $browser_number; 27 } 28 //*************************************************************************** 29 function browser_detection( $which_test ) 30 { 31 // initialize variables 32 $browser_name = ''; 33 $browser_number = ''; 34 // get userAgent string 35 $browser_user_agent = strtolower( $_SERVER['HTTP_USER_AGENT'] ); 36 //pack browser array 37 // values [0]= user agent identifier, lowercase, [1] = dom browser, [2] = shorthand for browser, 38 $a_browser_types[] = array('opera', true, 'opera' ); 39 $a_browser_types[] = array('msie', true, 'msie' ); 40 $a_browser_types[] = array('konqueror', true, 'konqueror' ); 41 $a_browser_types[] = array('safari', true, 'safari' ); 42 $a_browser_types[] = array('gecko', true, 'mozilla' ); 43 $a_browser_types[] = array('mozilla/4', false, 'netscape 4' ); 44 45 for ($i = 0; $i < count($a_browser_types); $i++) 46 { 47 $s_browser = $a_browser_types[$i][0]; 48 $b_dom = $a_browser_types[$i][1]; 49 $browser_name = $a_browser_types[$i][2]; 50 // if the string identifier is found in the string 51 if (stristr($browser_user_agent, $s_browser)) 52 { 53 // we are in this case actually searching for the 'rv' string, not the gecko string 54 // this test will fail on Galeon, since it has no rv number. You can change this to 55 // searching for 'gecko' if you want, that will return the release date of the browser 56 if ( $browser_name == 'moz' ) 57 { 58 $s_browser = 'rv'; 59 } 60 $browser_number = browser_version( $browser_user_agent, $s_browser ); 61 break; 62 } 63 } 64 // which variable to return 65 if ( $which_test == 'browser' ) 66 { 67 return $browser_name; 68 } 69 elseif ( $which_test == 'number' ) 70 { 71 return $browser_number; 72 } 73 74 /* this returns both values, then you only have to call the function once, and get 75 the information from the variable you have put it into when you called the function */ 76 elseif ( $which_test == 'full' ) 77 { 78 $a_browser_info = array( $browser_name, $browser_number ); 79 return $a_browser_info; 80 } 81 } 82 //****************************************************************************** 83 if (getenv("HTTP_CLIENT_IP")) 84 { 85 $ip = getenv("HTTP_CLIENT_IP"); 86 } 87 elseif(getenv("HTTP_X_FORWARDED_FOR")) 88 { 89 $ip = getenv("HTTP_X_FORWARDED_FOR"); 90 } 91 else 92 { 93 $ip = getenv("REMOTE_ADDR"); 94 } 95 $hoster = gethostbyaddr($ip); 96 97 //****************************************************************************** 98 99 $browser = array ( 100 "MSIE", // parent 101 "OPERA", 102 "NETSCAPE", 103 "FIREFOX", 104 "KONQUEROR", 105 "SAFARI" ); 106 107 $info['browser'] = "MOZILLA"; 108 foreach ($browser as $parent) { 109 $s = strpos(strtoupper($_SERVER['HTTP_USER_AGENT']), $parent); 110 $f = $s + strlen($parent); 111 $version = substr($_SERVER['HTTP_USER_AGENT'], $f, 6); 112 $version = preg_replace('/[^0-9,.]/','',$version); 113 114 if (strpos(strtoupper($_SERVER['HTTP_USER_AGENT']), $parent)) { 115 $info['browser'] = $parent; 116 $info['version'] = $version; 117 } 118 } 119 120 //****************************************************************************** 121 if(strstr($_SERVER['HTTP_USER_AGENT'], "MSIE")) { 122 $user_browser = explode(";", $_SERVER['HTTP_USER_AGENT']); 123 $u_browser = substr($user_browser[1], 6); 124 $browser1 = "MS Internet Explorer ".$u_browser; 125 } 126 else if(strstr($_SERVER['HTTP_USER_AGENT'], "U") and strstr($_SERVER['HTTP_USER_AGENT'], "Safari")) { 127 $browser1 = "Safari"; 128 } 129 else if(strstr($_SERVER['HTTP_USER_AGENT'], "U") and strstr($_SERVER['HTTP_USER_AGENT'], "Opera")) { 130 $user_browser = explode("/", $_SERVER['HTTP_USER_AGENT']); 131 $u_browser = substr($user_browser[1], 0, 3); 132 $browser1 = "Opera ".$u_browser; 133 } 134 else if(strstr($_SERVER['HTTP_USER_AGENT'], "Netscape") and strstr($_SERVER['HTTP_USER_AGENT'], "rv:")) { 135 $user_browser = explode("/", $_SERVER['HTTP_USER_AGENT']); 136 $u_browser = substr($user_browser[3], 0, 3); 137 $browser1 = "Netscape ".$u_browser; 138 } 139 else if(strstr($_SERVER['HTTP_USER_AGENT'], "Konqueror")) { 140 $user_browser = explode(";", $_SERVER['HTTP_USER_AGENT']); 141 $u_browser = substr($user_browser[1], 11); 142 $browser1 = "Konqueror ".$u_browser; 143 } 144 else if(strstr($_SERVER['HTTP_USER_AGENT'], "Firefox")) { 145 $user_browser = explode("/", $_SERVER['HTTP_USER_AGENT']); 146 $u_browser = substr($user_browser[3], 0, 5); 147 $browser1 = "Mozilla Firefox ".$u_browser; 148 } 149 else if(strstr($_SERVER['HTTP_USER_AGENT'], "Mozilla") and !strstr($_SERVER['HTTP_USER_AGENT'], "Netscape") and !strstr($_SERVER['HTTP_USER_AGENT'], "Firefox") and strstr($_SERVER['HTTP_USER_AGENT'], "rv:")) { 150 $user_browser = explode(";", $_SERVER['HTTP_USER_AGENT']); 151 $u_browser = substr($user_browser[4], 4, 3); 152 $browser1 = "Mozilla ".$u_browser; 153 } 154 else if(strstr($_SERVER['HTTP_USER_AGENT'], "Lynx")) { 155 $user_browser = explode("/", $_SERVER['HTTP_USER_AGENT']); 156 $u_browser = substr($user_browser[1], 0, 3); 157 $browser1 = "Lynx ".$u_browser; 158 } 159 else if(strstr($_SERVER['HTTP_USER_AGENT'], "Links")) { 160 $user_browser = explode(";", $_SERVER['HTTP_USER_AGENT']); 161 $u_browser = substr($user_browser[0], 7); 162 $browser1 = "Links ".$u_browser; 163 } 164 else if(strstr($_SERVER['HTTP_USER_AGENT'], "Wget")) { 165 $user_browser = explode("/", $_SERVER['HTTP_USER_AGENT']); 166 $browser1 = "Wget ".$user_browser[1]; 167 } 168 else if(strstr($_SERVER['HTTP_USER_AGENT'], "w3m")) { 169 $user_browser = explode("/", $_SERVER['HTTP_USER_AGENT']); 170 $browser1 = "w3m ".$user_browser[1]; 171 } 172 else{ 173 $browser1 = "Unbekannt"; 174 } 175 176 //****************************************************************************** 177 if ( strpos($_SERVER['HTTP_USER_AGENT'], 'Gecko') ) 178 { 179 if ( strpos($_SERVER['HTTP_USER_AGENT'], 'Netscape') ) 180 { 181 $browser = 'Netscape (Gecko/Netscape)'; 182 } 183 else if ( strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') ) 184 { 185 $browser = 'Mozilla Firefox'; 186 } 187 else 188 { 189 $browser = 'Mozilla'; 190 } 191 } 192 else if ( strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') ) 193 { 194 if ( strpos($_SERVER['HTTP_USER_AGENT'], 'Opera') ) 195 { 196 $browser = 'Opera'; 197 } 198 else 199 { 200 $browser = 'Internet Explorer'; 201 } 202 } 203 else 204 { 205 $browser = 'Others browsers'; 206 } 207 //************************************************************************************ 208 209 include "/home/ip6241/includes/mike/db_login.php"; 210 211 $zeit_aktuell = time(); 212 $ergebnis = mysql_query("SELECT * FROM statistics WHERE ip='$ip' AND doc='$doc'"); 213 while ($data = @mysql_fetch_array($ergebnis, MYSQL_ASSOC)) 214 { 215 $zeit_2 = $data['mktime']; 216 $sid = $data['sid']; 217 } 218 $anzahl = @mysql_num_rows($ergebnis); 219 220 $zeit_diff = $zeit_aktuell - $zeit_2; 221 222 if ($anzahl == 0) 223 { 224 $abfrage = "INSERT INTO statistics (hoster,ip,mktime,browser,version,doc) VALUES ('".$hoster."','".$ip."','".time()."','".$info['browser']."','".$info['version']."','".$doc."')"; 225 $resultat = mysql_query($abfrage); 226 $sid = mysql_insert_id(); 227 } 228 elseif ($zeit_diff > 900) 229 { //900 sec. = 15 min. 230 $abfrage = "INSERT INTO statistics (hoster,ip,mktime,browser,version,doc) VALUES ('".$hoster."','".$ip."','".time()."','".$info['browser']."','".$info['version']."','".$doc."')"; 231 $resultat = mysql_query($abfrage); 232 $sid = mysql_insert_id(); 233 } 234 else { 235 $resultat = mysql_query("UPDATE statistics SET mktime='".time()."' WHERE sid=".$sid); 236 } 237 238 $ergebnis_total = mysql_query("SELECT * FROM statistics WHERE doc='$doc'"); 239 $anzahl_total = @mysql_num_rows($ergebnis_total); 240 mysql_free_result($ergebnis_total); 241 mysql_close($verbindung);