Ol� para todos.

Navegando na internet pesquisando algum sistema de extrato online, achei um bastante interessante, desenvolvido pelo Wagner Quedi. Eu e a minha equipe instalamos em dois servidores de testes, sendo: Conectiva 9 e Conectiva 10 rc1.

O interessante desse script desenvolvido em PHP pelo Wagner, � que ele usa o protocolo POP3 para poder autenticar os usu�rios e depois disponibilizar o seu extrato de conex�o.

No Conectiva 9, tudo funcionou muito bem e os usu�rios se autenticam corretamente no POP3 e apresenta o extrato. J� no Conectiva 10 rc1, onde fizemos testes somente para nos acostumar com a futura vers�o da distribui��o que a gente utiliza, o usu�rio n�o consegue autenticar de forma alguma.

Em ambos os servidores, o servi�o POP3 � provido pelo courier-imap e foram compilados no mesmo dia e com os mesmos par�metros e funcionam corretamente, permitindo ao usu�rio se autenticar atrav�s de testes realizados com telnet e clientes de email.

Estou em d�vida se no Conectiva 10 houve alguma altera��o na compila��o do PHP que possa estar influenciando o funcionamento do script.

Algu�m sabe algo a respeito?

Obrigada.

Aline

----

Scripts da autentica��o via pop3:

index.php:

<? include("config.inc.php"); ?>
<html>
<head>
<title><? echo $TITULO_SITE; ?></title>
<link rel="stylesheet" href="estilo.css" type="text/css">
</head>
<body>
<form name="aut" method="post" action="extrato.php">
 <span class="texto">Login:
 <input type="text" name="login" size="8" maxlength="20">
 <br>
 Senha:
 <input type="password" name="senha" size="8" maxlength="20">
 <br>
 <?
  $date = getdate();
  $curmes = $date["mon"];
  $curano = $date["year"];
  $dataa = date("Ym");
  $meses = array( " ", "Janeiro", "Fevereiro", "Mar�o", "Abril",
                  "Maio", "Junho", "Julho", "Agosto",
                  "Setembro", "Outubro", "Novembro", "Dezembro");
?>
 <select name="extmes" size="1" class="edit">
   <option selected value="<? echo $dataa; ?>">
   <? echo "$meses[$curmes] / $curano"; ?>
   </option>
   <?
  for ($i = 1; $i <= 11; $i++) {
    $curmes = ($curmes - 1) % 12;
    if ($curmes == 0) {
      $curmes = 12;
      $curano--;
    }
    $mes = sprintf("%04d%02d", $curano, $curmes);
    echo("<option value=\"$mes\">$meses[$curmes] / $curano </option>\n");
  }
?>
 </select>
 </span> <br>
 <input type="submit" name="Acessar" value="Acessar" class="texto">
</form>
</body>

extrato.php

<? include("config.inc.php"); ?>
<html>
<head>
<title><? echo $TITULO_SITE; ?></title>
<link rel="stylesheet" href="estilo.css" type="text/css">
</head>
<body>
<?
//Usado para iniciar a autentica��o
$dsn = "{" . $IP_AUTENTICA ."/pop:110}";

//func��o que ir� verificar se a senha � valida ou nao ..
function authenticate($dsn, $username, $password)
{
   $imap = @imap_open($dsn, $username ,$password, OP_HALFOPEN);
   if ($imap) {
       @imap_close($imap);
       return true;
   }
   @imap_close($imap);
   return false;
}

