|
|
|
||||||||||||||||||||||
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Parceiros - CSS para Web Design - S.O.S Designers - Slackware-Brasil - Crie seu Web site - Oficina da Net |
Autenticação PHP para múltiplos usuários usando MySQLPágina PHP que necessitaríamos para realizar um acesso restringido por chave e senha para múltiplos usuários, onde cada um tenha seus dados de acesso próprios, que se salvam no banco de dados. Veremos as páginas PHP que necessitaríamos para realizar um acesso restringido por chave e senha para múltiplos usuários, onde cada um tenha uns dados de acesso próprios.
O primeiro é lembrar o esquema de páginas do sistema de autenticação proposto. O podemos ver no artigo Funcionamento do sistema de autenticação em PHP. Nós vamos tratar de colocar aqui um código para a página "comprovo dados" O banco de dados O banco de dados que vamos utilizar conterá uma tabela para os usuários, onde cada um irá dispor, pelo menos, de dois campos: um nome de usuário e uma senha, os dois de tipo texto.
Em um banco de dados de usuários, o nome de usuário deveria ser um valor único, que não se repita para outro usuário, ou seja, não poderemos ter dois usuários com o mesmo nome. Por esta razão, o campo nome_usuario poderia ser a chave principal da tabela, embora também poderíamos ter criado um campo adicional, chamado por exemplo id_usuario, de tipo autonumérico e colocá-lo como chave principal. Para conseguir não inserir dois usuários com o mesmo nome de usuário, na hora de inseri-los na tabela, comprovaremos que não tenha nenhum usuário já introduzido com o nome de usuário que se pretende inserir. Este passo, embora seja importante, não o veremos, pois só nos centraremos em decidir se um usuário pode entrar ou não na aplicação, supondo que os usuários se encontram já inseridos no banco de dados. No exemplo, supomos que utilizamos um banco de dados MySQL, entretanto, qualquer tipo de banco de dados poderá servir para uns objetivos como os que nos propomos. O funcionamento do script O script que se utilizará para decidir se um usuário pode ou não entrar na aplicação é muito simples. Simplesmente faz uma chamada ao banco de dados para comprovar se os dados de autenticação escritos pelo visitante (usuário e senha) correspondem com os de algum usuário. No caso de ser assim, se permite a entrada e de não ser assim, se denega.
O primeiro seria abrir uma conexão com o banco de dados e selecionar o banco com o qual vamos trabalhar. //conecto com o banco de dados $conn = mysql_connect("servidor","usuario","password"); //seleciono o BD mysql_select_db("nome_bd",$conn); Um segundo passo é construir uma instrução SQL que nos permita comprovar se existe ou não um usuário com os dados de autenticação introduzidos. Utilizamos uma simples instrução SELECT, sobre a tabela de usuários, onde se extraem usuários que tenham o mesmo nome de usuário e a senha introduzidos na página de acesso. //Instrucao SQL para buscar um usuario com esses dados $ssql = "SELECT * FROM usuario WHERE nome_usuario='$usuario' and chave_usuario='$senha'"; //Executo a instrucao $rs = mysql_query($ssql,$conn); Se essa instrução SELECT responde com algum registro encontrado, saberemos que existe um usuário onde seus dados de autenticação correspondem perfeitamente com os introduzidos. Nesse caso poderemos realizar as ações encaminhadas a permitir o acesso. Caso contrário, se a instrução SELECT não encontrar nenhum registro, saberemos que não existe um usuário com os dados de autenticação introduzidos e portanto, deveremos realizar as ações encaminhadas a restringir o acesso. if (mysql_num_rows($rs)!=0){ //usuario e senha válidos //defino uma sessão e salvo dados session_start(); session_register("autenticado"); $autenticado = "SI"; header ("Location: aplicacao.php"); }else { //se nao existe lhe mando outra vez ao portal header("Location: index.php?errousuario=sim"); } As ações para restringir ou permitir o acesso são exatamente iguais as que vínhamos utilizando no script de controle sem utilizar o banco de dados. Portanto, não vamos comentá-las mais, e sim lhes referimos ao artigo onde as explicamos. O código completo do exemplo seria o seguinte. <? //conecto com o banco de dados $conn = mysql_connect("servidor","usuario","password"); //seleciono o BD mysql_select_db("nome_bd",$conn); //Instrucao SQL para buscar um usuario com esses dados $ssql = "SELECT * FROM usuario WHERE nome_usuario='$usuario' and chave_usuario='$senha'"; //Executo a instrucao $rs = mysql_query($ssql,$conn); //vemos se o usuario e senha são validos //se a execucao da instrucao SQL nos da algum resultado //eh que sim que existe essa conbinacao usuario/senha if (mysql_num_rows($rs)!=0){ //usuario e senha validos //defino uma sessao e salvo dados session_start(); session_register("autenticado"); $autenticado = "SI"; header ("Location: aplicacao.php"); }else { //se nao existe lhe mando outra vez ao portal header("Location: index.php?errousuario=si"); } mysql_free_result($rs); mysql_close($conn); ?>
Autoria e outras referências sobre este artigo Dentro deste artigo: + 1 manual relacionado + 2 Categorias relacionadas
Manuais relacionados com este artigo Dentro de Sistema de autenticação PHP Categorias relacionadas Através das categorias do nosso diretório podem ser encontrados outros tipos de recursos relacionados com este artigo: + Entrar em PHP+ Entrar em Scripts em PHP Comentários dos visitantes Os comentários dos visitantes são para ampliar a informação do artigo. Todos podem participar.
|
||||||||||||||||||||
| Sobre nós | Copyright | Anuncie | Entrar em contato | <criarweb> |