+2

Extrato de Horas utilizando Radius e Radius Report

criado por Wagner Quedi Rosa em 05/02/2003 8:39pm
Sexto Passo:

Administrar quantas horas os usuários acessaram mensalmente.

Segue abaixo o script uso_geral.php que tem como finalidade mostrar aos administradores o total de horas que cada usuário utilizou durante o mês.

conteúdo do uso_geral.php:
<html>
<head>
<title>Uso Geral de Horas</title>
</head>
<body>
<?php 
if ($selmes == "") {  
    $date = getdate();
    $curmes = $date["mon"];
    $curano = $date["year"];
    $mes = sprintf("%04d%02d", $curano, $curmes);
    $meses = array( " ", "Janeiro", "Fevereiro", "Março", "Abril",
                   "Maio", "Junho", "Julho", "Agosto",
                   "Setembro", "Outubro", "Novembro", "Dezembro");
?>
	 <form action="uso_geral.php" method="POST">
	 <select name="selmes" size="1" class="edit">
	 <option selected value="<?php echo $curano . $curmes; ?>"> <?php echo "$meses[$curmes] / $curano"; ?></option>
<?php 
   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>
	 <br>
	 <input type="hidden" name="autentica" value="sim">
	 <input type=submit value="OK" class="botao">
   </form>
<?php  
} else {
?>
	 <span class="TituloMenu">Controle de Conexão de
	 Usuários!</span><br>
	 <span class="texto">Total de Horas</span><br>
	 <?php 
	 // Controle de Usuarios (Total Mensal!)
	 $extdir="/tarifas/extrato/";
	 $date = getdate();
	 $curmes = $date["mon"];
	 $curano = $date["year"];
	 $mes = sprintf("%04d%02d", $curano, $curmes);
	 $ano = substr($selmes,0,4);
	 $mes = substr($selmes,4,2);
	 $ext = $extdir.$selmes."/total_report";
	 $fd = fopen($ext,"r");
	 echo("Mes: $mes/$ano<p>\n");
	 echo("<table border=0 width='300'>\n");
	 echo("<tr><td align=left class='texto'>Login</td><td align='right'  class='texto'>Horas Utilizadas</td></tr>\n");
	 while ($buffer = fgets($fd, 2048)) {
             $col = explode(":",$buffer);
     		 echo("<tr><td align=left class='texto'>$col[0]</td><td align=right class='texto'>$col[2]</td></tr>\n");
	 }
	 echo("</table>");
	 fclose($fd);
} // fim do if selmes
?>
</body>
</html>

Viu como foi fácil!!! a essa hora teu sistema de extrato de horas já deve estar funcinando.

Agora para terminar com "Chave de Ouro" só faltam os créditos.

(Próxima página :: Créditos e Agradecimentos)

Comentários:

Mostrando 1 - 10 de 33 comentários
Viniciu Silva disse:
Ola pessoal, depois que migrei de sendmail para qmail, meu extrto nao funciona mais... alguem pode me dar alguma ajuda ???
23/03/2005 8:27pm (~19 anos atrás)

Iniciamos a migração de toda a base para o freeradius, incluindo o postfix junto.
06/08/2004 5:01pm (~19 anos atrás)

amigo .. meu radius ta programado para todo dia 1 ele rezetar o detail e guardar o antigo compactado .. acho que só isso resolveria o problema ..
14/06/2004 3:30pm (~20 anos atrás)

Tudo funciona bem, desde que o arquivo detail tenha logs do dia 1/jan a 31/12 do mesmo ano, senao mistura tudo. Isso se deve a problemas com o radiusreport que processa a opcao -d somente o mes e esquece do ano. A solucao seriam duas, alterar o script do radiusreport, mais dificil :) ou separar anualmente o arquivo detail.
01/05/2004 3:50pm (~20 anos atrás)

David Muniz disse:
Estou usando o script no COnecetiva 8 mas não consigo autenticar de jeito nehnhum.

26/12/2003 11:05am (~20 anos atrás)

Olá!
Por enquanto estou usando somente a primeira parte do artigo que não prescisa de PHP...
Numa parte do script eu presciso informar onde está o arquivo detail...
/var/log/radacct/ras/detail...
só que eu tenho três subdiretórios dentro do diretório radacct e consequentemente três arquivos detail... Como é que eu faço pra juntar, ou informar no script para que ele pegue as informações contidas nesses três arquivos????
Valeu!
Gumesson
05/12/2003 10:23am (~20 anos atrás)

amigo estarei disponibilizando esse sistema daqui uns dias aqui ... mas entre em contato comigo pelo mail webmaster@quedinet.com.br que te ajudo a modificar, pois preciso de informações de como é mostrado o numero do tel no seus arquivos de dados do extrato ...
23/04/2003 12:03pm (~21 anos atrás)

esse erro aparece pq não foi gerado os arquivos do extrato através do radrep ..
para gerar os arquivos de todos os meses verifique no comentario anterior ao seu que está descrito como proceder.. qualquer problema me avisa...
10/03/2003 12:36pm (~21 anos atrás)

use esse comando

#mkdir /tarifas/extrato/ANOMES

#tarifas/radiusrep/radrep -t -l all -f /local/do/seu/detail -d MES -o /tarifas/extrato/ANOMES

subistitua o ano e o mes pelo ano e mes que vc deseja ..

cara.. so que tem um probleminha se vc colocar o MES 02 ele vai gerar 02 de 2003 se vc colocar 04 ele gera 04 de 2002 (pois ainda nao passamos pelo mes 04 de 2003

ainda nao achei uma solução para gerar os meses de 01 de 2002 nem 02 2002 nem 03 2002

mas ja adianta um bocado ..

qualquer coisa é so falar..
05/03/2003 8:28pm (~21 anos atrás)

sobre como eliminar uma parte vc pode usar esse comando ..
<?
$login = "xxx@teste.com.br";
$dados = explode("@", $login);
echo $dados[0]; //aparecerá o login
echo $dados[1]; //aparecerá o dominio
?>

qualquer coisa me da um toque,.. fui ...
03/03/2003 7:19pm (~21 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)