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

Documentos relacionados
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 11 Programação em JavaScript, JQuery, e AJAX

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

LAB 5 Formulários com PHP

Bases de Dados 2015/2016. Enunciado do Projeto Parte 2. O trabalho a desenvolver para a primeira parte do projeto consiste nos seguintes itens:

Começando com Zend Framework

Bases de Dados. Lab 1: Introdução ao ambiente. Figura 1. Base de dados de exemplo

Iniciando com Zend_Auth By Rob Allen, Document Revision Copyright 2007

Banco de dados. Conteúdo: DDL Prof. Patrícia Lucas

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

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

Transacções. Vitor Vaz da Silva

História. Introdução ao MySQL

Integração por Web Services

Bases de Dados. Lab 1: Introdução ao ambiente

Aplicação Web Zend Framework 2 Cliente de Aplicação Asp.Net Web API

EXERCÍCIOS PRÁTICOS DE REVISÃO. Banco de Dados

A linguagem SQL

Linguagem SQL (Parte II)

2.1-Criar BD e Tabelas.

1 Criando um blog com o CodeIgniter

Aceda a Surge uma página com o aspeto apresentado na figura 1. Figura 1.

Configurar ISE 2.2 para a integração com server de MySQL

AMBIENTE WEB PARA GERÊNCIA DE PROCESSO DE SOFTWARE BASEADO NO SCRUM

PSI Linguagem de Definição de dados. Módulo 15

SQL Básica DDL. Prof. Marcos A. Schreiner. 21 de outubro de Curso de Licenciatura em Computação

API Documentation. Release Igor Morse

Sumário. SQL - Criação de Tabelas. Structured Query Language. SQL Versões. André Restivo. October 18, 2010

Ferramentas Web, Web 2.0 e Software Livre em EVT

Para o carregamento das DropDownList usar métodos:

Bases de Dados. Lab 1: Introdução ao ambiente. Figura 1. Base de dados de exemplo

(1,n) venda. (1,1) realizacao. cliente. (0,n) (1,1) contem. produto. Laboratório de Banco de Dados Exercicios

ANEXO I. easypay sistema de pagamentos. Especificações técnicas para a implementação de web services easypay Get e XML. 10 de Abril de 2008 Ver B

TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS BANCO DE DADOS I PROFA. CLEIANE GONÇALVES OLIVEIRA ATIVIDADE 15

Manual FPO 22-Jan-2007 Actualizado em 03-Fev-2015

A linguagem SQL

2.9. PHP Cookies e variáveis de sessão

Tarefa Orientada 8 Criação de tabelas

SQL Básica. Andre Noel

INSERT INTO shop VALUES (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),(3,'C',1.69), (3,'D',1.25),(4,'D',19.95);

Glogster Manual e Guia de exploração do Glogster para utilização em contexto de Educação Visual e Tecnológica. Carla Barbosa

Bases de Dados. Lab 1: Introdução ao ambiente. Figura 1. Base de dados de exemplo

APLICAÇÃO GOIVV. A sua ligação à IVV- Automação, Lda MANUAL DE UTILIZAÇÃO

Banco de Dados I Introdução SQL

Lista 02 Sistema de Banco de Dados CAP 241 Computação Aplicada I

Modelagem Física e SQL

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

Ferramentas Web, Web 2.0 e Software Livre em EVT

Criação de uma aplicação Web ASP.NET MVC 4

PHP e MySQL Autenticação de Usuários

Guia de utilização do servidor da disciplina

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

7.1-Criar BD e Tabelas.

1 Criando um cadastro de clientes

Professor Leonardo Larback

Sensor de temperatura Parte 5 Cleiton Bueno Preparando o ambiente do Banco de dados Mysql

Relatório de Desenvolvimento (25/05/2002 Versão 1.0) Gestão de Beneficiários P7

Benvindo ao Curso de Introdução ao Firebird com Ferramenta de Relatórios!

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

REST. Representational State Transfer. É um estilo arquitetural usado por muitas aplicações Web para estender as suas funcionalidades.

COMPUTAÇÃO E PROGRAMAÇÃO

EIC. Projecto I. Curso: Engenharia de Informática e Comunicações Ano Lectivo: 2005/2006

Prof. Carlos Majer Aplicações Corporativas UNICID

Bases de Dados 1º semestre

Sistema para gerenciamento de pizzaria e restaurante

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

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

