O primeiro arquivo a ser criado será uma página de login, chamada login.php, a qual fará a validação dos dados dos usuários e redirecionará para uma segunda página: a index.php.
Conteúdo da página login.php:
<? # Inicia uma sessão. Esta deve ser obrigatoriamente a primeira linha do arquivo.
session_start();
?>
<? #Grava o número da sessão criada numa variável, chamada $sessid.
$sessid = session_id();
?>
<?
# Verifica se os campos não estão vazios
if ($cara != "" and $codsecreto != "" and $OK != ""){;
#Criptografando a senha digitada com MD5
$codsecreto = md5($codsecreto);
# Iniciando a conexão com o banco de dados
$conexao = mysql_connect('localhost', 'root', 'minhasenha');
mysql_select_db('nome_do_bd', $conexao);
# Fazendo a consulta no banco de dados
$consulta = mysql_query("SELECT codcliente, email, senha, privilegio, status FROM clientes where email='$cara' AND senha='$codsecreto'", $conexao);
# Conta quantos registros foram encontrados
$linhas = mysql_num_rows($consulta);
# Se o resultado for apenas um registro: Sucesso!
if ($linhas == 1){;
# Pegando dados do cliente
$codcliente = mysql_result($consulta,0,"codcliente");
$consulta_email = mysql_result($consulta,0,"email");
$consulta_privilegio = mysql_result($consulta,0,"privilegio");
$consulta_status = mysql_result($consulta,0,"status");
};
#Fechando a conexão após a consulta terminar
mysql_close($conexao);
};
# Verifica se o código do cliente é maior que zero
# Verifica se o e-mail digitado não é vazio
# Verifica se o e-mail digitado confere com o que foi localizado no banco de dados
# Verifica se o status do cliente está ativo
if ($codcliente >= 1 and $consulta_email == $cara and $consulta_email != "" and $consulta_status == "ATIVO"){;
# Guarda IP da rede numa variável
$iprede = $_SERVER['REMOTE_ADDR'];
# Guarda a data numa variável, no formato do MySql (AAAA-MM-DD)
$hoje_data = date("Y-m-d");
# Guarda a Hora numa variável
$hoje_hora = date("H:i:s");
# Faz a conexão com o banco de dados
$conexao = mysql_connect('localhost', 'root', 'minhasenha');
mysql_select_db('nome_do_bd', $conexao);
# Cria um registro na tabela sessões, com os dados das variáveis acima
$consulta = mysql_query("INSERT INTO sessoes VALUES('','$hoje_data','$hoje_hora','$ipserver','$iprede','$sessid','$cara','$datafecha','$horafecha','ABERTA')", $conexao);
# Encerra a conexão
mysql_close($conexao);
# Redireciona o cliente para a página index.php
header("Location: index.php");
};
?>
Até aqui (acima) os códigos em php tratam apenas das informações recebidas e redirecionam o cliente para uma página index.php, caso os dados estejam corretos. Ainda não temos o código HTML que compõe a página "visualmente". Se colarmos todos os códigos acima no arquivo login.php só aparecerá uma tela branca.
Logo abaixo estão os códigos do HTML para criar os campos de preenchimento do nome e senha. Os códigos HTML devem ser colocados após os códigos em php descritos acima. Como usamos a mesma página (login.php) para logar e autenticar, os códigos em php são lidos primeiro e numa sequência de cima para baixo continuando até chegar ao HTML.
Se no meio deste caminho, houverem informações que conferem com o banco de dados (como um login com sucesso, por exemplo), o php redirecionará o cliente para outra página antes mesmo de ler o código HTML.
Caso as informações não "batam" com as do banco e dados, a leitura da página continuará descendo e como não há nenhum redirecionamento em casos de login errado, a sequência continuará até exibir o HTML novamente, ou seja, retornando para a tela de login.
Resumindo: Se o login obtiver sucesso o php joga o cliente para outra página. Caso contrário exibirá a mesma página para que ele tente fazer login novamente. Veja o código do HTML.
<html>
<head>
<title>Login</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<table width="100%" height="100%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td align="center" valign="middle">
<FORM ACTION=login.php METHOD=POST target=_self>
Login:
<input type=text name=cara>
Senha:
<input type=password name=codsecreto>
<input type=submit name=OK value=OK>
<a href="login.php?">Recuperar Senha</a>
</form>
</td>
</tr>
</table>
</body>
</html>
Aqui encerramos a nossa página login.php, a qual é responsável por receber os dados digitados e conferir com o banco de dados. Nos campos de login e senha usei as palavras "cara" e "codsecreto", mas você pode colocar qualquer outra, desde que também faça as devidas mudanças no restante do código que se refere a elas.
Explicando a página login.php numa sequência de ações:
- O usuário digita o login e senha
- A página login.php chama a ela mesma através do <FORM ACTION=login.php METHOD=POST target=_self>
- Quando ela recarrega, traz em suas variáveis "cara" e "codsecreto" as informações digitadas para login e senha respectivamente.
- De posse destes dados, o php (lá em cima) faz uma consulta ao banco de dados e checa se os dados informados conferem com algum registro no banco de dados de usuários.
- Se os dados conferem com algum registro, o php cria um novo registro na tabela sessões, guardando a data, hora, número da sessão e login. Estes dados servem como um histórico de acessos e servem também como base para a consulta das próximas páginas, coisa que veremos mais adiante.
- Após conferir que o login está correto e criar o registro na tabela sessões, o php redireciona o cliente para uma outra página, no caso chamada de index.php, mas que pode ser qualquer outra.