O documento descreve como criar um sistema simples de controle de acesso de usuários com logins e senhas utilizando PHP. Ele inclui códigos para criar páginas de login e cadastro, verificar as credenciais do usuário e redirecioná-lo para páginas diferentes de acordo com seu tipo.
Windows credentials manager stores users’ credentials in special folders called vaults. Being able to access such credentials could be truly useful during a digital investigation for example, to gain access to other protected systems. Moreover, if data is in the cloud, there is the need to have the proper tokens to access it. This presentation will describe vaults’ internals and how they can be decrypted; the related
Python Open Source code will be made publicly available. During the session, credentials and vaults coming from Windows 7, Windows 8.1 and Windows 10 will be decrypted, focusing on particular cases of interest. Finally, the presentation will address the challenges coming from Windows Phone, such as getting system-users’ passwords and obtaining users’ ActiveSync tokens.
This document discusses common vulnerabilities in access controls for web applications and best practices for securing them. It covers different types of privilege escalation like vertical, horizontal, and context-dependent escalation. It also discusses vulnerabilities like unprotected functionality that can be accessed without authentication, identifier-based functions where access is based on predictable IDs, and multistage functions where access is not re-validated at each step. The document provides recommendations for testing access controls and securing them through measures like centralizing control checks and restricting access based on sessions rather than request parameters.
Lagunas en la formación universitaria de los traductores europeosSarah Henter
¿Los traductores están contentos con su formación universitaria? Presentado en CILLEC IV en UCAM Murcia
https://sites.google.com/a/ucam.edu/cillec-iv/home
Event Hacks: 5 things to look out for when choosing your venuePeatix
Get the 21 tools and tips every event organizer needs to plan successful events at http://ptix.co/1SxtiRn. It's free!
What should you consider when finding your ideal event space? We share the 5 things you need to consider before you seal the deal, and discover 5 trend-setting event spaces you should consider for you next event.
Follow us for more #peatips and #eventhacks.
The QSE Index rose 0.5% led by gains in the Banks & Financial Services and Telecoms indices. National Leasing and Widam Food Co. were the top gainers rising 3.3% and 2.3% respectively, while Mannai Corp fell 3.5%. Regional indices were mixed with Abu Dhabi rising 0.4% and Oman up 0.2% while Saudi Arabia fell 0.1%, Dubai declined 0.3% and Kuwait dropped 0.6%. Earnings reports from Saudi companies showed revenue declines and mixed profit results. Global PMIs were mixed with improvements in the US and declines in the UK and Eurozone.
This document discusses why businesses should have blogs and what types of content to include. It notes that blogs can provide personal and organizational benefits like thought leadership, network growth, and organizational learning. The document suggests rebranding "blog" to less nerdy terms and provides examples of content like profiles of meetings and people, project updates, opinions on other posts, and for internal communicators, topics like communications planning, change communication, and global messaging. Blogs are positioned as a way to showcase work, ask questions, develop as a learning organization, and foster collaboration.
مقال تحليلي حول تقديم المرصد الدولي للجمعيات و التنمية المستدامة لتقريره لسنة 2015 حول حالة المجتمع المدني بمجلس حقوق الإنسان بسويسرا على هامش الدورة 31
Windows credentials manager stores users’ credentials in special folders called vaults. Being able to access such credentials could be truly useful during a digital investigation for example, to gain access to other protected systems. Moreover, if data is in the cloud, there is the need to have the proper tokens to access it. This presentation will describe vaults’ internals and how they can be decrypted; the related
Python Open Source code will be made publicly available. During the session, credentials and vaults coming from Windows 7, Windows 8.1 and Windows 10 will be decrypted, focusing on particular cases of interest. Finally, the presentation will address the challenges coming from Windows Phone, such as getting system-users’ passwords and obtaining users’ ActiveSync tokens.
This document discusses common vulnerabilities in access controls for web applications and best practices for securing them. It covers different types of privilege escalation like vertical, horizontal, and context-dependent escalation. It also discusses vulnerabilities like unprotected functionality that can be accessed without authentication, identifier-based functions where access is based on predictable IDs, and multistage functions where access is not re-validated at each step. The document provides recommendations for testing access controls and securing them through measures like centralizing control checks and restricting access based on sessions rather than request parameters.
Lagunas en la formación universitaria de los traductores europeosSarah Henter
¿Los traductores están contentos con su formación universitaria? Presentado en CILLEC IV en UCAM Murcia
https://sites.google.com/a/ucam.edu/cillec-iv/home
Event Hacks: 5 things to look out for when choosing your venuePeatix
Get the 21 tools and tips every event organizer needs to plan successful events at http://ptix.co/1SxtiRn. It's free!
What should you consider when finding your ideal event space? We share the 5 things you need to consider before you seal the deal, and discover 5 trend-setting event spaces you should consider for you next event.
Follow us for more #peatips and #eventhacks.
The QSE Index rose 0.5% led by gains in the Banks & Financial Services and Telecoms indices. National Leasing and Widam Food Co. were the top gainers rising 3.3% and 2.3% respectively, while Mannai Corp fell 3.5%. Regional indices were mixed with Abu Dhabi rising 0.4% and Oman up 0.2% while Saudi Arabia fell 0.1%, Dubai declined 0.3% and Kuwait dropped 0.6%. Earnings reports from Saudi companies showed revenue declines and mixed profit results. Global PMIs were mixed with improvements in the US and declines in the UK and Eurozone.
This document discusses why businesses should have blogs and what types of content to include. It notes that blogs can provide personal and organizational benefits like thought leadership, network growth, and organizational learning. The document suggests rebranding "blog" to less nerdy terms and provides examples of content like profiles of meetings and people, project updates, opinions on other posts, and for internal communicators, topics like communications planning, change communication, and global messaging. Blogs are positioned as a way to showcase work, ask questions, develop as a learning organization, and foster collaboration.
مقال تحليلي حول تقديم المرصد الدولي للجمعيات و التنمية المستدامة لتقريره لسنة 2015 حول حالة المجتمع المدني بمجلس حقوق الإنسان بسويسرا على هامش الدورة 31
2017 CR Atelier Lieux partagés et approches communautaires dans la fabrique d...Noémie Galvez
Le 15 décembre 2016, Aurélie Landon, chercheure en urbanisme à la Fabrique des Territoires Innovants, organisait l'atelier de recherche collaborative "Lieux partagés et approche communautaire dans la fabrique de la ville".
Après avoir été partenaire de la FING dans le cadre de l'expédition SoftPlace sur les lieux partagés et après de premiers résultats de recherche en urbanisme, la FTI propose de continuer à explorer ces pistes.
Ce premier atelier abordait deux grandes questions : Pourquoi et comment créer des projets urbains gérés de façon communautaire ? Comment les lieux partagés s'inscrivent-ils dans la chaîne de fabrication (conception et gestion) de la ville ?
Il s'articulait autour de trois interventions :
- Flavie Ferchaud, doctorante en aménagement de l’espace
et science politique à l’Université Rennes 2 et
au sein du laboratoire ESO,
- Bastien Vernier, consultant
indépendant (Urbanim) en charge de la
mission « Tiers Lieu & Campus International »
par la ComUE Université Paris-Seine,
- Gwénaelle Dralou, chargée d’évaluation et
de développement économique au Conseil
Général des Hauts de Seine, qui oeuvre à la mise en place de tiers-lieux portés par des collectivités.
Un prochain atelier devrait être programmé bientôt pour poursuivre la réflexion.
STANLIB MultiManager INSIGHTS is a regular email communication that provides
advisers with important information and insights regarding our business and solutions.
Pesquisa de Mercado de RPG de Mesa 2016AsterEditora
O documento apresenta os resultados de uma pesquisa de mercado sobre RPG de mesa no Brasil realizada em 2016. Os principais resultados são: (1) São Paulo é o estado com maior presença de jogadores, representando 35,1% do total; (2) a maioria dos jogadores tem entre 21 e 30 anos e é do gênero masculino; (3) Dungeons & Dragons é o sistema mais jogado no país.
The document contains announcements about a girls hockey final taking place after school at the Stayner Arena and wishes the girls good luck. It also provides contact information for an employment agency called Tracks and advertises a contest on Twitter run by the cafeteria provider Chartwells where students can tweet about treats for a chance to win them for free.
Este resumen de prensa del 1 de marzo de 2017 incluye noticias de periódicos como Diari de Girona, El Punt Avui y Mundo Deportivo. Las noticias se centran principalmente en eventos deportivos como el derbi entre La Jonquera y Figueres, y también incluyen artículos de opinión sobre la ciudad de Figueres.
The document provides an introduction to the weird and wonderful world of behavioural finance and economics. It discusses how human decision making is influenced by factors like mood, peers, and default options. Some key points made include that seasonal affective disorder can influence financial decisions by making people more pessimistic; unexpectedly good weather can increase lottery ticket sales by putting people in a better mood; and employees' pension choices are often influenced by the choices of their coworkers, such as following the investment choices of the store butcher. The document aims to help readers better understand human behavior and communicate with customers in a more natural way.
In a food establishment, employees must complete orders in a timely, accurate, secure, and courteous manner. Plus, they must comply with Payment Card Industry (PCI) data security standards and restaurant safety regulations. Failure to do this can result in loss of customers, profits, and reputation. SwiftTech will help your establishment select and set up encrypted databases, point of sale terminals, restaurant management applications, and more.
O documento descreve os passos para implementar autenticação de usuários em uma aplicação Zend Framework: 1) Criar tabela de usuários e popular com dados; 2) Criar formulário de login; 3) Criar controller de autenticação com ações de login e logout; 4) Certificar que o usuário esteja logado antes de acessar outras áreas.
O documento discute a criação de relatórios personalizados em PHP usando tabelas. Ele mostra como gerar uma tabela simples com dados, adicionar estilos de linha alternados, ordenar colunas por links, e criar relatórios paginados usando LIMIT no MySQL.
Partindo de um código legado com uma organização frágil e pouco reutilizável iremos aprimorá-lo de forma incremental e com foco nas regras de negócio. Utilizaremos princípios de projeto orientado a objetos para torná-lo mais fácil de testar e reutilizar deixando o seu código mais robusto e escalável.
O documento apresenta um exemplo de como implementar injeção de dependência em PHP usando anotações em propriedades para definir as dependências. É mostrado como parsear as anotações para obter as dependências de uma classe, verificar se elas existem em um container e injetá-las no objeto. Isso permite construir objetos sem precisar instanciar diretamente suas dependências.
O documento descreve um sistema de notícias com as seguintes funcionalidades:
1) Criação de um banco de dados e tabela para armazenar notícias;
2) Páginas para exibir, inserir e editar notícias;
3) Uso de PHP e MySQL para conexão ao banco e gerenciamento das notícias.
Bread::Board é uma biblioteca Perl que implementa Injeção de Dependência e Inversão de Controle, permitindo a criação e injeção de serviços e dependências sem necessidade de solda. Ela permite definir containers de serviços, especificar suas dependências e parâmetros, e injetá-los onde necessário, promovendo o desacoplamento e testabilidade do código.
Este documento descreve um sistema gerenciador de produtos construído com PHP e MySQL. O sistema permite que usuários cadastrados realizem ações como incluir, alterar, excluir e listar produtos armazenados no banco de dados MySQL. Ele utiliza sessões PHP para autenticar usuários e redirecioná-los para páginas que fornecem diferentes funcionalidades de gestão de produtos.
O documento explica como carregar itens de menu dinamicamente de um arquivo JSON em um menu Kendo UI. Ele descreve como criar um array PHP com itens de menu e subitens e converter para JSON, e como usar jQuery AJAX para carregar os dados e inicializar o menu Kendo UI.
A criação de uma loja virtual não é uma tarefa realizada apenas por desenvolvedores experientes e com um currículo extenso. Michael, que desenvolve, junto com o UOL, pacotes e soluções para a plataforma de pagamento digital PagSeguro vai mostrar isso ao vivo e a cores.
Palestra gratuita: E-commerce: mais fácil do que parece
Dia 12 de junho, das 10h às 13h
Local: Faculdade Impacta
O documento fornece instruções passo-a-passo para começar um negócio de e-commerce, abordando tópicos como escolha de plataforma, controle de versão, pagamentos online e publicação do site.
Este documento fornece uma introdução ao framework Play! para desenvolvimento de aplicações web com Java. Ele discute a instalação do framework, criação de um projeto de exemplo, estrutura de pastas, configuração do banco de dados, criação de modelos, controllers e views. Além disso, aborda tópicos como validações, interceptações, templates, módulos e recursos avançados do framework.
O documento apresenta uma introdução a JavaScript, destacando que é uma linguagem de programação criada para interagir com páginas HTML e que hoje também é usada em aplicações desktop, móveis e servidores. Apresenta também bibliotecas e conceitos importantes como jQuery, HTML DOM e manipulação de elementos e eventos.
Evento Front End SP - Organizando o JavascriptMichel Ribeiro
O documento fornece 3 dicas principais para escrever códigos JavaScript melhores:
1) Aprenda bem a linguagem JavaScript e seus conceitos-chave.
2) Aplique padrões como o Module Pattern para organizar e encapsular o código.
3) Use arquiteturas como MVC para separar as preocupações da aplicação.
Além disso, fornece dicas gerais como documentar o código, criar arquivos separados, injetar dependências e realizar testes. O objetivo é ajudar a escrever códigos mais
Este documento descreve um sistema de votação online com cadastro de usuários. Ele contém classes PHP para conexão com banco de dados MySQL, formulários HTML para votação, pesquisa e cadastro e arquivos PHP para inserção e atualização de dados no banco.
O documento apresenta as vantagens e funcionalidades do jQuery, como simplificar códigos JavaScript, acesso direto ao DOM, efeitos e animações. Explica a filosofia do jQuery de procurar elementos e fazer ações com eles, e demonstra seletores, métodos como append(), css() e eventos como click().
2017 CR Atelier Lieux partagés et approches communautaires dans la fabrique d...Noémie Galvez
Le 15 décembre 2016, Aurélie Landon, chercheure en urbanisme à la Fabrique des Territoires Innovants, organisait l'atelier de recherche collaborative "Lieux partagés et approche communautaire dans la fabrique de la ville".
Après avoir été partenaire de la FING dans le cadre de l'expédition SoftPlace sur les lieux partagés et après de premiers résultats de recherche en urbanisme, la FTI propose de continuer à explorer ces pistes.
Ce premier atelier abordait deux grandes questions : Pourquoi et comment créer des projets urbains gérés de façon communautaire ? Comment les lieux partagés s'inscrivent-ils dans la chaîne de fabrication (conception et gestion) de la ville ?
Il s'articulait autour de trois interventions :
- Flavie Ferchaud, doctorante en aménagement de l’espace
et science politique à l’Université Rennes 2 et
au sein du laboratoire ESO,
- Bastien Vernier, consultant
indépendant (Urbanim) en charge de la
mission « Tiers Lieu & Campus International »
par la ComUE Université Paris-Seine,
- Gwénaelle Dralou, chargée d’évaluation et
de développement économique au Conseil
Général des Hauts de Seine, qui oeuvre à la mise en place de tiers-lieux portés par des collectivités.
Un prochain atelier devrait être programmé bientôt pour poursuivre la réflexion.
STANLIB MultiManager INSIGHTS is a regular email communication that provides
advisers with important information and insights regarding our business and solutions.
Pesquisa de Mercado de RPG de Mesa 2016AsterEditora
O documento apresenta os resultados de uma pesquisa de mercado sobre RPG de mesa no Brasil realizada em 2016. Os principais resultados são: (1) São Paulo é o estado com maior presença de jogadores, representando 35,1% do total; (2) a maioria dos jogadores tem entre 21 e 30 anos e é do gênero masculino; (3) Dungeons & Dragons é o sistema mais jogado no país.
The document contains announcements about a girls hockey final taking place after school at the Stayner Arena and wishes the girls good luck. It also provides contact information for an employment agency called Tracks and advertises a contest on Twitter run by the cafeteria provider Chartwells where students can tweet about treats for a chance to win them for free.
Este resumen de prensa del 1 de marzo de 2017 incluye noticias de periódicos como Diari de Girona, El Punt Avui y Mundo Deportivo. Las noticias se centran principalmente en eventos deportivos como el derbi entre La Jonquera y Figueres, y también incluyen artículos de opinión sobre la ciudad de Figueres.
The document provides an introduction to the weird and wonderful world of behavioural finance and economics. It discusses how human decision making is influenced by factors like mood, peers, and default options. Some key points made include that seasonal affective disorder can influence financial decisions by making people more pessimistic; unexpectedly good weather can increase lottery ticket sales by putting people in a better mood; and employees' pension choices are often influenced by the choices of their coworkers, such as following the investment choices of the store butcher. The document aims to help readers better understand human behavior and communicate with customers in a more natural way.
In a food establishment, employees must complete orders in a timely, accurate, secure, and courteous manner. Plus, they must comply with Payment Card Industry (PCI) data security standards and restaurant safety regulations. Failure to do this can result in loss of customers, profits, and reputation. SwiftTech will help your establishment select and set up encrypted databases, point of sale terminals, restaurant management applications, and more.
O documento descreve os passos para implementar autenticação de usuários em uma aplicação Zend Framework: 1) Criar tabela de usuários e popular com dados; 2) Criar formulário de login; 3) Criar controller de autenticação com ações de login e logout; 4) Certificar que o usuário esteja logado antes de acessar outras áreas.
O documento discute a criação de relatórios personalizados em PHP usando tabelas. Ele mostra como gerar uma tabela simples com dados, adicionar estilos de linha alternados, ordenar colunas por links, e criar relatórios paginados usando LIMIT no MySQL.
Partindo de um código legado com uma organização frágil e pouco reutilizável iremos aprimorá-lo de forma incremental e com foco nas regras de negócio. Utilizaremos princípios de projeto orientado a objetos para torná-lo mais fácil de testar e reutilizar deixando o seu código mais robusto e escalável.
O documento apresenta um exemplo de como implementar injeção de dependência em PHP usando anotações em propriedades para definir as dependências. É mostrado como parsear as anotações para obter as dependências de uma classe, verificar se elas existem em um container e injetá-las no objeto. Isso permite construir objetos sem precisar instanciar diretamente suas dependências.
O documento descreve um sistema de notícias com as seguintes funcionalidades:
1) Criação de um banco de dados e tabela para armazenar notícias;
2) Páginas para exibir, inserir e editar notícias;
3) Uso de PHP e MySQL para conexão ao banco e gerenciamento das notícias.
Bread::Board é uma biblioteca Perl que implementa Injeção de Dependência e Inversão de Controle, permitindo a criação e injeção de serviços e dependências sem necessidade de solda. Ela permite definir containers de serviços, especificar suas dependências e parâmetros, e injetá-los onde necessário, promovendo o desacoplamento e testabilidade do código.
Este documento descreve um sistema gerenciador de produtos construído com PHP e MySQL. O sistema permite que usuários cadastrados realizem ações como incluir, alterar, excluir e listar produtos armazenados no banco de dados MySQL. Ele utiliza sessões PHP para autenticar usuários e redirecioná-los para páginas que fornecem diferentes funcionalidades de gestão de produtos.
O documento explica como carregar itens de menu dinamicamente de um arquivo JSON em um menu Kendo UI. Ele descreve como criar um array PHP com itens de menu e subitens e converter para JSON, e como usar jQuery AJAX para carregar os dados e inicializar o menu Kendo UI.
A criação de uma loja virtual não é uma tarefa realizada apenas por desenvolvedores experientes e com um currículo extenso. Michael, que desenvolve, junto com o UOL, pacotes e soluções para a plataforma de pagamento digital PagSeguro vai mostrar isso ao vivo e a cores.
Palestra gratuita: E-commerce: mais fácil do que parece
Dia 12 de junho, das 10h às 13h
Local: Faculdade Impacta
O documento fornece instruções passo-a-passo para começar um negócio de e-commerce, abordando tópicos como escolha de plataforma, controle de versão, pagamentos online e publicação do site.
Este documento fornece uma introdução ao framework Play! para desenvolvimento de aplicações web com Java. Ele discute a instalação do framework, criação de um projeto de exemplo, estrutura de pastas, configuração do banco de dados, criação de modelos, controllers e views. Além disso, aborda tópicos como validações, interceptações, templates, módulos e recursos avançados do framework.
O documento apresenta uma introdução a JavaScript, destacando que é uma linguagem de programação criada para interagir com páginas HTML e que hoje também é usada em aplicações desktop, móveis e servidores. Apresenta também bibliotecas e conceitos importantes como jQuery, HTML DOM e manipulação de elementos e eventos.
Evento Front End SP - Organizando o JavascriptMichel Ribeiro
O documento fornece 3 dicas principais para escrever códigos JavaScript melhores:
1) Aprenda bem a linguagem JavaScript e seus conceitos-chave.
2) Aplique padrões como o Module Pattern para organizar e encapsular o código.
3) Use arquiteturas como MVC para separar as preocupações da aplicação.
Além disso, fornece dicas gerais como documentar o código, criar arquivos separados, injetar dependências e realizar testes. O objetivo é ajudar a escrever códigos mais
Este documento descreve um sistema de votação online com cadastro de usuários. Ele contém classes PHP para conexão com banco de dados MySQL, formulários HTML para votação, pesquisa e cadastro e arquivos PHP para inserção e atualização de dados no banco.
O documento apresenta as vantagens e funcionalidades do jQuery, como simplificar códigos JavaScript, acesso direto ao DOM, efeitos e animações. Explica a filosofia do jQuery de procurar elementos e fazer ações com eles, e demonstra seletores, métodos como append(), css() e eventos como click().
Este documento apresenta o desenvolvimento de um sistema de locação de filmes chamado Telecine Mozer. O sistema possui frontend com lista de filmes cadastrados e painel administrativo para cadastro e gerenciamento. É apresentado o código do site e prints de telas como login, painel administrativo e cadastro de filmes. Diagramas de banco de dados e caso de uso também são incluídos.
Este documento apresenta o desenvolvimento de um sistema de locação de filmes chamado Telecine Mozer. O sistema possui frontend com lista de filmes cadastrados e painel administrativo para cadastro e gerenciamento. É apresentado o código do site e prints de telas como login, painel administrativo e cadastro de filmes. Diagramas de banco de dados e caso de uso também são incluídos.
Hooks, o condimento mágico e escondido do WordPressZé Fontainhas
Este slide serve para garantir que a apresentação está no início e não no meio. O palestrante poderia ter criado um slide preto, mas queria algo mais significativo.
Aula 08 - Introdução ao banco de dados MySQL - Programação WebDalton Martins
A aula apresenta o uso do banco de dados MySQL com PHP, incluindo como acessar o banco via web e linha de comando, criar tabelas, inserir, consultar, atualizar e apagar dados, e contar linhas afetadas/retornadas. O documento também fornece exemplos de código PHP para executar essas operações e um exercício para criar um sistema de cadastro de clientes.
O documento discute princípios de segurança para aplicações web escritas em PHP, cobrindo tópicos como vulnerabilidades comuns, como SQL injection e XSS, e técnicas para preveni-las, como validação e filtragem de dados de entrada e saída. O documento também aborda segurança de sessão, uploads de arquivos e configurações de segurança do PHP.
Semelhante a Criando controle de acesso com php e my sql (20)
1. Nos sistemas web que costumamos acessar hoje em dia é comum vermos controles de
usuários. Um exemplo seria o de sistemas de publicações de artigos ou textos onde temos
vários tipos de usuários como: Editor, Publicador, Revisor, etc, onde cada um possui
privilégios diferentes de acesso às páginas do sistema/site.
Neste artigo vamos abordar uma ideia básica de criação de controle de acesso, onde
teremos:
Tela de Login;
Tela de Cadastro de Usuário;
Funções que irão manipular os dados (cadastro no banco / verificação dos privilégios).
É um sistema simples, mas que pode ser tomado como base para a implementação de
sistemas de controle bastante complexos com sessions, cookies, e assim por diante.
O 1º passo é criarmos nossa index.php onde ficará nosso formulário de login e um link para
efetivar um cadastro, caso não possua.
2. Listagem 1: Criando arquivo index.php
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<div>
Login
</div>
<form action="controle.php" method="post">
<input type="text" name="login" value="" />
<input type="password" name="senha" value="" />
<input type="submit" name="enviar" value="Login"/>
<a href="cadastrar.php">Sem cadastro?</a>
</form>
</body>
</html>
Figura 1: Formulário de login
Após a criação deste arquivo vamos criar o formulário de cadastro de usuário, assim, quem
não possuir login e senha poderá realizar um cadastro rápido.
Listagem 2: Criando o arquivo cadastrar.php
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
3. <body>
<div>
Cadastro de usuário
</div>
<form action="controle.php" method="post">
<label>Login</label>
<input type="text" name="login" value="" /><br />
<label>Senha</label>
<input type="password" name="senha" value="" /><br />
<label>Tipo de usuário</label>
<select name="tipo_usuario">
<option value="">Selecione</option>
<option value="1">Usuario Comum</option>
<option value="2">Administrador</option>
</select><br />
<input type="submit" name="cadastrar" value="cadastrar"/>
</form>
</body>
</html>
Figura 2: Formulário de cadastro de usuário
Com nossos formulários prontos, vamos prosseguir criando um controle para verificar se a
requisição é de um cadastro novo ou se é de um login. Para tal, vamos criar o arquivo
controler.php.
4. Listagem 3: Criando o arquivo controle.php
<?php
//utilização de namespaces
namespace controle;
include 'processaAcesso.php';
use processaAcesso as processaAcesso;
$controle = new processaAcessoProcessaAcesso;
if ($_POST['enviar']) {
$login = $_POST['login'];
$senha = md5($_POST['senha']);
$usuario = $controle->verificaAcesso($login, $senha);
//redirecionando para pagina conforme o tipo do usuário
if ($usuario[0]['id_tipo_acesso'] == 1) {
header("Location:paginas/pagina1.html");
} else if ($usuario[0]['id_tipo_acesso'] == 2) {
header("Location:paginas/pagina2.html");
}
} else if ($_POST['cadastrar']) {
$login = $_POST['login'];
$senha = md5($_POST['senha']);
$tipo_usuario = $_POST['tipo_usuario'];
$arr = array('login_usuario' => $login, 'senha_usuario' => $senha,
'id_tipo_acesso' => $tipo_usuario);
if (!$controle->cadastraUsuario($arr)) {
echo 'Aconteceu algum erro';
} else {
$tipo_acesso = $controle->verificaAcesso($login, $senha);
if ($tipo_acesso[0]['id_tipo_acesso'] == 1) {
header("Location:paginas/pagina1.html");
} else if ($tipo_acesso[0]['id_tipo_acesso'] == 2) {
header("Location:paginas/pagina2.html");
}
}
}
?>
Agora já sabemos se é uma requisição de login ou é um cadastro de usuário recente.
Nosso próximo passo é criar outro controler para inserir novos usuários e para verificar qual
5. o tipo de perfil que o usuário possui. Esse controler conversa diretamente com o controler
criado anteriormente (controler.php).
Listagem 4: Criando o arquivo processaAcesso.php
<?php
//utilização de namespaces
namespace processaAcesso {
include 'conexao/mysql.php';
use Mysql as Mysql;
class ProcessaAcesso {
var $db;
public function __construct() {
$conexao = new Mysqlmysql(DB_SERVER, DB_NAME, DB_USERNAME, DB_PASSWORD);
$this->db = $conexao;
}
public function verificaAcesso($login, $senha) {
$select = $this->db->select('tb_usuario', '*',
" where login_usuario = '$login' and senha_usuario = '$senha'");
return $select;
}
public function cadastraUsuario($dados){
$insert = $this->db->insert('tb_usuario', $dados);
return $insert;
}
}
}
?>
Para a lógica da nossa aplicação ficar completa, falta a comunicação com a base de dados
correto? Então vamos criar um controle para podermos realizar o CRUD.
Listagem 5: Criando o arquivo mysql.php dentro da pasta conexão
<?php
//utilização de namespaces
namespace Mysql {
//declaração de variáres globais
define('DB_SERVER', 'localhost');
define('DB_NAME', 'acesso');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', '');
6. class mysql {
var $db, $conn;
public function __construct($server, $database, $username, $password) {
$this->conn = mysql_connect($server, $username, $password);
$this->db = mysql_select_db($database, $this->conn);
}
/**
* Função de seleção dos registros da tabela
* @param string $tabela tabela onde será buscado os registros
* @param string $colunas string contendo as colunas separadas
por virgula para seleção, se null busca por todas *
*/
public function select($tabela, $colunas = "*", $where = "1=1") {
$sql = "SELECT $colunas FROM $tabela $where";
$result = $this->executar($sql);
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$return[] = $row;
}
return $return;
}
/**
* Função 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($tabela, $dados) {
foreach ($dados as $key => $value) {
$keys[] = $key;
$insertvalues[] = ''' . $value . ''';
}
$keys = implode(',', $keys);
$insertvalues = implode(',', $insertvalues);
$sql = "INSERT INTO $tabela ($keys) VALUES ($insertvalues)";
return $this->executar($sql);
}
private function executar($sql) {
$return_result = mysql_query($sql, $this->conn);
if ($return_result) {
return $return_result;
} else {
$this->sql_error($sql);
}
}
7. private function sql_error($sql) {
echo mysql_error($this->conn) . '<br>';
die('error: ' . $sql);
}
}
}
?>
Pronto! Nossa lógica está toda montada. Para verificarmos a diferença dos acessos em
relação ao tipo do usuário, vamos criar uma pasta chamada “Paginas” e dentro dela 2
arquivos, um para determinado tipo de usuário e outro para outro tipo.
Listagem 6: Criando o arquivo Pagina1.html
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<div>Aqui, conteúdo para o login do tipo "Usuario comum"</div>
</body>
</html>
Listagem 7: Criando o arquivo Pagina2.html
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<div>Aqui, conteúdo para o login do tipo "Adminitrador"</div>
</body>
</html>
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 usuário é simples, servindo apenas como
8. base, podendo ser aplicadas a ele várias técnicas de controle como mencionado no início
deste artigo.
Caso tenha dúvidas, criticas ou sugestões, não esqueça de deixar nos comentários. É
sempre bom saber o que o leitor acha. Espero que tenham aproveitado e até o próximo
artigo.