+2

Extrato de Horas utilizando Radius e Radius Report

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

Autenticar os usuários que poderão verificar seus extratos via WEB.

Nesta parte irei explicar como autenticar os usuários via POP. Se você já tem seu sistema de autenticação de usuários ou achar melhor autenticar os usuários de outra forma pode pular essa página e passar para a seguinte.

Segue o script login.php que terá como objetivo somente coletar os dados de LOGIN, SENHA, MÊS e enviá-los ao script extrato.php que veremos a seguir:

conteúdo do login.php:
<html>
<head>
<title>QuediNet Autenticação</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<form name="aut" method="post" action="extrato.php">
  Login:
  <input type="text" name="login" size="8" maxlength="20">
  <br>
  Senha:
  <input type="password" name="senha" size="8" maxlength="20">
  <br>
<?php
    $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="<?php echo $data; ?>"> <?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="submit" name="Acessar" value="Acessar">
</form>
</body>
</html>

Este script extrato.php tem como propósito autenticar os usuários, e se a autenticação for efetuada com sucesso mostrar o extrato do usuário.

conteúdo do extrato.php:
<html>
<head>
<title>Extrato de Horas</title>
</head>
<body>
<?php 
//Usado para iniciar a autenticação
$dsn = "{200.167.191.130/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...
    // essa parte usaremos na próxima página
} else {
    // Usuário ou senha inválido
    echo "Login ou Senha Inválido";
}
?>
</body>
</html>

Até agora o que fizemos foi autenticar o usuário, se o mesmo for autenticado pelo sistema não irá aparecer nada na tela, e se não for autenticado aparecerá a mensagem "LOGIN OU SENHA INVÁLIDO".

Irei na próxima página utilizar este script extrato.php e altera-lo, para que quando o usuário for autenticado será mostrado o extrato do mês que ele selecionou.

(Próxima página :: Dipsonibilizando o Extrato para os clientes)

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 (~13 anos atrás)

Iniciamos a migração de toda a base para o freeradius, incluindo o postfix junto.
06/08/2004 5:01pm (~14 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 (~14 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 (~14 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 (~15 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 (~15 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 (~15 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 (~16 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 (~16 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 (~16 anos atrás)

Novo Comentário:

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