Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda - Login E Senha Em Txt


REALMISTERMIX

Pergunta

OLÁ PESSOAL!

GOSTARIA DE SABER SE TEM COMO FAZER O SEGUINTE:

TENHO UM DIRETÓRIO NO QUAL SERÃO ARMAZENADOS OS TXT'S.

CADA ARQUIVO TXT, POSSUI UMA UMA NUMERAÇÃO DIFERENTE NAS LINHAS 4 E 5. EU QUERIA CRIAR UMA CAIXA COM LOGIN E SENHA QUE CHAMASSE O ARQUIVO ATRAVÉS DAS LINHAS 4 E 5, OU SEJA, A LINHA 4 SERIA O USUÁRIO E A LINHA 5 A SENHA.

ENTÃO, QUANDO EU QUISESSE VERIFICAR O ARQUIVO, SERIA SÓ DIGITAR A 4ª LINHA COMO USUÁRIO E A 5ª LINHA COMO A SENHA E O ARQUIVO SERIA ABERTO.

ALGUÉM SABE COMO POSSO FAZER ISTO?

MODELO DO TXT:

==========================

RE

RE: 05109666 Nome: TESTE

N

05109666 (SERIA O USUÁRIO)

DZ27 (SERIA A SENHA

05109666

==========================

CONTEÚDO DO TXT.

==========================

AGRADEÇO A AJUDA DE TODOS DESDE JÁ!

VLW, ABRAÇOS!!!

Link para o comentário
Compartilhar em outros sites

23 respostass a esta questão

Posts Recomendados

  • 0

DESCULPE, ESQUECI DE COLOCAR ALGUMAS COISAS:

A DÚVIDA É O SEGUINTE, CADA ARQUIVO TXT TEM UM NOME DIFERENTE.

CRIEI UM DIRETÓRIO CHAMADO ARQUIVOS, DENTRO DESTE DIRETÓRIO HAVERÃO VÁRIOS TXT'S COM NOMES DIFERENTES.

o que EU QUERO SABER, É SE TEM COMO EU EXIBIR CADA UM, INDEPENDENTE DO NOME DO ARQUIVO.

QUERO TENTAR CRIAR UMA ROTINA QUE FUNCIONE COMO AUTENTICAÇÃO, BUSCANDO DETERMINADAS LINHAS DO ARQUIVO, COMO POR EXEMPLO, A 4ª LINHA SENDO O USUÁRIO E A 5ª LINHA SENDO A SENHA (EXEMPLO), COMPARANDO CADA LINHA E EXIBINDO O ARQUIVO.

GLADISSON, você TEM RAZÃO, ACHO MELHOR SALVAR CADA ARQUIVO COMO .PHP, VLW! AÍ EU CRIO UM HEADER PARA DEIXÁ-LOS PERSONALIZADOS.

ACHO QUE A IDÉIA É ESTA, MAS NÃO SEI COMO APLICÁ-LA. SE ALGUÉM PUDER ME DAR UMA AJUDA NESTA DÚVIDA EU AGRADEÇO!

VLW PESSOAL!

Editado por REALMISTERMIX
Link para o comentário
Compartilhar em outros sites

  • 0

Olá pessoal!

Já pesquisei em todos os tópicos e não encontrei nada que se enquadre no que preciso.

A parte da exibição do arquivo eu já fiz, inclusive já salvando em formato .php ao invés de .txt.

O problema é a parte da página de login que buscará o arquivo no diretório.

Queria que funcionasse assim:

Criei um diretório chamado "arquivos".

Dentro deste diretório, estão diversos arquivos .txt ou php.

Preciso criar uma página de login, onde serão buscados como usuário, a linha 4 do arquivo e a senha seria a linha 5 (isto é um exemplo).

O problema é que cada arquivo dentro do diretório tem um nome diferente, como eu disse antes, são vários arquivos.

Não sei como criar uma rotina para fazer a página de login, onde buscaria o usuário e a senha dentro de determinado arquivo. Ou seja, não seria o caso, definir o tipo de arquivo para a busca. Na verdade, a rotina deveria varrer os arquivos e comparar os campos para exibir o arquivo correspondente às linhas 4 e 5.

Não sei se estou sendo claro. Já pesquisei neste e em outros fóruns e nada achei que pudesse ser útil.

Veja... Não é o problema, abrir os arquivos, ou listá-los... isso eu já fiz.

Não quero listar os arquivos e sim, chamá-los diretamente pela página de login.

Ao efetuar o login, colocando o usuário e senha correspondentes, abriria um determinado arquivo, por exemplo:

MODELO DO ARQUIVO (PODE SER .PHP OU .TXT):

Neste exemplo, o arquivo tem o nome de 987653.php

==========================

RE

RE: 05109666 Nome: TESTE

N

05109666 (SERIA O USUÁRIO)

DZ27 (SERIA A SENHA

05109666

==========================

CONTEÚDO DO TXT.

==========================

Imagine que tem vários arquivos deste tipo, com nomes diferentes e linhas diferentes também...

O login seria feito, comparando as linhas 4 e 5 dos arquivos. No momento em que seja identificada e feita a comparação, o usuário é levado ao arquivo correspondente. Caso não bata a 4ª com a 5ª linha, o usuário recebe uma mensagem de erro.

Se alguém puder me ajudar, eu agradeço. Já pesquisei em todos os lugares que podia e não encontrei nada como referência.

Veja... Não estou pedindo que ninguém faça prá mim... Todo o resto eu já fiz, só não sei como criar essa página de login funcionando desta forma.

Se alguém souber e puder me dar uma força eu agradeço...

Valeu...Abraço a todos!

Link para o comentário
Compartilhar em outros sites

  • 0

Puxa, cara....

você pode fazer de uma maneira mais simples, sem ter que procurar em todos os arquivos deste diretório você pode, simplesmente cria um arquivo só sendo que cada linha é referente a um usuário, sendo dividido os campo - usuários, senha por um delimitador, que pode ser qualquer caracter especial ou outros!

Vou dar um exemplo:

arquivo_principal.txt

gladisson|123456
Error 404|654321
Pedrão|456789
ler.php
$arquivo = file("arquivo_principal.txt");

foreach ($arquivo as $id => $linha)
{
echo $id . " | " .$linha;
}

Pra começo tente ver que resultado dá!

Vamos por parte, né!

Referências:

http://br.php.net/file

http://br.php.net/foreach

Link para o comentário
Compartilhar em outros sites

  • 0

Agradeço sua ajuda, mas infelizmente, isso não resolve o problema.

Vou explicar mais a fundo:

Tenho um programinha que um amigo meu criou em clipper, que é um cadastro de clientes e uma espécie de agenda e relatório de serviços.

Este programa me gera os arquivos .txt e joga no diretório "arquivos". Por isso, cada arquivo .txt, é diferente pois cada um tem uma referência distinta.

Sendo assim, oque eu preciso é tentar criar (se possível), uma rotina que consiga identificar estas linhas para exibir o arquivo referente a elas.

Sei que dá pra fazer isso em asp.net pois meu colega criou esse programinha para uma empresa e funciona corretamente, mas eu queria conseguir fazer isso rodar em php.

No seu exemplo, eu teria que definir um único arquivo e o caso é que existem vários arquivos.

A idéia é a seguinte, o programa gera os arquivos e joga no diretório "arquivos".

Este diretório é jogado no servidor via ftp programado 2 a 3 vezes por dia.

Criando a rotina em php, com usuário e senha baseado nas linhas 4 e 5 por exemplo, tenho como acessar e dar segurança aos arquivos sem problema.

Por enquanto, oque consegui foi jogar o diretório arquivos no servidor, protegendo-o com senha, onde ao entrar, tenho uma página em php que lê todos os arquivos do diretório e os exibe em forma de link e ao clicar o arquivo é exibido.

Este esquema dá certo, mas o problema é que se eu tiver 1000 arquivos, e estes arquivos sempre vão aumentar, vai ficar cada vez mais difícil de encontrar o arquivo exato.

Mas oque eu queria é justamente a idéia que passei anteriormente, ou seja, chamar cada arquivo pelas linhas identificando-as como usuário e senha.

Abaixo um modelo do arquivo gerado pelo programa:

Neste caso, o nome do arquivo é P109661.txt (este nome é gerado aleatóriamente pelo programa)

RE                                                                             

RE: 05109666 Cliente: TESTE                                                   

N                                                                             

05109666  (seria o usuário)                                                                     

DZ27        (seria a senha)                                                                 

05109666                                                                       

                                                                               

                                                                               

                                                                               

<B><Cliente: TESTE                                      Empresa: TESTE 2 </B>

<B>Técnico  : -                                    Data: 12/06/2005</B>       

                                                                               

-----------------------------------------------------------------------------------

Manutenção                              AGENDA  GERAL        AGENDAMENTO

                                         

                                                                               

                                                                               

-----------------------------------------------------------------------------------

O certo seria também, o arquivo ser exibido da 10ª linha em diante onde começa os dados do cliente, para que as linhas onde se encontram a chave e a senha não sejam exibidas.

A idéia é incluir uma linha <? require("header.php"); ?> para personalizar a visualização do arquivo chamado.

Sinceramente, não sei mais oque fazer, até porque, sou iniciante em php e apesar de já ter lido de tudo, não consegui achar nada que possa solucionar o problema, pois todas as funções que achei me obrigam a dar um nome ao arquivo chamado e não exatamente conseguem fazer oque preciso.

Se alguém puder dar uma luz eu agradeço, pois já consegui listar o diretório, abrir os arquivos normalmente, oque não consigo é criar essa área de login baseada nas linhas do arquivo.

Se alguém puder ajudar eu agradeço, até porque, parece que ninguém ainda fez algo parecido em php, pelo menos não encontrei nada em nenhum lugar.

Gladisson, te agradeço muito pelo interesse em ajudar, você está sendo muito prestativo, obrigado.

Bom pessoal, agradeço a todos que puderem me ajudar, um abraço a todos!

VLW!!!

Link para o comentário
Compartilhar em outros sites

  • 0

Vamos por partes...

Vamos primeiro pegar todos os arquivos ".txt" do diretório.

<?

$dir

= ".";

if (

is_dir($dir)){

   if (

$dh = opendir($dir)){

   while ((

$arquivo = readdir($dh)) !== false){

  

$divide = explode(".",$arquivo);

  

$total = (count($divide) - 1);

   if(

$divide[$total]=='txt')

   {

    echo

$arquivo."<BR>\n";

   }

}

closedir($dh);

}

}

?>

Tente entender o que cada função faz!

Esse echo ...., não vai ficar no script completo!

Esses arquivo, você vai rodar só no seu pc ?! Ou vai pra net ?!

Link para o comentário
Compartilhar em outros sites

  • 0

beleza, testei o arquivo e ele funciona, lista os txt's corretamente.

Inicialmente é pra rodar só aqui mas funcionando certinho penso em colocá-lo num diretório restrito a mim no site para que eu e o pessoal aqui possamos acessar a agenda de qualquer lugar.

Tinha feito de outra forma, listando os arquivos e exibindo-os como link, mas aí tive que salvar os arquivos como .html dessa forma:

<?

$dir=opendir(".");

while($conteudo = readdir($dir)){

if(eregi("htm|html",$conteudo)){

  $ponteiro = fopen($conteudo,"r");

  while(!feof($ponteiro)){

  $linha = fgets($ponteiro);

  if(eregi("^<title>",$linha)){

    $count = strlen($linha) - 16;

    $linha = substr($linha,7,$count);

    echo("<a href='$conteudo'>".$linha."</a><br>\n");

  }

  }

fclose($ponteiro);

}

}

closedir($dir);

?>

Com todos os arquivos salvos como htm ou html, ele lê o que está entre as tags <title> e </title>, mas aí tenho que sair da idéia original que é usar os txt's que são gerados pelo programa.

Este script quem me passou foi o Herbert Araújo...Vlw Herbert!

Mas como eu disse, ainda não resolve o problema... mas vamos lá...

Link para o comentário
Compartilhar em outros sites

  • 0

Coloque o usuário em "$LOGIN" e a senha em "$PASS", isso vai retornar o link para o arquivo desejado.

<?

$LOGIN

="AAA";

$PASS="BBB";

$dir = ".";

if (

is_dir($dir)){

  if (

$dh = opendir($dir)){

  while ((

$arquivo = readdir($dh)) !== false){

  if(

is_file($arquivo))

  {

 

$divide = explode(".",$arquivo);

 

$total = (count($divide) - 1);

  if(

$divide[$total]=='txt')

  {

 

//echo "ARQUIVO: ".$arquivo."<BR>\n";

 

$arquivo_loop = file($arquivo);

 

$usuario=$arquivo_loop[3];

 

$senha=$arquivo_loop[4];

 

//echo "Usuário: ".$usuario."<BR>\n";

  //echo "Senha: ". $senha."<BR>\n";

 

 

if(trim($usuario)==$LOGIN AND trim($senha)==$PASS)

  {

  echo

"<A HREF='".$arquivo."'>Veja o arquivo encontrado com esse usuário e senha</A>";

  }

 

  }

  }

}

closedir($dh);

}

}

?>
Link para o comentário
Compartilhar em outros sites

  • 0

Legal... deste jeito funciona perfeitamente exibindo o arquivo pelo usuário e a senha definidos em $LOGIN e $PASS. Ficou muito bom!

O problema é que neste caso, teria que definir o usuário e a senha em cada arquivo deste... ou estou errado?

Outra coisa, como seria feito para que fosse exibido o arquivo somente a partir da linha 10 por exemplo?

RE                                                                             

RE: 05109666 Cliente: TESTE                                                   

N                                                                             

05109666  (seria o usuário)                                                                     

DZ27        (seria a senha)                                                                 

05109666                                                                       

                                                                               

                                                                               

Exibir daqui em diante                                                                             

<B><Cliente: TESTE                                      Empresa: TESTE 2 </B>

<B>Técnico  : -                                    Data: 12/06/2005</B>       

                                                                               

-----------------------------------------------------------------------------------

Manutenção                              AGENDA  GERAL        AGENDAMENTO

                                         

                                                                               

                                                                               

-----------------------------------------------------------------------------------

Ou seja, ele busca o usuário e a senha pela 4ª e pela 5ª linha de cada arquivo e exibe o arquivo a partir da 10ª linha...

Link para o comentário
Compartilhar em outros sites

  • 0

Não!

Está página php, ela irá fazer uma busca no diretório local em todos os arquivo ".txt", sendo então encontrando o arquivo ele exibe um link.

E para exibir a linha 10 por exemplo você faz assim:

  $arquivo_loop = file($arquivo);

  $usuario=$arquivo_loop[3];  // Aqui é linha 4

  $senha=$arquivo_loop[4]; // Aqui é linha 5

  $linha10=$arquivo_loop[9]; // Aqui é linha 10

você quer quando encontrar já exibir tudo é isso ? ou quer quer do jeito que está exibindo um link para o ".txt" ?

Mais você pode personalizar uma página de login com o campo LOGIN e PASS, para a página de pesquisa que é essa.

Detalhe, isso não dá total segurança isso é somente uma busca que soubre o link por alguma informação vai abrir.

Link para o comentário
Compartilhar em outros sites

  • 0

Sim, mais você pode fazer um formulário.

Ex:

formulario.html

<FORM ACTION='PAGINA_ONDE_ESTA_O_SCRIPT.php' METHOD='POST'>
<INPUT NAME='LOGIN'>
<INPUT TYPE='password' NAME='PASS'>
<INPUT TYPE='submit' VALUE='OK'>
</FORM>
Ai no topo da página que fiz você comenta $LOGIN e $PASS e coloque:
$LOGIN = htmlspecialchars(stripslashes($_POST['LOGIN']));
$PASS = htmlspecialchars(stripslashes($_POST['PASS']));

Link para o comentário
Compartilhar em outros sites

  • 0

Gladisson.... SHOW DE BOLA!!! biggrin.gif

Funcionou perfeitamente...

Só não consegui exibir ainda a partir da 10ª linha mas o resto ficou sem palavras...

Sem abusar, se puder ver como exibe a partir da linha 10 em diante eu já virei seu fã desde já.... se não puder sou seu fã do mesmo jeito cara... Ainda chego lá...!!!

Link para o comentário
Compartilhar em outros sites

  • 0

Faça assim:

...
   if(trim($usuario)==$LOGIN AND trim($senha)==$PASS)
   {
   echo "<A HREF='".$arquivo."'>Veja o arquivo encontrado com esse usuário e senha</A>";

   $arquivo_loop = file($arquivo);
   $count = count($arquivo_loop);
   
   for($i=9; $i<=count($arquivo_loop); $i++)
   {
   echo $arquivo_loop[$i]."<BR>\n";
   }

}
...

Link para o comentário
Compartilhar em outros sites

  • 0

Gladisson... ficou muito bom! Veja como ficou:

login.php

<FORM ACTION='ver_arquivos.php' METHOD='POST'>

Usuário: <INPUT NAME='LOGIN'>

Senha: <INPUT TYPE='password' NAME='PASS'>

<INPUT TYPE='submit' VALUE='OK'>

</FORM>

teste.txt

RE                                                                             

RE: 05109666 Cliente: TESTE                                                   

N                                                                              

05109666                                                                       

DZ27                                                                           

05109666                                                                       

                                                                          

                                                                               

                                                                               

<center><img src="teste.jpg" border="0" /></center>

<B>Cliente:</B> TESTE     <B>Empresa:</B> TESTE2

<B>Técnico  :</B> -                                    <B>Data:</B> 12/06/2005        

                                                                               

-------------------------------------------------------------------------------

<B>MANUTENÇÃO                            AGENDA GERAL      AGENDAMENTO</B>          

           

                                                                               

                                                                               

-------------------------------------------------------------------------------

ver_arquivos.php

<?

$LOGIN = htmlspecialchars(stripslashes($_POST['LOGIN']));

$PASS = htmlspecialchars(stripslashes($_POST['PASS']));

$dir = ".";

if (is_dir($dir)){

  if ($dh = opendir($dir)){

  while (($arquivo = readdir($dh)) !== false){

  if(is_file($arquivo))

  {

  $divide = explode(".",$arquivo);

  $total = (count($divide) - 1);

  if($divide[$total]=='txt')

  {

  //echo "ARQUIVO: ".$arquivo."<BR>\n";

  $arquivo_loop = file($arquivo);

  $usuario=$arquivo_loop[3];

  $senha=$arquivo_loop[4];

  $linha10=$arquivo_loop[9];

  //echo "Usuário: ".$usuario."<BR>\n";

  //echo "Senha: ". $senha."<BR>\n";

 

  if(trim($usuario)==$LOGIN AND trim($senha)==$PASS)

  {

//echo "<A HREF='".$arquivo."'>Ver arquivo</A>";

  $arquivo_loop = file($arquivo);

  $count = count($arquivo_loop);

  for($i=9; $i<=count($arquivo_loop); $i++)

  {

  echo $arquivo_loop[$i]."<BR>\n";

  }

  }

  }

}

}

closedir($dh);

}

}

?>

Como vê, comentei a linha que está em vermelho acima, pois quando exibia, aparecia o link "ver arquivo" junto com o txt (talvez eu tenha feito algo errado!).

Outra coisa, a partir disto, é aberta uma página com a extensão .php, o que deixou muito melhor e mais seguro.

Coloquei então, uma formatação no arquivo txt, como pode ver acima e funcionou bem...

O único problema, é que a página como php não reconhece os espaços do tx e junta todo o texto reconhecendo apenas as quebras de linha.

Tem alguma função que possa identificar estes espaços e exibí-los como quando está em txt?

Do contrário, o arquivo aparece assim:

Cliente: TESTE Empresa: TESTE2

Técnico : - Data: 12/06/2005

-------------------------------------------------------------------------------

MANUTENÇÃO AGENDA GERAL AGENDAMENTO

-------------------------------------------------------------------------------

No resto, como eu disse antes, ficou SHOW DE BOLA! A única coisa que tá pegando agora é essa formatação, porque o resto ficou muito bom mesmo e me deixou muito mais afim de me aprofundar mais ainda no estudo do PHP... gostei mesmo!!!!

Link para o comentário
Compartilhar em outros sites

  • 0

ou a propria formatacao do txt no HTML... com as tags <pre> e </pre>

ficaria

<?

$LOGIN = htmlspecialchars(stripslashes($_POST['LOGIN']));

$PASS = htmlspecialchars(stripslashes($_POST['PASS']));

$dir = ".";

if (is_dir($dir)){

  if ($dh = opendir($dir)){

  while (($arquivo = readdir($dh)) !== false){

  if(is_file($arquivo))

  {

  $divide = explode(".",$arquivo);

  $total = (count($divide) - 1);

  if($divide[$total]=='txt')

  {

  //echo "ARQUIVO: ".$arquivo."<BR>\n";

  $arquivo_loop = file($arquivo);

  $usuario=$arquivo_loop[3];

  $senha=$arquivo_loop[4];

  $linha10=$arquivo_loop[9];

  //echo "Usuário: ".$usuario."<BR>\n";

  //echo "Senha: ". $senha."<BR>\n";

 

  if(trim($usuario)==$LOGIN AND trim($senha)==$PASS)

  {

//echo "<A HREF='".$arquivo."'>Ver arquivo</A>";

  $arquivo_loop = file($arquivo);

  $count = count($arquivo_loop);

 

  echo "<pre>";

  for($i=9; $i<=count($arquivo_loop); $i++)

  {

  echo $arquivo_loop[$i]."<BR>\n";

  }

  echo "</pre>";

  }

  }

}

}

closedir($dh);

}

}

?>

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...