1 Criando um cadastro de clientes

Documentos relacionados
1 Criando um blog com o CodeIgniter

LAB 11 Programação em JavaScript, JQuery, e AJAX

LAB 9 Programação com o framework Codeigniter [parte 1]

LAB 11 Programação em JavaScript, JQuery, e AJAX

LAB 7 Cookies e Sessões em PHP

LAB 10 Programação com o framework CodeIgniter [parte 2]

1 Criando a área administrativa do blog

LAB 12 Construção de uma E-shop (programação em HTML, CSS, Bootstrap, PHP, CodeIgniter, JavaScript, JQuery, AJAX)

LAB 12 Construção de uma E-shop (programação em HTML, CSS, Bootstrap, PHP, CodeIgniter, JavaScript, JQuery, AJAX)

LAB 8 em PHP. 1. Assume-se neste lab que concluiu com sucesso o LAB7. Copie todos os ficheiros da pasta LAB7 para a pasta LAB8.

LAB 5 Formulários com PHP

English Português. By erickalves 25 Julho, :08. Devido à política (#) de segurança. Encontrar Blogs Crie o seu blog de graça Ganhe prêmios

Login. Criar uma pasta Repositories na raiz do projeto. Criar uma classe Funcoes.cs dentro da pasta Repositories.

22/05/2012 CRIANDO UM PROJETO COM TELAS ESTRUTURA DA APLICAÇÃO LOGIN BANCO DE DADOS TAREFAS PHP MYSQL PARTE 2

LAB 5 Formulários com PHP

O JasperReports Studio é uma ferramenta de software que oferece um ambiente visual para criar relatórios para a plataforma Java. É open source.

cadastro de usuários utilizando Ajax e PHP para inserir os dados em uma tabela MySQL.

Elaboração de Provas Online usando o Formulário Google Docs

Recomenda-se a leitura completa deste documento antes de iniciar o desenvolvimento do website.

MANUAL VTWEB CLIENT SUBURBANO

Lista de exercícios I - RESPOSTAS Servlets e banco de dados

GUIA PHP com MYSQL Autor: Everton Mendes Messias

MANUAL VTWEB CLIENT URBANO

Database and Applications. Criação, inserção de dados PHP+MySQL

Como criar um banco de dados usando o mysql

Cadastros de dados no MySQL

Construindo um sistema simples de cadastro de fornecedores em PHP e MySQL.

Programação Web Prof. Wladimir

Banco de Dados I Introdução SQL

Prof. Dr. Joaquim Assunção Banco de Dados. SQL (parte 4) DDL Restrições

Banco de Dados. -Aprendendo conceitos -Usando o SQL Conf para: -Conectar no banco de dados -Criar, alterar, excluir e consultar estruturas de tabelas

<html> <body> <h1>pesquisar livros no acervo</h1> <form action="buscalivro.php" method="post">

C A P I T U L O 10 F U N Ç Õ E S I N T E R N A S P H P P A R A B A N C O D E D A D O S

Aplicativos móveis com HTML5

MANUAL. Via Portal do Cidadão

Manual Sistema de Gerenciamento dos Auxiliares da Justiça

Sistema para acompanhamento de Trabalhos de Conclusão de Curso. Elisângela Cristina Lombardi Klitzke Acadêmica Dalton Solano dos Reis - Orientador

Recomenda-se a leitura completa deste documento antes de iniciar o desenvolvimento do website.

Desenvolvimento de Sistemas Web Prof. Leandro Roberto. Aula 18 JavaScript: Eventos MySQL PHP (insert, update e delete)

Manual de Procedimento para Comercialização das substâncias sujeitas a Controle Especial 1ºPasso: Pré-cadastro no sistema SIPEAGRO:

Manual de Usuário Solução para problemas no acesso ao SIGA?

Manual de Configuração dos Clientes de .

Universidade Federal de Uberlândia Faculdade de Computação Projeto de Programação para Internet Prof. Dr. Daniel A Furtado

SGATF Sistema para Gerenciamento de Alugueis de Trajes para Festa

A linguagem SQL

PROF. DANIELA PIRES. Aplicações para Web. Aplicações para Web - FMU Prof. Daniela Pires

Central de Comunicação de Venda de Veículos do Estado de Minas Gerais. Manual do Cartório

GUIA PARA CONFIGURAÇÃO DE CORREIO ELETRÔNICO

Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação. XML e JSON

TUTORIAL PROGRAMA SEGUNDO TEMPO NO MAIS EDUCAÇÃO

Orientações para preenchimento do formulário de Cadastro Habitacional Permanente

Many-to-many. Mapear no Context Na classe Context.cs, dentro do método OnModelCreating, adicionar o trecho

Como criar usuários do Painel

TUTORIAL DE ACESSO AOS CURSOS DA COLEÇÃO COMPETÊNCIAS TRANSVERSAIS

Desenvolvimento de Aplicações para Internet Aula 5

Desenvolvimento de Aplicações para Internet Aula 11

Manual de Configuração dos Clientes de .

MANUAL MÓDULO PESSOA FÍSICA

Tutorial 1 Configuração Apache Tomcat no NetBeans 8.0 (passo a passo)

1. Introdução O que fazer primeiro? Tipos de assuntos Complementos de assuntos com envio de s 5

Professor Jefferson Chaves Jefferson de Oliveira Chaves

Começando com Zend Framework

Técni n c i as e L i L n i g n u g age g ns n p ara r Ba B nc n o d e D ados I ACCESS

ACESSO AO BANCO DE DADOS PARTE 2 ALTERAÇÃO, EXCLUSÃO E INCLUSÃO DE REGISTROS

Manual de auto cadastro SIGRH

3- Após realizar o agendamento da entrega e clicar no botão continuar, os demais blocos ficarão visíveis, sendo

Aplicação MVC + Entity + MySQL

INTRODUÇÃO AO DESENVOLVIMENTO FRONT-END COM HTML, CSS E JAVASCRIPT

Manual (Tutorial) de Inscrição no Evento

Professor Leonardo Larback

Programação Web - HTML

Se você já possui o cadastro, pode consultar as informações a partir do Passo 3.

Sistema de Gerenciamento de Comercio de Perfumaria

Caso já esteja cadastrado mas não lembra da senha Click no Link esqueci Minha Senha.

SMC Sistema de Gerenciamento de Loja de Manutenção de Celular.

Microsoft Office Outlook 2007

Protocolo Eletrônico ( Acesso Externo )

1. Tela de Acesso pg Cadastro pg Abas de navegação pg Abas dados cadastrais pg Aba grupo de usuários pg.

Importar e Exportar Dados

Central de Comunicação de Venda de Veículos do Estado do Mato Grosso do Sul

Índice. Parte I Informações Iniciais 1 Sobre o documento. Apresentação Home. Parte II. Nota Premiada. Cadastro. Entrar. Sorteio. Dúvidas.

Para cadastrar um novo funcionário passe o mouse em Funcionários no menu superior da Intranet, em seguida, Cadastro de Funcionários

GUIA DE INSCRIÇÃO DE PROJETO DE PESQUISA

Personal Home Page PHP. Prof. Luiz Claudio F. de Souza

Programação para web HTML: Formulários

PORTAL DE SERVIÇOS DA SECRETARIA MUNICIPAL DE EDUCAÇÃO MANUAL DE UTILIZAÇÃO PARA INSCRIÇÕES ONLINE ÍNDICE

SISTEMA DE GESTÃO DE CREDENCIADOS - SGC MANUAL DO CANDIDATO CREDENCIADOS /

Inclusão e Alteração de Beneficiário Titular

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc.

Sumário. Introdução... 3 Público-alvo... 3 Obter Acesso... 3 Primeiro Acesso... 5 Cadastro de Oferta... 7

1.5. Interface inicial (Ambiente de trabalho TDMAx Web

Descrição dos casos de uso. UC1 Efetuar Login. Campos:

Protocolo Eletrônico ( Acesso Externo )

BANCO DE DADOS GERENCIAL 1 A U L A 2

Passos Preliminares: Acessando a máquina virtual via ssh.

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc.

Transcrição:

1 Criando um cadastro de clientes 1.1 table clientes Para iniciar a criação do cadastro de clientes, adicione a seguinte tabela ao BD da loja: 1 CREATE TABLE clientes( 2 id int(10) unsigned NOT NULL AUTO_INCREMENT, 3 nome varchar(145) NOT NULL, 4 sobrenome varchar(245) NOT NULL, 5 rg varchar(45) NOT NULL, 6 cpf varchar(45) NOT NULL, 7 data_nascimento datetime NOT NULL, 8 sexo char(1) NOT NULL, 9 rua varchar(145) NOT NULL, 10 numero varchar(15) NOT NULL, 11 bairro varchar(145) NOT NULL, 12 cidade varchar(145) NOT NULL, 13 estado varchar(45) NOT NULL, 14 cep varchar(15) NOT NULL, 15 telefone varchar(15) NOT NULL, 16 celular varchar(15) NOT NULL, 17 email varchar(145) NOT NULL, 18 senha varchar(45) NOT NULL, 19 status tinyint(1) NOT NULL DEFAULT 0, 20 cadastrado_em timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 21 PRIMARY KEY(id), 22 UNIQUE KEY CPF_Unico (cpf), 23 UNIQUE KEY Email_Unico (email) 24 ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 1.2 controller Cadastro.php Seu método index() exibirá o formulário de cadastro para que novos clientes possam se cadastrar e comprar na loja. Crie o arquivo Cadastro.php na pasta application/controllers, com o seguinte código: 1 <?php defined( BASEPATH ) OR exit( No direct script access allowed ); 2 class Cadastro extends CI_Controller{ 3 private $categorias; 4 public function construct(){ 5 parent:: construct(); 6 $this->load->model( categorias_model, modelcategorias ); 7 $this->categorias = $this->modelcategorias->listar_categorias(); 8 } 9 public function index(){ 10 $data_header[ categorias ] = $this->categorias; 11 $this->load->view( html-header ); 12 $this->load->view( header,$data_header); 13 $this->load->view( novo_cadastro ); 14 $this->load->view( footer ); 15 $this->load->view( html-footer ); 16 } 17 } 1.3 view novo_cadastro.php É necessário criar a view com os campos correspondentes aos da tabela clientes do BD. Os campos id, status e cadastrado_em são preenchidos automaticamente pelo BD e não necessitam ser incluídos no formulário.

1 <div id="homebody"> 2 <div class="alinhado-centro borda-base espaco-vertical"> 3 <h3>seja Bem-Vindo à nossa loja.</h3> 4 <p>use o formulário abaixo para se cadastrar.</p> 5 </div> 6 <div class="row-fluid"> 7 <? php 8 echo validation_errors(); 9 echo form_open(base_url( cadastro/adicionar ),array( id => form_cadastro )). 10 "<div class= span4 >". 11 form_input(array( id => nome, name => nome, Placeholder => Nome, 12 value =>set_value( nome ))). 13 form_input(array( id => sobrenome, name => sobrenome, 14 Placeholder => Sobrenome, value =>set_value( sobrenome ))). 15 form_input(array( id => rg, name => rg, Placeholder => Rg, 16 value =>set_value( rg ))). 17 form_input(array( id => cpf, name => cpf, Placeholder => Cpf, 18 value =>set_value( cpf ))). 19 form_input(array( id => data_nascimento, name => data_nascimento, 20 Placeholder => Data de Nascimento, value =>set_value( data_nascimento ))). 21 form_input(array( id => sexo, name => sexo, Placeholder => Sexo(M/ F), 22 value =>set_value( sexo ))). 23 "</div><div class= span4 >". 24 form_input(array( id => cep, name => cep, Placeholder => CEP, 25 value =>set_value( cep ))). 26 form_input(array( id => rua, name => rua, Placeholder => Rua, 27 value =>set_value( rua ))). 28 form_input(array( id => bairro, name => bairro, Placeholder => Bairro, 29 value =>set_value( bairro ))). 30 form_input(array( id => cidade, name => cidade, Placeholder => Cidade, 31 value =>set_value( cidade ))). 32 form_input(array( id => estado, name => estado, Placeholder => Estado, 33 value =>set_value( estado ))). 34 form_input(array( id => numero, name => numero, Placeholder => Número, 35 value =>set_value( numero ))). 36 "</div><div class= span4 >". 37 form_input(array( id => telefone, name => telefone, Placeholder => Telefone, 38 value =>set_value( telefone ))). 39 form_input(array( id => celular, name => celular, Placeholder => Celular, 40 value =>set_value( celular ))). 41 form_input(array( id => email, name => email, Placeholder => Email, 42 value =>set_value( email ))). 43 form_password(array( id => senha, name => senha, Placeholder => Senha, 44 value =>set_value( senha ))). 45 form_submit( btn_cadastrar, Cadastrar ). 46 "</div>". 47 form_close(); 48?> 49 </div> 50 </div>

51 <script type="text/javascript"> 52 $(document).ready(function(){ 53 $( #cpf ).mask( 000.000.000-00, {reverse: true}); 54 $( #cep ).mask( 00000-000, {reverse: true}); 55 $( #telefone ).mask( (00)0000.0000 ); 56 $( #celular ).mask( (00)00000.0000 ); 57 $( #data_nascimento ).mask( 00/00/0000, {reverse: true}); 58 $( #sexo ).mask( A, {reverse: true}); 59 $( #cep ).blur(function(){ 60 $.getjson("https://viacep.com.br/ws/"+$("#cep").val()+"/json", 61 function(dados){ 62 if(!("erro" in dados)){ 63 $("#rua").val(dados.logradouro); 64 $("#bairro").val(dados.bairro); 65 $("#cidade").val(dados.localidade); 66 $("#estado").val(dados.uf); 67 $("#numero").focus(); 68 } 69 else{ 70 alert("cep não encontrado."); 71 } 72 }); 73 }); 74 }); 75 </ script > Para auxiliar no preenchimento do formulário, será utilizado um plugin da jquery que permite adicionar máscaras a elementos input de formulários. O plugin utilizado no projeto é o do Igor Escobar 1. Baixe o plugin e salve o arquivo jquery.mask.js na pasta assets/js; então adicione o plugin à view html-header.php desta forma: 1 <script src="<?php echo base_url( assets/js/jquery.mask.js );?>"></script> 1.4 método adicionar() controller Cadastro.php 1 public function adicionar(){ 2 $this->load->library( form_validation ); 3 $this->form_validation->set_rules( nome, Nome, required min_length[5] ); 4 $this->form_validation->set_rules( cpf, CPF, required min_length[14] ) ; 5 $this->form_validation->set_rules( email, E-mail, 6 required valid_email is_unique[clientes.email] ); 7 if($this->form_validation->run() == FALSE){ 8 $this->index(); 9 } 10 else{ 11 $dados[ nome ] = $this->input->post( nome ); 12 $dados[ sobrenome ] = $this->input->post( sobrenome ); 13 $dados[ rg ] = $this->input->post( rg ); 14 $dados[ cpf ] = $this->input->post( cpf ); 15 $dados[ data_nascimento ] = 16 databr_to_datamysql($this->input->post( data_nascimento )); 17 $dados[ sexo ] = $this->input->post( sexo ); 18 $dados[ cep ] = $this->input->post( cep ); 19 $dados[ rua ] = $this->input->post( rua ); 20 $dados[ bairro ] = $this->input->post( bairro ); 21 $dados[ cidade ] = $this->input->post( cidade ); 1 http://igorescobar.github.io/jquery-mask-plugin https://github.com/igorescobar/jquery-mask-plugin

22 $dados[ estado ] = $this->input->post( estado ); 23 $dados[ numero ] = $this->input->post( numero ); 24 $dados[ telefone ] = $this->input->post( telefone ); 25 $dados[ celular ] = $this->input->post( celular ); 26 $dados[ email ] = $this->input->post( email ); 27 $dados[ senha ] = $this->input->post( senha ); 28 if($this->db->insert( clientes,$dados)){ 29 $this->enviar_email_confirmacao($dados); 30 } 31 else{ 32 echo "Houve um erro ao processar seu cadastro"; 33 } 34 } 35 } 1.5 função databr_to_datamysql no funcoes_helper.php 1 function databr_to_datamysql($data){ 2 $campos = explode("/",$data); 3 return date("y-m-d",strtotime($campos[2]."/".$campos[1]."/".$campos[0])) ; 4 } 1.6 método enviar_email_confirmacao() no controller Cadastro.php 1 public function enviar_email_confirmacao($dados){ 2 $mensagem =$this->load->view( emails/confirmar_cadastro.php,$dados,true); 3 $this->load->library( email ); 4 $this->email->from("emailvalido@gmail.com","confirmação de cadastro"); 5 $this->email->to($dados[ email ]); 6 $this->email->subject( Lojão do Terceirão - confirmação de cadastro ); 7 $this->email->message($mensagem); 8 if($this->email->send()){ 9 $data_header[ categorias ] = $this->categorias; 10 $this->load->view( html-header ); 11 $this->load->view( header,$data_header); 12 $this->load->view( cadastro_enviado ); 13 $this->load->view( footer ); 14 $this->load->view( html-footer ); 15 } 16 else{ 17 print_r($this->email->print_debugger()); 18 } 19 } 1.7 view confirmar_cadastro.php na subpasta emails Crie a subpasta emails em application/views e adicione a view confirmar_cadastro.php conforme código abaixo: 1 <!doctype html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>lojão do Terceirão</title> 6 </head> 7 <body> 8 <h2>lojão do Terceirão</h2> 9 <h3>confirmação de cadastro</h3> 10 <p>olá: <?php echo $nome. " ". $sobrenome?>.<br> 11 Muito obrigado por se cadastrar e liberar sua conta para compras, clique

12 no link abaixo.</p> 13 <p><a href="<?php echo base_url("cadastro/confirmar/".md5($email))?>"> 14 Confirmar cadastro no website!</a></p> 15 <h4>seja bem-vindo e boas compras!<br>lojão do Terceirão.</h4> 16 </body> 17 </html> 1.8 email.php na pasta application/config Para que o email seja encaminhado corretamente, é necessário haver um servidor SMTP configurado. Para utilizar uma conta do Gmail para testes, adicione o arquivo de configuração email.php à pasta application/config 1 <? php 2 defined( BASEPATH ) OR exit( No direct script access allowed ); 3 $config[ protocol ] = smtp ; 4 $config[ smtp_host ] = ssl://smtp.googlemail.com ; 5 $config[ smtp_port ] = 465 ; 6 $config[ smtp_timeout ] = 30 ; 7 $config[ smtp_user ] = EMAILVALIDO@gmail.com ; 8 $config[ smtp_pass ] = SENHADOEMAIL ; 9 $config[ charset ] = utf-8 ; 10 $config[ newline ] = "\r\n"; 11 $config[ mailtype ] = html ; 1.9 view cadastro_enviado.php 1 <div id="homebody"> 2 <div class="alinhado-centro borda-base espaco-vertical"> 3 <h3>seja Bem-Vindo à nossa loja.</h3> 4 <p>dados de cadastro recebidos.</p> 5 </div> 6 <div class="row-fluid"> 7 <p>seu cadastro foi efetuado com sucesso.<br/> 8 Você receberá um email para ativação da sua conta.<br/> 9 Caso não receba a mensagem em alguns minutos, cheque também a pasta SPAM 10 da sua conta de email.<br/> 11 Muito obrigado por se cadastrar.</p> 12 </div> 13 </div> 1.10 método confirmar() no controller Cadastros.php 1 public function confirmar($hashemail){ 2 $dados[ status ] = 1; 3 $this->db->where( md5(email),$hashemail); 4 if($this->db->update( clientes,$dados)){ 5 $data_header[ categorias ] = $this->categorias; 6 $this->load->view( html-header ); 7 $this->load->view( header,$data_header); 8 $this->load->view( cadastro_liberado ); 9 $this->load->view( footer ); 10 $this->load->view( html-footer ); 11 } 12 else{ 13 echo "Houve um erro ao confirmar seu cadastro"; 14 } 15 }

1.11 view cadastro_liberado.php Criando uma loja online com o CodeIgniter 1 <div id="homebody"> 2 <div class="alinhado-centro borda-base espaco-vertical"> 3 <h3>cadastro confirmado.</h3> 4 <p>você já está apto para fazer compras.</p> 5 </div> 6 <div class="row-fluid"> 7 <p>seu cadastro foi confirmado com sucesso.<br/> 8 Você já pode fazer compras.<br/> 9 <a href="<?php echo base_url( produtos )?>">Ver os produtos da loja.</a></p> 10 </div> 11 </div> 1.12 finalizando esta parte Para finalizar esta etapa, basta criar os links necessários para que os usuários cheguem até o formulário de cadastro. Na home do website existe um botão Cadastre-se; adicione o hyperlink para o formulário de cadastro desta forma: 1 <?php echo anchor(base_url("cadastro"),"cadastre-se", 2 array("class"=>"btn btn-mediun btn-success"));?> É conveniente exibir um link no cabeçalho do website, disponível em todas as páginas, tanto para cadastro de novos clientes quanto para login dos clientes já cadastrados. Para isto, altere o início da view header.php conforme este código: 1 <div class="container"> 2 <div class="masthead"> 3 <div id="cadastro-e-login"> 4 <? php 5 echo anchor(base_url("cadastro"),"cadastro "). 6 anchor(base_url("login")," Login"); 7?> 8 </div> 9 <?php echo heading( Lojão do Terceirão,3, class="muted" );?> 10 11 <!-- CONTINUA O RESTANTE DA VIEW --> Também é preciso incluir a regra CSS que faz com que os links para cadastro e login fiquem alinhados corretamente. Para isso, altere o arquivo estilos.css em assets/css adicionando este estilo CSS: 1 #cadastro-e-login{float: right; clear: none;} Com estas ações está concluída a etapa de cadastro de usuário. Os próximos passos são controlar o login, a recuperação de senha e demais ações relacionadas à autenticação do usuário na loja.