//recebe o login, senha e manda autenticar
if (authenticate($dsn,$login,$senha)) {
// Usu�rio autenticado...
$dataa = date("Ym");
$meis = date("m") . "-" . date("Y");
$arq = $PASTA_EXTRATO . $extmes . "/" . $login;
$log = "$login";
if (file_exists($arq)) {
$fp = file($arq);
} else {
echo "<span class='descricao'>" . $MSG_ERRO_NO_EXTRATO . "<BR></span>";
}



//// INICIO DO EXTRATO RESUMIDO

         $total_acessos = count($fp)-7;
         $total_horas = substr($fp[count($fp)-3],14,8);
         $dia_horas = substr($fp[count($fp)-2],23,8);
         $semana_horas = substr($fp[count($fp)-2],42,8);

         $ttmp = explode(":",$fp[count($fp)-1]);
         $ttmp2 = explode("/",$ttmp[1]);
         $total_trafego_ent = $ttmp2[0];
         $total_trafego_sai = $ttmp2[1];

         ?>



<table width="750" border="0" cellspacing="0" cellpadding="0" class="caixa-cinza-rhallado" align="center">
<tr>
<td class="texto">&nbsp;&gt; <? echo $MSG_RESUMIDO_EXTRATO; ?></td>
</tr>
<tr><td><span class="texto">&nbsp;.: Total de Horas Utilizadas:</span><span class="dadocen"> <? echo $total_horas; ?></span></td></tr>
<tr><td><span class="texto">&nbsp;.: M&eacute;dia de Horas Utilizadas por Dia:</span><span class="dadocen"> <? echo $dia_horas; ?></span></td></tr>
<tr><td><span class="texto">&nbsp;.: M&eacute;dia de Horas Utilizadas por Semana:</span><span class="dadocen"> <? echo $semana_horas; ?></span></td></tr>
<tr><td><span class="texto">&nbsp;.: Total de Dados Trafegados ( Uploads ):</span><span class="dadocen"> <? echo $total_trafego_ent; ?></span></td></tr>
<tr><td><span class="texto">&nbsp;.: Total de Dados Trafegados ( Downloads ):</span><span class="dadocen"> <? echo $total_trafego_sai; ?></span></td></tr>
<tr><td><span class="texto">&nbsp;.: Total de Acessos:</span><span class="dadocen"> <? echo $total_acessos; ?></span></td></tr>
</table>


<?

include("extrato.inc.php");
tabelainit($login, $extmes);
for($i2=2; $i2 < count($fp)-4; $i2++) {
// filtra os dados da tabela.
$dados[0] = substr($fp[$i2],0,10);
$dados[1] = substr($fp[$i2],11,8);
$dados[2] = substr($fp[$i2],20,8);
$dados[3] = substr($fp[$i2],29,7);
$dados[4] = substr($fp[$i2],38,4);
$dados[5] = substr($fp[$i2],58,7);
$dados[6] = substr($fp[$i2],51,10);
if (substr($dados[0],0,8) == "Multiple") {
$i2++;
$dados[0] = substr($fp[$i2],0,10);
$dados[1] = substr($fp[$i2],11,8);
$dados[2] = substr($fp[$i2],20,8);
$dados[3] = substr($fp[$i2],29,7);
$dados[4] = substr($fp[$i2],38,4);
$dados[5] = substr($fp[$i2],58,7);
$dados[6] = substr($fp[$i2],51,10);
echo "<td colspan='100%' width='100%' bgcolor='white' valign='top' align='left'><font face=\"verdana\" size=\"-1\" color=\"navy\"><b>Acesso Simult�neo Detectado:</b></font></td>";
tabelaloop("<B>$dados[0]</b>", "<B>$dados[1]</b>", "<B>$dados[2]</b>", "<B>$dados[3]</b>", "<B>$dados[4]</b>", "<B>$dados[5]</b>", "<B>$dados[6]</b>");
}
elseif ($dados[0] == "----------") { }
else {
tabelaloop($dados[0], $dados[1], $dados[2], $dados[3], $dados[4], $dados[5], $dados[6]);
}
}
echo "</table>";
echo "<table border=0 cellpadding=0 cellspacing=1 width=750 bgcolor=gray align=center>";
echo "<tr bgcolor=gray valign=top align=left><td bgcolor=#fefefe>";
echo "<font face=verdana size=-1 color=navy>";
$i2++;
echo "$fp[$i2]";
echo "</font></td></tr>";
tabelafim();
} else {
// Usu�rio ou senha inv�lido
echo "<center><font face=verdana size=2>$MSG_ERRO_LOGIN</font></center>";
}
?>
</body>
</html>


---------------------------------------------------------------------------
Esta lista � patrocinada pela Conectiva S.A. Visite http://www.conectiva.com.br

Arquivo: http://bazar2.conectiva.com.br/mailman/listinfo/linux-br
Regras de utiliza��o da lista: http://linux-br.conectiva.com.br
FAQ: http://www.zago.eti.br/menu.html

Responder a