1 Criando a área administrativa do blog

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

Gestão de Projectos de Software

Desenvolvimento para Web em Java. Profa Andréa Schwertner Charão DLSC/CT/UFSM Lamarck Heinsch Mestrando PPGI/CT/UFSM

Fórum Internacional Software Livre 8.0. PEAR::MDB2_Schema. Igor Feghali

Configurar o 2.1 ISE com MS SQL usando o ODBC

GUIÃO DO TRABALHO PRÁTICO INTRODUÇÃO À PROGRAMAÇÃO WEB SISTEMAS DE INFORMAÇÃO EMPRESARIAIS. Faculdade de Engenharia da Universidade do Porto

Sistema para Gerenciamento de Lanchonete(hamburgueria)

Rede HortiNET Guia de Utilização

Curso PHP Aula 08. Bruno Falcão

Configurar o ODBC em ISE 2.3 com base de dados Oracle

APOIO AO BENEFICIÁRIO - FEDER - MAIS CENTRO - GUIA DE SUBMISSÃO ELECTRÓNICA DOS PEDIDOS DE PAGAMENTO

Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA total e disjuntiva.

Importar e Exportar Dados

BANCO DE DADOS TABELAS SQL. Professor Carlos Muniz

Configurando uma aplicação Struts

Teste Exemplo Revisão da tentativa 1

Tutorial: Utilização do sqlite no Android (Parte I)

Jornal TAP. Manual de Utilização

A Linguagem SQL. Tecnologia de Base de Dados. MSc. Eugénio. Macumbe

Bases de Dados. Lab 1: Introdução ao ambiente

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre

Escola Secundária de Albufeira. Comandos MySQL. (Páginas Web Dinâmicas: PHP e MySQL) Carlos Nunes

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

Consultas SQL por XML-RPC no WordPress José Antonio Meira da Rocha

Aula Extra Conexão ODBC para aplicações Delphi 7 que usam SQL Server 2005

Transcrição:

LAB 10 Programação com o framework CodeIgniter [parte 2] O objectivo deste laboratório é repetir a funcionalidade do site desenhado nos labs 5, 6, e 7 mas agora construído com o framework CodeIgniter e a template engine Smarty. Assume-se aqui que já realizou com sucesso o LAB9. 1. Construa o template register_template.tpl adaptando o template register_template.html realizado no LAB5 O template deve ser colocado na pasta public_html/lab9_10/application/views/templates O código PHP do controlador responsavel pela página de registo deverá encontrar-se na função register() dentro do ficheiro que define a classe do controlador (public_html/lab9_10/application/controllers/blog.php) public function register() $this->load->library('form_validation');... LabCodeigniter2 1/7

if ($this->form_validation->run() === FALSE) $this->smarty->view('register_template.tpl', $data); $this->blog_model->register_user(); $data['message']="success: New user registered ; $this->smarty->view('message_template.tpl'); Apresenta-se acima um esboço deste controlador. Adicione o código necessário para: O controlador é simultâneamente o controlador do template register_template e da acção register O controlador utiliza a livraria form_validation para validar os dados introduzidos O controlador utiliza a função register_user() para actualizar a base de dados O controlador carrega o template message_template em caso de sucesso no registo (sugere-se a mensagem Success: New user registered ) 2. O controlador trabalha em colaboração com a classe responsavel pelo acesso à base de dados (public_html/lab9_10/application/models/blog_model.php). Construa a função register_user() responsável pela query à base de dados public function register_user() $pass1_utilizador = $this->input->post('pass1_utilizador'); /*md5('$pass') -> encripta a password*/ $passwd = substr(md5($pass1_utilizador),0,32); /*Guarda os dados do Cliente*/ $present_date = date("y-m-d H:i:s"); $query = "... return $this->db->query($query); 3. Utilizando o template login_template.tpl pretende-se construir a página de login no site. Adapte o template login_template.html realizado no LAB6. LabCodeigniter2 2/7

O código PHP do controlador responsavel pela página de login deverá encontrar-se na função login() public function login() 4. O código PHP do controlador responsavel pela acção de login deverá encontrar-se na função login_action() public function login_action() $tupple = $this->blog_model->validate_user(); if (isset($tupple))... $data['message'] = 'Welcome back!' ; $this->smarty->view('message_template.tpl', $data); $data['message'] = 'Login failed' ; $this->smarty->view('login_template.tpl', $data); Apresenta-se acima um esboço deste controlador. Adicione o código necessário para: LabCodeigniter2 3/7

