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
(~17 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
(~20 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
(~20 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
(~21 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
(~21 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
(~21 anos atrás)