Muitas vezes acontece que é necessário dividir os visitantes em desejáveis e indesejáveis, e dar a oportunidade de ver algumas páginas do site apenas a quem tem nome de usuário e senha. Como fazer isso, por exemplo, na linguagem de script do lado do servidor PHP?
Instruções
Passo 1
Vamos organizar a maneira mais fácil de proteger suas páginas de visitantes não autorizados. O portador da informação sobre se o visitante está autorizado será a sessão. Uma sessão é um análogo de cookies em um navegador, com a única diferença de que eles não são criados em nosso computador, mas no servidor. E eles são usados com a mesma finalidade que os cookies - para armazenar informações diferentes sobre nós enquanto vamos de uma página para outra de um site. Quando fechamos o navegador, o servidor destrói esta sessão e, na próxima vez que efetuarmos login, ele cria uma nova. Usamos este mecanismo de servidor para registrar se o usuário já está logado na sessão ou não. Lendo essas informações, quando um visitante solicita uma página, o script php abrirá o acesso a páginas protegidas por senha ou se oferecerá para inserir um nome de usuário e uma senha.
Etapa 1: Crie uma página para inserir o login e a senha. O código HTML do formulário de autorização em sua forma mais simples pode ter a seguinte aparência:
Conecte-se:
Senha:
Aqui (no início do arquivo) adicionaremos o código php que verificará a exatidão do nome de usuário e senha inseridos pelo visitante. No início, escreveremos:
session_start ();
Este comando inicia uma nova sessão se ainda não tiver sido criada para este visitante.
Então, vamos verificar se a sessão tem uma variável chamada 'userName' - ela armazenará o nome se o visitante já estiver logado. Se houver tal variável, redirecione o visitante para a página principal (index.php) e termine de executar este script php:
if ($ _ SESSION ['userName']) {
cabeçalho ("Localização: index.php");
saída;
}
O resto do código será executado apenas se o usuário ainda não tiver inserido o nome de usuário e a senha corretos. Vamos indicar qual login e senha devem ser considerados corretos:
$ validName = 'Sou meu!';
$ validPass = 'senha secreta';
Em seguida, verificamos se os valores enviados do formulário correspondem aos corretos. Como especificamos o método de transferência de dados POST no formulário, eles devem ser lidos a partir da variável superglobal $ _POST:
if ($ _ POST ['userName'] == $ validName && $ _POST ['userPass'] == $ validPass) {
$ _SESSION ['userName'] = $ validName;
cabeçalho ("Localização: index.php");
saída;
}
Aqui, o código entre chaves {} será executado com os valores corretos do nome de usuário e senha. Na linha $ _SESSION ['userName'] = $ validName; ma, escrevemos na sessão uma variável chamada 'userName' contendo o login do usuário agora autorizado. Esta será a marca de que o acesso está aberto para ele em qualquer lugar, desde que sua sessão atual seja válida.
E caso dados incorretos sejam inseridos no formulário, adicione a mensagem apropriada:
else echo"
Login ou senha incorretos!
;
Todo o código que precisa ser salvo em um arquivo chamado login.php terá a seguinte aparência:
<? php
session_start ();
if ($ _ SESSION ['userName']) {
cabeçalho ("Localização: index.php");
saída;
}
$ validName = 'Sou meu!';
$ validPass = 'senha secreta';
if ($ _ POST ['userName'] == $ validName && $ _POST ['userPass'] == $ validPass) {
$ _SESSION ['userName'] = $ validName;
cabeçalho ("Localização: index.php");
saída;
}
else echo"
Login ou senha incorretos!
;
?>
Conecte-se:
Senha:
Passo 2
Etapa 2: Crie um bloco de autorização - um arquivo separado que será conectado a cada página que precisa de proteção por senha. Este arquivo conterá apenas código php, então sua extensão será "php", e nós daremos a ele um nome de acordo com a tradição para tais arquivos - "auth", isto é, "auth.php". E aqui, também, imediatamente após a tag de abertura <? Php, deve haver uma instrução para iniciar uma sessão:
session_start ();
Podemos ler todas as variáveis armazenadas na sessão do array superglobal $ _SESSION. Precisamos verificar o valor da variável "userName" - se o visitante ainda não tiver feito login, então não estará na matriz e o redirecionaremos para a página para inserir seu nome de usuário e senha:
if (! $ _ SESSION ['autorizado']) {
cabeçalho ("Localização: login.php");
saída;
}
Todo o código que precisa ser salvo no arquivo auth.php terá a seguinte aparência:
<? php
session_start ();
if (! $ _ SESSION ['admin']) {
cabeçalho ("Localização: enter.php");
saída;
}
?>
etapa 3
Passo 3: depois de salvarmos esses arquivos no servidor, eles permanecerão em todas as páginas php que precisam ser protegidas de usuários não autorizados para conectar o bloco de autorização. Ou seja, logo no início de cada arquivo php, você precisará inserir este código:
<? php
requer "auth.php";
?>
E para alterar a senha de acesso, você precisará alterar os valores dessas variáveis no arquivo login.php:
$ validName = 'Sou meu!';
$ validPass = 'senha secreta';
$ validName - login, $ validPass - senha.