"; echo ""; //recebe dados do formulario $filename = $_FILES['filename']['tmp_name']; $cod_grupo = $_POST['cod_grupo']; If(!$filename and !$cod_grupo) //mostra formualario { //inicializa a ficha sincronizadora com um valor aleatorio $_SESSION["synctoken"]= uniqid(time( )); echo "LEITURA DE ARQUIVO

"; echo "
"; echo ""; echo ""; echo "
Arquivo:
"; echo ""; echo "

"; echo "
"; echo "
"; } Else //le arquivo { //confere se ficha sincronizadora ok If($_POST['token'] != $_SESSION['synctoken']) { erro('Operacao Cancelada! Tentativa de invasao ou duplicacao.'); exit; } //troca valor da ficha de sincronizadora $_SESSION["synctoken"]= uniqid(time( )); //validacao If(!$filename) { erro('Campo arquivo obrigatorio!'); } $datafile = fopen($filename, "r" ) ; If($datafile) { //pega conteudo do arquivo de texto While(!feof($datafile)) { $buffer .= fgets($datafile, 4096); } //trata arquivo $buffer = htmlentities($buffer); //nao interpreta tags html $buffer = str_replace("\n\n","\n",$buffer); //retira quebras de linhas //verificacao de seguranca dos dados do arquivo (sql injection) If(inject($buffer)) { mail($email_administrador,'*TENTANTIVA SQL INJECTION - LEITURA DE ARQUIVO*',$REMOTE_ADDR.' TENTOU UM SQL INJECTION ATRAVES DO ARQUIVO '.$_FILES['filename']['name'].' AS '.date('d/m/Y H:i:s'),'From: LEITURA DE ARQUIVO\r\n'); erro('ALERTA! Tentativa de SQL INJECTION. O administrador foi avisado'); exit; } //separa registros por linha $registros = explode("\n",$buffer); //cria transacao pg_exec("BEGIN TRANSACTION"); $contadora=0; Foreach($registros as $conteudo) { If($conteudo) { echo ""; registros($conteudo); echo "
"; } } //finaliza transacao If($contadora == 0) { pg_query("COMMIT TRANSACTION"); ?> OK
"; } Else { echo "FAILED
"; } ?>