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

A minha primeira autenticação no PHP


Frank K Hosaka

Pergunta

No meu projeto ainda não existe autenticação de usuário e senha, eu fiz um login bem safado, usando a tecnologia do $_SESSION.

Ontem, no entanto, encontrei no Google, o seguinte código:

astudy2.php

<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
    header('WWW-Authenticate: Basic realm="My Realm"');
    header('HTTP/1.0 401 Unauthorized');
    echo 'Texto enviado caso o usuário clique no botão Cancelar';
    exit;
} else {
    echo "<p>Olá, {$_SERVER['PHP_AUTH_USER']}.</p>";
    echo "<p>Você digitou {$_SERVER['PHP_AUTH_PW']} como sua senha.</p>";
}
?>

O código é pequeno e bem difícil de entender. Tentei executar novamente, mas não consegui. Para executar esse código, eu precisei fechar o navegador.

Para ver se era possível executar o mesmo código sem precisar fechar o navegador, eu criei o seguinte código:

 

astudy.php

<?php
header('WWW-Authenticate: Basic realm="My Realm"');
header('HTTP/1.0 401 Unauthorized');
echo 'Fale com o administrador para recuperar a sua senha';
$usuario=$_SERVER['PHP_AUTH_USER'];
$senhausuario=$_SERVER['PHP_AUTH_PW'];
$autorizados=["João","Maria","José"];
$senhas=["1234","4321","1111"];
if ($usuario==$autorizados[0]&&$senhausuario==$senhas[0]){header("location:joao.php");}
if ($usuario==$autorizados[1]&&$senhausuario==$senhas[1]){header("location:maria.php");}
if ($usuario==$autorizados[2]&&$senhausuario==$senhas[2]){header("location:jose.php");}
?>

Esse código só funciona uma vez. Para trazer de volta a tela de login é necessário fechar  o navegador.

Esse é um recurso bacana, mas entender o código é bem complicado. 

Na minha opinião, o primeiro header abre a janela de autenticação, onde o usuário digita a sua conta e senha, e ele vai ficar preso nessa tela até acertar.

O segundo header é um protocolo de comunicação do PHP com o navegador, sem esse protocolo, o navegador não executa o primeiro header.

O primeiro echo mostra uma mensagem para o usuário que desistir de logar.

As outras instruções ajudam ao autenticador a identificar qual o usuário está autorizado a entrar no sistema.

Eu gostei. Mas para mudar de usuário, você vai precisar fechar o navegador. Ou encontrar alguém que conheça o PHP bem a fundo, o que não é o meu caso.

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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,4k
×
×
  • Criar Novo...