Autenticação de usuário com banco de dados e cookies
Para a utilização deste código, tomo por base que você tenha uma página contendo um form com ao menos dois campos (usuário e senha).
<?php
// Em primeiro lugar iremos criar as variáveis $usuario e $senha que
// irão resgatar os valores do form por meio do POST
$usuario = $_POST["Usuario"];
$senha = $_POST["Senha"];
// Após criamos a consulta SQL para conferir os dados digitados se
// estão de acordo com os dados cadastrados do usuário, consulta esta
// que ficará armazenada em uma variável posteriormente resgatada.
$sql = "SELECT IDUSUARIO, USUARIO, SENHA FROM USUARIOS WHERE USUARIO = '$usuario' AND SENHA = '$senha'";
// Agora iremos criar uma variável chamada $rs (o que é muito utilizado
// por quem programa em ASP pois faz lembrar um RecordSet, objeto
// ADODB), o que nada mais é do que a instrução que irá executar a
// nossa consulta, chamando a string de consulta e a string de conexão para tanto.
$rs = ibase_query($conn, $sql);
// Caso haja algum registro retornado, ou seja, caso coincida com os
// dados digitados no form de login, iremos criar um uma array
// associativa que corresponderá ao registro retornado. Mas e se
// existir mais de um usuário? Aí você fez o seu sistema de inclusão de
// usuários de forma muito ruim que não conseguiu restringir o cadastro
// de usuários com mesmo username ou senha. Mas você pode substituir
// esta parte para que o sistema faça a comparação com um único usuário,
// tipo, = 1.
if (ibase_num_fields($rs) != ""){
$rsUser = ibase_fetch_assoc($rs);
// Agora criamos o cookie que irá levar durante todo o período de sua
// existência, o número do Id do usuário cadastrado na base de dados,
// definindo como nome do cookie Log_ID, buscando como valor, o
// correspondente ao campo Id na tabela usuários que será devidamente
// extraído da array anteriormente criada, determinando, ainda, como
// tempo limite o período de 1 dia (mas isto pode ser bem menor), como
// domínio o domínio corrente ("/"), como página, todas as páginas ("")
// e como domínio seguro (HTTPS) determinamos 0 para que rode dentro de
// um domínio sem conexão segura.
setcookie ("Log_ID", $rsUser["IDUSUARIO"], time()+86400, "/" , "", 0);
// Caso a consulta retorne um registro, será gravado o cookie e
// devidamente redirecionado para uma página de confirmação qualquer.
header ("location: ok.php");
// Caso contrário, será redirecionado para uma página de erro.
} else {
header ("location: erro.php");
}
// Agora liberamos da memória tanto o resultado gravado na string $rs
// quanto a string de conexão.
ibase_free_result($rs);
ibase_close($conn);
?>
O mais correto é sessions por ter a segurança do Servidor Web!
10/01/2008 11:14am
(~18 anos atrás)
Realmente é um script bem simples e ideal para fins didáticos, mas vale lembrar que a senha transita crua pela internet.
Um primeiro passo seria usar um hash (uma funcao em javascript para transformar a senha em um código ilegível) ao invés da senha.
No mysql existe a função MD5 para isso:
insert into TABELA set senha=MD5('minhasenha'), nome='eumesmo'
E no javascript usa-se qualquer implementacao
de MD5 que se encontra facilmente na internet.
Um primeiro passo seria usar um hash (uma funcao em javascript para transformar a senha em um código ilegível) ao invés da senha.
No mysql existe a função MD5 para isso:
insert into TABELA set senha=MD5('minhasenha'), nome='eumesmo'
E no javascript usa-se qualquer implementacao
de MD5 que se encontra facilmente na internet.
16/11/2004 8:58am
(~21 anos atrás)
Posso eu usar este código, claro q adaptado para mysql para fazer a autenticação de um determinado usuário no banco de dados e este retornar a parte expecífica do usuário, tipo, contéudo, endereço?
21/03/2004 8:46am
(~22 anos atrás)
Sua observação está perfeita para um script que fosse inserir um dado qualquer no BD, ainda acrescento a função trim(), para a economia de espaço. O exemplo do artigo é apenas para verificação de usuário, daí você utilizaria:
$usuarioaut=stripslashes($usuario);
$senhaaut=stripslashes($senha);
Considerando que as duas variáveis($usuario e $senha)tenham vindo de um BD que teve seus dados 'escapados' pelo addslashes();
$usuarioaut=stripslashes($usuario);
$senhaaut=stripslashes($senha);
Considerando que as duas variáveis($usuario e $senha)tenham vindo de um BD que teve seus dados 'escapados' pelo addslashes();
11/11/2003 5:17pm
(~22 anos atrás)
Lembrando da segurança já que tivemos um artigo recente sobre o assunto
na página dois do artigo em
$usuario = $_POST["Usuario"];
$senha = $_POST["Senha"];
é interessante colocar
$usuario = addslashes($_POST["Usuario"]);
$senha = addslashes($_POST["Senha"]);
e fazer alguns outros tipos de validação..
mesmo um script simples tem que se previnir
Abraços
na página dois do artigo em
$usuario = $_POST["Usuario"];
$senha = $_POST["Senha"];
é interessante colocar
$usuario = addslashes($_POST["Usuario"]);
$senha = addslashes($_POST["Senha"]);
e fazer alguns outros tipos de validação..
mesmo um script simples tem que se previnir
Abraços
06/11/2003 8:57pm
(~22 anos atrás)
Além de curto ele explica muito do script com os comentários tá de parabéns :)
sds
sds
03/11/2003 1:09am
(~22 anos atrás)


