+1

Autenticação baseada em PHP e HTTP

criado por Renata Albuquerque em 29/09/2002 11:02pm
Caso queira fazer uma parte administrativa no seu site, onde somente o pessoal autorizado possa acessar, vamos lá: comecemos pelo arquivo conexao.php:

conexao.php:
<?php
$conexao = mysql_connect("hostname","userid","password") or die("nao foi possivel estabelecer a conexao");
$banco = mysql_select_db("dbname",$conexao) or die("não foi possível abrir o banco de dados");

$usuario = "nomedousuario";
$senha = "senha";

$home401 = "HTTP/1.0 401 Unauthorized";
?>

Essa variável $usuario guardará o login e a variável $senha guardará a senha a serem utilizados pelo administrador do site. Toda vez que for necessário mudar esses dados é só entrar no arquivo conexao.php e mudar os parâmetros que estão entre as aspas.

Depois os outros arquivos devem ser criados respeitando a programação colocada abaixo.

arquivo.php:
<?php
include("conexao.php");

// se a variável $PHP_AUTH_USER não estiver setada
if (!isset($PHP_AUTH_USER)) {
    // janela para a inserção de usuário e senha
    header('WWW-Authenticate: Basic realm="NOME DO TERRITÓRIO"');
    // página que mostra "Você não está autorizado a exibir esta página"
    header("$home401");
    echo "Autorização Requerida";
    exit;
} else {
    // se $PHP_AUTH_USER for igual a $usuario e $PHP_AUTH_PW for igual a $senha
    if ($PHP_AUTH_USER == $usuario && $PHP_AUTH_PW == $senha) {
        // insira aqui o código da página
    } else {
        // página que mostra "Você não está autorizado a exibir esta página"
        header("$home401");
        echo"Autorização Requerida";
        exit;
    }
}
?>

Observações sobre o trecho acima:

- Notem que na primeira linha temos "include("conexao.php")", ou seja, estamos incluindo o arquivo conexao.php que possui os comandos de conexão com o banco de dados e os dados de acesso à esta área. Se não tivéssemos colocado os dados de acesso para serem modificados no arquivo conexao.php, quando precisássemos trocar o login e a senha, teríamos que ir em página por página.

- header('WWW-Authenticate: Basic realm="NOME DO TERRITÓRIO"'). Este NOMEDOTERRITÓRIO pode ser um nome qualquer definido por você. Dê preferência ao nome do site mesmo.

- // insira aqui o código da página. Coloque aqui o código, html, php, javascript ou o que seja. Se o usuário que acessou colocou o login e a senha corretamente, será somente esta parte do script que verá.

Então quando o usuário acessar a página que contém o código que você colocou ele verá a janela abaixo:



Bom, basicamente é isso.
Qualquer dúvida, estamos aí.

"A minha alma espera somente em Deus; dele vem a minha salvação." (Salmos 62.1)

________________
.::PHPrincesa::.
programadora

Comentários:

Mostrando 1 - 10 de 21 comentários
thiago disse:
no cpanel existe uma opção de rstringir o acesso a menos s digitar senha e usuario. como faço´para colocar em minha pag para q a pessoa possa digitar diretament na minha pag e acessar o conteudo restrito?
13/01/2006 5:45am (~19 anos atrás)

Efetuei a criacao do DB"Banco" TB"tb_user", mas quando vou efetuar o teste de conexao, e digito o usuario e a senha a seguinte mensagem aparece "Autorizacao Requerida", alguem poderia me ajudar ????
23/04/2003 11:43am (~21 anos atrás)

Victor
Me sinto contente pelo menos por ter tido a curiosidade de ler o meu artigo.
Mesmo que não tenha servido para você, creio que ampliou os conhecimentos de muitos programadores.... Aprender nem que seja o básico nunca é demais.
Obrigada pelo seu comentário.
Deus lhe abençõe.
14/02/2003 7:16am (~22 anos atrás)

.htacess eh para diretorio inteiro, entaum vc teria q deixar tudo que quiser proteger naquele diretorio
02/12/2002 10:36am (~22 anos atrás)

.htacess eh para diretorio inteiro, entaum vc teria q deixar tudo que quiser proteger naquele diretorio
02/12/2002 10:36am (~22 anos atrás)

os erros q taum dando aki saum

nao foi possivel estabelecer a conexao

e

nao foi possivel abrir o banco de dados

os mesmo erros q estaum no DIE

... or die("nao foi possivel estabelecer a conexao");
01/12/2002 6:21pm (~22 anos atrás)

tentei de tudo
fiz todos os passos ai descritos
pus a senha do admin pra poder acessar o arquivo, tentei usar funcao include pra por a pagina em vez de jogar o codigo direito no arquivo.php, mas naum deu certo n
01/12/2002 6:10pm (~22 anos atrás)

Como eu crio multiplos usuarios, usando essa mesma funcao
Ex.: se eu puser joao, ele vai pra pagina do joao e assim por diante..
01/12/2002 3:04pm (~22 anos atrás)

João K. disse:
Este artigo somente funcinará para quem tem o PHP rodando como modulo no APACHE.

Outros servidores como IIS, OmniHTTP e outros não suportam o recurso.
30/11/2002 9:27am (~22 anos atrás)

Thiago,

use .htaccess
29/11/2002 11:19am (~22 anos atrás)

Novo Comentário:

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