Em caso de sucesso guardar no array de sessão o id, nome e email do utilizador validado Em caso de sucesso carregar o template 'message_template' (sugere-se Welcome back! ) Em caso de insucesso carregar novamente o template 'login_template' com a mensagem Login failed 5. Utilizando o template blog_template.tpl pretende-se construir a página de criar/alterar blog no site. Adapte o template blog_template.html realizado no LAB7. O código PHP do controlador responsavel pela página de registo deverá encontrar-se na função post($blog_id) public function post($blog_id = FALSE)... if ($blog_id) $tupple = $this->blog_model->get_blog($blog_id); $data['content'] = $tupple->content; $data['blog_id'] = $blog_id; $this->load->library('form_validation');... if ($this->form_validation->run() === FALSE) $this->smarty->view('blog_template.tpl', $data); if ($blog_id == FALSE) LabCodeigniter2 4/7

$this->blog_model->new_blog(); $this->blog_model->update_blog($blog_id); redirect('/blog'); Apresenta-se acima um esboço deste controlador. Adicione o código necessário para: O controlador é simultâneamente o controlador do template blog_template e da acção post O controlador utiliza a livraria form_validation para validar o texto introduzido O controlador utiliza a função new_blog() para inserir na base de dados o novo post O controlador utiliza as funções get_blog($blog_id) e update_blog($blog_id) para actualizar a base de dados com o texto actualizado do post O controlador redirecciona para a pagina de rosto 6. Construa as funções new_blog(), get_blog($blog_id), update_blog($blog_id), responsaveis pelas queries corresponentes à base de dados 7. Construa a função que destroi a sessão quando o utilizador faz logout. O controlador carrega o template 'message_template' (sugere-se See you back soon! ), e que ao fim de 5 segundos redirecciona para a página de rosto) public function logout() $data['name'] = $_SESSION['name'] ; $this->session->sess_destroy(); $data['message'] = 'See you back soon!' ; $this->smarty->view('message_template.tpl', $data); 3. Se realizou o lab no seu computador pessoal, faça o upload dos ficheiros Blog.php Blog_model.php LabCodeigniter2 5/7

para os directorios application/controllers e application/models respectivamente na pasta LAB9_10 no seu site web pessoal, bem como dos templates para o directório application/views/templates. Teste o funcionamento do site no url * http://all.deei.fct.ualg.pt/~a12345/lab9_10/index.php/blog Considere o lab concluído quando obtiver a mesma funcionalidade que foi requerida nos LAB5, LAB6, e LAB7.(Nota: a funcionalidade Remember Me do LAB8 é opcional.) REFERÊNCIAS: http://all.deei.fct.ualg.pt/~a999990/ci_exame2/blog http://www.codeigniter.com/user_guide/tutorial/index.html https://www.tutorialspoint.com/codeigniter/ http://intranet.deei.fct.ualg.pt/daw/codeigniter.pdf http://all.deei.fct.ualg.pt/codeigniter/ * NOTA: o site http://intranet.deei.fct.ualg.pt/~a12345/lab9_10/index.php/blog NÃO corre código CodeIgniter LabCodeigniter2 6/7

ANEXO 1 : estrutura da base de dados A estrutura da base de dados pode ser consultada em http://all.deei.fct.ualg.pt/phpmyadmin CREATE TABLE `users` ( `id` int(11) NOT NULL auto_increment, `name` varchar(255) default NULL, `email` varchar(255) default NULL, `created_at` datetime NOT NULL, `updated_at` datetime NOT NULL, `password_digest` varchar(255) default NULL, `remember_digest` varchar(255) default NULL, `admin` tinyint(1) default NULL, `activation_digest` varchar(255) default NULL, `activated` tinyint(1) default NULL, `activated_at` datetime default NULL, `reset_digest` varchar(255) default NULL, `reset_sent_at` datetime default NULL, PRIMARY KEY (`id`), UNIQUE KEY `index_users_on_email` (`email`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `microposts` ( `id` int(11) NOT NULL auto_increment, `content` text, `user_id` int(11) default NULL, `created_at` datetime NOT NULL, `updated_at` datetime NOT NULL, PRIMARY KEY (`id`), CONSTRAINT FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; LabCodeigniter2 7/7