function LogUsuario($pUserid, $pOrigem, $pLogado) { $gi = geoip_open($_SERVER['DOCUMENT_ROOT'] . "/geoip/GeoLiteCity.dat", GEOIP_STANDARD); $geoip = geoip_record_by_addr($gi, $_SERVER['REMOTE_ADDR']); $db = new BD(); $sql = sprintf("select count(*) qtde from log_usuario\n where\n ip = '%s'\n and sessionid = '%s'", $_SERVER['REMOTE_ADDR'], session_id()); $db->Query($sql); $db->Next(); if ($db->getValue("qtde") == 0) { $sql = sprintf("insert into log_usuario\n\t\t\t\t\t(userid,datahora,origem,logado,ip,sessionid,cidade,estado,pais)\n\t\t\t\t\tvalues (%d,now(),'%s','%s','%s','%s','%s','%s','%s')", $pUserid, $pOrigem, $pLogado, $_SERVER['REMOTE_ADDR'], session_id(), $geoip->city, RetornaEstado($geoip->country_code, $geoip->region), $geoip->country_name); } else { $sql = sprintf("update log_usuario\n\t\t\t\t\t\t\tset userid = %d,\n\t\t\t\t\t\t\t\torigem = '%s',\n\t\t\t\t\t\t\t\tlogado = '%s',\n\t\t\t\t\t\t\t\tqtde = qtde + 1\n\t\t\t\t\t\t\t\twhere\n\t\t\t\t\t\t\t\tip = '%s'\n\t\t\t\t\t\t\t\tand sessionid = '%s'", $pUserid, $pOrigem, $pLogado, $_SERVER['REMOTE_ADDR'], session_id()); } $db->Exec($sql); $db->Close(); geoip_close($gi); }
<?php require_once $_SERVER['DOCUMENT_ROOT'] . "/sessao.php"; require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/class.bd.php"; include $_SERVER['DOCUMENT_ROOT'] . "/geoipcity.inc"; $gi = geoip_open($_SERVER['DOCUMENT_ROOT'] . "/geoip/GeoLiteCity.dat", GEOIP_STANDARD); $db = new BD(); $db2 = new BD(); $sql = sprintf("select sequencia,ip,datahora,cidade from log_usuario where cidade is null\nand datahora >= '2008-01-01 00:00' and ip is not null order by sequencia"); $db->Query($sql); // $db->Next(); while ($db->Next()) { echo $db->getValue("sequencia") . " " . $db->getValue("ip") . " " . $db->getValue("cidade"); $geoip = geoip_record_by_addr($gi, $db->getValue("ip")); $sql = sprintf("update log_usuario\n\t\t\t \t\t\t\tset cidade='%s',\n\t\t\t\t\t\t\t\testado='%s',\n\t\t\t\t\t\t\t\tpais='%s'\n\t\t\t\t\t\t\twhere\n\t\t\t\t\t\t\tsequencia=%d", $geoip->city, RetornaEstado($geoip->country_code, $geoip->region), $geoip->country_name, $db->getValue("sequencia")); $db2->Exec($sql); } $db->Close(); $db2->Close(); geoip_close($gi); function RetornaEstado($pais, $regiao) { require_once $_SERVER['DOCUMENT_ROOT'] . "/geoipregionvars.php"; return $GEOIP_REGION_NAME[$pais][$regiao]; }