Dateigrösse: 8.53 kb
1<?php // function returns browser number or gecko rv number // this function is called by above function, no need to mess with it unless you want to add more features function browser_version( $browser_user_agent, $search_string ) { $string_length = 8;// this is the maximum length to search for a version number //initialize browser number, will return '' if not found $browser_number = ''; // which parameter is calling it determines what is returned $start_pos = strpos( $browser_user_agent, $search_string ); // start the substring slice 1 space after the search string $start_pos += strlen( $search_string ) + 1; // slice out the largest piece that is numeric, going down to zero, if zero, function returns ''. for ( $i = $string_length; $i > 0 ; $i-- ) { // is numeric makes sure that the whole substring is a number if ( is_numeric( substr( $browser_user_agent, $start_pos, $i ) ) ) { $browser_number = substr( $browser_user_agent, $start_pos, $i ); break; } } return $browser_number; } //*************************************************************************** function browser_detection( $which_test ) { // initialize variables $browser_name = ''; $browser_number = ''; // get userAgent string $browser_user_agent = strtolower( $_SERVER['HTTP_USER_AGENT'] ); //pack browser array // values [0]= user agent identifier, lowercase, [1] = dom browser, [2] = shorthand for browser, $a_browser_types[] = array('opera', true, 'opera' ); $a_browser_types[] = array('msie', true, 'msie' ); $a_browser_types[] = array('konqueror', true, 'konqueror' ); $a_browser_types[] = array('safari', true, 'safari' ); $a_browser_types[] = array('gecko', true, 'mozilla' ); $a_browser_types[] = array('mozilla/4', false, 'netscape 4' ); for ($i = 0; $i < count($a_browser_types); $i++) { $s_browser = $a_browser_types[$i][0]; $b_dom = $a_browser_types[$i][1]; $browser_name = $a_browser_types[$i][2]; // if the string identifier is found in the string if (stristr($browser_user_agent, $s_browser)) { // we are in this case actually searching for the 'rv' string, not the gecko string // this test will fail on Galeon, since it has no rv number. You can change this to // searching for 'gecko' if you want, that will return the release date of the browser if ( $browser_name == 'moz' ) { $s_browser = 'rv'; } $browser_number = browser_version( $browser_user_agent, $s_browser ); break; } } // which variable to return if ( $which_test == 'browser' ) { return $browser_name; } elseif ( $which_test == 'number' ) { return $browser_number; } /* this returns both values, then you only have to call the function once, and get the information from the variable you have put it into when you called the function */ elseif ( $which_test == 'full' ) { $a_browser_info = array( $browser_name, $browser_number ); return $a_browser_info; } } //****************************************************************************** if (getenv("HTTP_CLIENT_IP")) { $ip = getenv("HTTP_CLIENT_IP"); } elseif(getenv("HTTP_X_FORWARDED_FOR")) { $ip = getenv("HTTP_X_FORWARDED_FOR"); } else { $ip = getenv("REMOTE_ADDR"); } $hoster = gethostbyaddr($ip); //****************************************************************************** $browser = array ( "MSIE", // parent "OPERA", "NETSCAPE", "FIREFOX", "KONQUEROR", "SAFARI" ); $info['browser'] = "MOZILLA"; foreach ($browser as $parent) { $s = strpos(strtoupper($_SERVER['HTTP_USER_AGENT']), $parent); $f = $s + strlen($parent); $version = substr($_SERVER['HTTP_USER_AGENT'], $f, 6); $version = preg_replace('/[^0-9,.]/','',$version); if (strpos(strtoupper($_SERVER['HTTP_USER_AGENT']), $parent)) { $info['browser'] = $parent; $info['version'] = $version; } } //****************************************************************************** if(strstr($_SERVER['HTTP_USER_AGENT'], "MSIE")) { $user_browser = explode(";", $_SERVER['HTTP_USER_AGENT']); $u_browser = substr($user_browser[1], 6); $browser1 = "MS Internet Explorer ".$u_browser; } else if(strstr($_SERVER['HTTP_USER_AGENT'], "U") and strstr($_SERVER['HTTP_USER_AGENT'], "Safari")) { $browser1 = "Safari"; } else if(strstr($_SERVER['HTTP_USER_AGENT'], "U") and strstr($_SERVER['HTTP_USER_AGENT'], "Opera")) { $user_browser = explode("/", $_SERVER['HTTP_USER_AGENT']); $u_browser = substr($user_browser[1], 0, 3); $browser1 = "Opera ".$u_browser; } else if(strstr($_SERVER['HTTP_USER_AGENT'], "Netscape") and strstr($_SERVER['HTTP_USER_AGENT'], "rv:")) { $user_browser = explode("/", $_SERVER['HTTP_USER_AGENT']); $u_browser = substr($user_browser[3], 0, 3); $browser1 = "Netscape ".$u_browser; } else if(strstr($_SERVER['HTTP_USER_AGENT'], "Konqueror")) { $user_browser = explode(";", $_SERVER['HTTP_USER_AGENT']); $u_browser = substr($user_browser[1], 11); $browser1 = "Konqueror ".$u_browser; } else if(strstr($_SERVER['HTTP_USER_AGENT'], "Firefox")) { $user_browser = explode("/", $_SERVER['HTTP_USER_AGENT']); $u_browser = substr($user_browser[3], 0, 5); $browser1 = "Mozilla Firefox ".$u_browser; } 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:")) { $user_browser = explode(";", $_SERVER['HTTP_USER_AGENT']); $u_browser = substr($user_browser[4], 4, 3); $browser1 = "Mozilla ".$u_browser; } else if(strstr($_SERVER['HTTP_USER_AGENT'], "Lynx")) { $user_browser = explode("/", $_SERVER['HTTP_USER_AGENT']); $u_browser = substr($user_browser[1], 0, 3); $browser1 = "Lynx ".$u_browser; } else if(strstr($_SERVER['HTTP_USER_AGENT'], "Links")) { $user_browser = explode(";", $_SERVER['HTTP_USER_AGENT']); $u_browser = substr($user_browser[0], 7); $browser1 = "Links ".$u_browser; } else if(strstr($_SERVER['HTTP_USER_AGENT'], "Wget")) { $user_browser = explode("/", $_SERVER['HTTP_USER_AGENT']); $browser1 = "Wget ".$user_browser[1]; } else if(strstr($_SERVER['HTTP_USER_AGENT'], "w3m")) { $user_browser = explode("/", $_SERVER['HTTP_USER_AGENT']); $browser1 = "w3m ".$user_browser[1]; } else{ $browser1 = "Unbekannt"; } //****************************************************************************** if ( strpos($_SERVER['HTTP_USER_AGENT'], 'Gecko') ) { if ( strpos($_SERVER['HTTP_USER_AGENT'], 'Netscape') ) { $browser = 'Netscape (Gecko/Netscape)'; } else if ( strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') ) { $browser = 'Mozilla Firefox'; } else { $browser = 'Mozilla'; } } else if ( strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') ) { if ( strpos($_SERVER['HTTP_USER_AGENT'], 'Opera') ) { $browser = 'Opera'; } else { $browser = 'Internet Explorer'; } } else { $browser = 'Others browsers'; } //************************************************************************************ include "/home/ip6241/includes/mike/db_login.php"; $zeit_aktuell = time(); $ergebnis = mysql_query("SELECT * FROM statistics WHERE ip='$ip' AND doc='$doc'"); while ($data = @mysql_fetch_array($ergebnis, MYSQL_ASSOC)) { $zeit_2 = $data['mktime']; $sid = $data['sid']; } $anzahl = @mysql_num_rows($ergebnis); $zeit_diff = $zeit_aktuell - $zeit_2; if ($anzahl == 0) { $abfrage = "INSERT INTO statistics (hoster,ip,mktime,browser,version,doc) VALUES ('".$hoster."','".$ip."','".time()."','".$info['browser']."','".$info['version']."','".$doc."')"; $resultat = mysql_query($abfrage); $sid = mysql_insert_id(); } elseif ($zeit_diff > 900) { //900 sec. = 15 min. $abfrage = "INSERT INTO statistics (hoster,ip,mktime,browser,version,doc) VALUES ('".$hoster."','".$ip."','".time()."','".$info['browser']."','".$info['version']."','".$doc."')"; $resultat = mysql_query($abfrage); $sid = mysql_insert_id(); } else { $resultat = mysql_query("UPDATE statistics SET mktime='".time()."' WHERE sid=".$sid); } $ergebnis_total = mysql_query("SELECT * FROM statistics WHERE doc='$doc'"); $anzahl_total = @mysql_num_rows($ergebnis_total); mysql_free_result($ergebnis_total); mysql_close($verbindung);