Você está na página 1de 7
259042017 ‘Aprenda a erie controle de acesso com PHP e MySQL. - DewMesa Criando controle de acesso com PHP e MySQL 1) Veja neste artigo uma forma de implementar o controle de acesso por usuario a um sistema desenvolvido com PHP e MySQL. Nos sistemas web que costumamos acessar hoje em dia é comum vermos controles de usuarios. Um exemplo seria o de sistemas de publicagées de artigos ou textos onde temos varios tipos de usuarios como: Editor, Publicador, Revisor, etc, onde cada um possui privilégios diferentes de acesso 4s paginas do sistema ou site. Neste artigo vamos abordar uma ideia basica de criacdo de controle de acesso com PHP e MySQL , onde teremos: + Tela de Login; + Tela de Cadastro de Usudrio; + Fungées que irdo manipular os dados (cadastro no banco / verificagao dos privilégios) E um sistema simples, mas que pode ser tomado como base para a implementagao de sistemas de controle bastante complexos com sessions, cookies, ¢ assim por diante. Mao na massa 0 1° passo criarmos nossa index.php onde ficara nosso formulario de login e um link para efetivar um cadastro, caso nao possua. Listagem 4: Criando arquivo index.php I ip dhwwrw devmedia.cm brferiando-caniole-de-acesso-com-phy-e-mysq/28123, w 250017 ‘Agrendaacrior cone de acesso com PHP e MySQL - DevMedia ctitlerc/titles Sem cadastro? senha" value: © G files1/UsesjoeLEXPERTSINGO/Desttopindes.itm Login Login, Sem cadastro? Figura 1: Formulario de login Apés a criagdo deste arquivo vamos criar 0 formuladrio de cadasiro de usuario, as: , quem nao possuir login e senha podera realizar um cadastro rapido. Listagem 2: Criando o arquivo cadastrar.php Login debr > senha" value="" />
ip dhwwrw devmedia.cm brferiando-caniole-de-acesso-com-phy-e-mysq/28123, 25042017 ‘Agrenda a rir controle de acesso.com PHP e MySQL - DevMeda
€.& faei1(CAserforl HPERTSNFO/Descpindes nl Cadasivo de usuésio Login Senha Tipo de usuério ‘Selaviono cadastar Usustio Comam |administacor Figura 2: Formulario de cadastro de usuario. Com nossos formularios prontos, vamos prosseguir criando um controle para verificar se a requisiga0 € de um cadastro novo ou se é de um login. Para tal, vamos criar 0 arquivo controler.php. Listagem 3: Criando 0 arquivo controle.php $login, ‘senha_usuario' => $senha, id_tipo_acesso' => $tipo_usuario); 4f (I$controle-rcadastraUsuario(Sarr)) { echo ‘Aconteceu algun erro"; } else { $tipo_acesso = $controle-sverificancesso(Slogin, $senha); 4f ($tipo_acesso[@]["id_tipo_acesso"] == 1) { header(""Location:paginas/paginat.htnl"); } else if ($tipo_acesso[@]['id_tipo_acesso'] header("Location:paginas/pagina2.html"); 2) ¢ Agora j4 sabemos se 6 uma requisigao de login ou é um cadastro de usuario recente. Nosso préximo passo é criar outro controler para inserir novos usuérios e para verificar qual o tipo de perfil que o usuério possui. Esse controler conversa diretamente com o controler criado anteriormente (controler.php). Listagem 4: Criando 0 arquivo processaAcesso.php db = $conexao; } Public function verificaacesso(Slogin, $senha) { $select = $this-rdb->select(‘tb_usuario', '*", Where login_usuario = "$login’ and senha_usuario = "$senha’ return $select; 3 public function cadastraUsuario(Sdados){ $insert = Sthis->db-rinsert(‘tb_usuario’, Sdados); return $insert; } ip dhwwrw devmedia.cm brferiando-caniole-de-acesso-com-phy-e-mysq/28123, an ‘Agrenda a rir controle de acesso.com PHP e MySQL - DevMeda Para a légica da nossa aplicacao ficar completa, falta a comunicagao com a base de dados correto? Entao vamos criar um controle para podermos realizar 0 CRUD. Listagem 5: Criando o arquivo mysql.php dentro da pasta conexao conn); } * Funco de selecao dos registros da tabela * @param string $tabela tabela onde ser buscado os registros * @param string $colunas string contendo as colunas separadas por virgula para selecao, se null busca por todas * ” public function select(stabela, $colunas = "*", $where $sql = "SELECT $colunas FROM $tabela $where”; $result = $this-rexecutar($sq1)5 while ($row = mysql_fetch_array(Sresult, MYSQL_ASSOC)) { $return[] = $rows 11") + return $return; ne * Fungo para inserir dados na tabela * @param array $dados Array contendo os dados a serem inseridos * @param string $tabela tabela que ser inserido os dados * @return boolean verdadeiro ou falso ” public function insert(Stabela, $dados) { foreach (Sdados as $key => $value) { Skeys[] = $keys Sinsertvalues{] = ‘\'" . $value. * ip dhwwrw devmedia.cm brferiando-canole-de-acesso-com-phy-e-mysq/28123, 250K2017 Agron cle catale de acess com PHP e MySQL - DesMedia } $keys = implode(’,", $keys)3 $insertvalues = implode(",", $insertvalues); $sql = “INSERT INTO $tabela (Skeys) VALUES ($insertvalues)"; return $this->executar($sql); ? private function executar($sql) { $return_result = mysql_query($sql, $this->conn); if (Sreturn_result) { return $return_result; } else { $this-rsql_error($sql)5 } ? private function sql_error($sql) { echo mysql_error(Sthis->cona) . ‘
"s die(‘error: * . $5ql)5 Pronto! Nossa ldgica esta toda montada. Para verificarmos a diferenga dos acessos em relagdo a0 tipo do usuério, vamos criar uma pasta chamada 'Paginas' e dentro dela 2 arquivos, um para determinado tipo de usuario e outro para outro tipo. Listagem 6: Criando o arquivo Pagina1 html ctitles ‘text/html; charset=UTF-1 Content-Type" conten: Listagem 7: Criando 0 arquivo Pagina2.htm| Content-Type” content ‘text/html; charset-UTF-i O cédigo deste artigo e o script do banco de dados utilizado estéo em anexo para melhor aproveitamento. Lembre-se que este controle de usudrio é simples, servindo apenas como base, podendo ser aplicadas a ele varias técnicas de controle como mencionado no inicio deste artigo. Caso tenha duvidas, criticas ou sugestées, ndo esquega de deixar nos comentdrios. E sempre bom saber 0 que 0 leitor acha. Espero que tenham aproveitado e até 0 préximo artigo. Aprenda mais sobre PHP * Usani le Re ha com Igniter Publicando aplicagdes PHP no IIS 8 Curso de introducao ao Laravel Guia Frameworks PHP. ip dhwww devmedia.cm breriando-conole-de-acesso-com-phy-e-mysq/28123, am

Você também pode gostar