flock($fp, LOCK_EX); } flock($fp, LOCK_UN); fclose($fp); } // Track this hit if ($track_hit) { // Get information from the existing session if ($cookie_session !== false) { $session['l'] = $cookie_session['l']; $session['p'] = $cookie_session['p']; $session['c'] = $cookie_session['c']; $session['cq'] = $cookie_session['cq']; } else { // Get country id and quality list($session['c'], $session['cq']) = geoip_country($_SERVER['REMOTE_ADDR']); // Get system language if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) && preg_match('~^([^,;]+)~', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $matches)) { $session['l'] = strtolower($matches[1]); } // Check proxy headers if (isset($_SERVER['HTTP_VIA']) || isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $session['p'] = true; } } // Generate session file $fp = fopen($session_file, 'w'); flock($fp, LOCK_EX); fwrite($fp, serialize($session)); flock($fp, LOCK_UN); fclose($fp);
function convertip_geo($ip='', $ipdatafile='') { return geoip_country($ip); }