FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho
Programação para Internet
FATENE Acélio Sousa Carvalho prof.acelio@gmail.com
2010.2 Fortaleza - CE
1 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho
Curso orientado a projetos... Atividade 01 - Validação de formulários. Atividade 02 - Aplicativo para upload de imagens. Atividade 03 - Editor de arquivos remoto. Atividade 04 - Agenda telefônica. Atividade 05 - Carrinho de compras. Atividade 06 - Plotagem de gráficos. Atividade 07 - Sistema de autenticação com captcha. etc...
2 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho
Bibliografia recomendada
Faça um Site : PHP 5.2 com MySQL 5.0 Comércio Eletrônico Orientado por Projeto (Windows) Autor : Carlos A. J. Oliviero 3 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho
Bibliografia recomendada
PHP 5 Certification Study Guide Autores : Davey Shafik, Ben Ramsey 4 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho
Bibliografia recomendada
PHP - A Bíblia Autores : Tim Converse, Joyce Park 5 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho
Bibliografia recomendada
Desenvolvendo Websites com PHP Autores : Juliano Niederauer 6 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho
Sites recomendados
http ://www.php.net http ://www.phpbrasil.com
7 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho
Sumário 1 2 3
4
5 6
7 8
Introdução Conceitos da linguagem Ambiente de desenvolvimento Fundamentos da linguagem Hello World ! Sintaxe da linguagem Formulários Métodos de envio Objetos do formulário Expressões regulares Atividade 01 - Formulários e validação Atividade 02 - Upload de imagens Atividade 03 - Editor de arquivos remoto Cookies e Sessões Atividade 04 - Contador de acessos Manipulando banco de dados Noções de banco de dados relacional PhpMyAdmin Consultas com MySQL Conectando PHP com MySQL Atividade 05 - Agenda telefônica Extensões do PHP Atividade 06 - Sistema de autenticação com captcha PHP Orientado a Objetos Atividade 07 - Gerando gráficos 8 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Introdução
Sumário 1 2 3
4
5 6
7 8
Introdução Conceitos da linguagem Ambiente de desenvolvimento Fundamentos da linguagem Hello World ! Sintaxe da linguagem Formulários Métodos de envio Objetos do formulário Expressões regulares Atividade 01 - Formulários e validação Atividade 02 - Upload de imagens Atividade 03 - Editor de arquivos remoto Cookies e Sessões Atividade 04 - Contador de acessos Manipulando banco de dados Noções de banco de dados relacional PhpMyAdmin Consultas com MySQL Conectando PHP com MySQL Atividade 05 - Agenda telefônica Extensões do PHP Atividade 06 - Sistema de autenticação com captcha PHP Orientado a Objetos Atividade 07 - Gerando gráficos 9 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Introdução Conceitos da linguagem
Sumário 1 2 3
4
5 6
7 8
Introdução Conceitos da linguagem Ambiente de desenvolvimento Fundamentos da linguagem Hello World ! Sintaxe da linguagem Formulários Métodos de envio Objetos do formulário Expressões regulares Atividade 01 - Formulários e validação Atividade 02 - Upload de imagens Atividade 03 - Editor de arquivos remoto Cookies e Sessões Atividade 04 - Contador de acessos Manipulando banco de dados Noções de banco de dados relacional PhpMyAdmin Consultas com MySQL Conectando PHP com MySQL Atividade 05 - Agenda telefônica Extensões do PHP Atividade 06 - Sistema de autenticação com captcha PHP Orientado a Objetos Atividade 07 - Gerando gráficos 10 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Introdução Conceitos da linguagem
História e conceitos PHP é um acrônimo recursivo : PHP : Hypertext Preprocessor O php permite a criação de sistemas baseados em Web com conteúdo dinâmico. A linguagem foi criada por Rasmus Lerdorf em 1994. PHP é gratuito e opensource. PHP é uma linguagem interpretada. É portável. Sua sintaxe é semelhante ao C. Suporta Orientação a Objetos. É uma linguagem denominada server-side.
11 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Introdução Conceitos da linguagem
Requisição sem código PHP :
12 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Introdução Conceitos da linguagem
Requisição sem código PHP :
O usuário faz uma requisição de um site que só possui conteúdo html ; O servidor responde enviando o documento HTML ; Por sua vez, o navegador, que só entende html, lê o documento e descobre quais são os outros objetos contidos naquela página (fotos, sons etc) ; O cliente solicita mais uma vez esses objetos ao servidor ; Por fim, o navegador apresenta o conteúdo da forma adequada para o usuário. 13 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Introdução Conceitos da linguagem
Requisição com código PHP :
14 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Introdução Conceitos da linguagem
Requisição com código PHP :
O usuário faz uma requisição de um site que possui conteúdo php. O servidor identifica o código php, interpreta e gera como saída código html. O servidor envia o resultado do processamento para o cliente (documento HTML). O navegador do cliente recebe o documento como se fosse uma página html simples, dando sequência às suas atividades. 15 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Introdução Conceitos da linguagem
Server-side : Tecnologias que exigem processamento no lado do servidor são chamadas server-side. O processamento é transparente ao usuário (cliente). Outros exemplos de tecnologias server-side além do PHP são : ASP e JSP. O usuário não precisa de nenhum software adicional para tratar página com conteúdo php.
16 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Introdução Conceitos da linguagem
Client-side : Na arquitetura client-side, a maior parte do processamento é concentrada no lado do cliente. Exemplos de tecnologias client-side : HTML, JavaScript, Ajax, Java Applet, Flash etc. As duas tecnologias client-side e server-side são complementares entre si.
17 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Ambiente de desenvolvimento
Sumário 1 2 3
4
5 6
7 8
Introdução Conceitos da linguagem Ambiente de desenvolvimento Fundamentos da linguagem Hello World ! Sintaxe da linguagem Formulários Métodos de envio Objetos do formulário Expressões regulares Atividade 01 - Formulários e validação Atividade 02 - Upload de imagens Atividade 03 - Editor de arquivos remoto Cookies e Sessões Atividade 04 - Contador de acessos Manipulando banco de dados Noções de banco de dados relacional PhpMyAdmin Consultas com MySQL Conectando PHP com MySQL Atividade 05 - Agenda telefônica Extensões do PHP Atividade 06 - Sistema de autenticação com captcha PHP Orientado a Objetos Atividade 07 - Gerando gráficos 18 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Ambiente de desenvolvimento
Ambiente de desenvolvimento
Apache : O mais popular servidor web gratuito. PHP : Módulos que permitem ao Apache entender códigos php. MySQL : o mais popular SGBD utilizado em combinação com o php. PhpMyAdmin : aplicativo web para gerenciamento de banco de dados MySQL.
19 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Ambiente de desenvolvimento
Ambiente de desenvolvimento
No Windows, alguns pacotes de instalação já vêm com essas 4 ferramentas. Ex : EasyPHP No Windows, o editor de código php mais utilizado ainda é o DreamWeaver. No Linux, essas ferramentas são instaladas separadamente.
20 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Fundamentos da linguagem
Sumário 1 2 3
4
5 6
7 8
Introdução Conceitos da linguagem Ambiente de desenvolvimento Fundamentos da linguagem Hello World ! Sintaxe da linguagem Formulários Métodos de envio Objetos do formulário Expressões regulares Atividade 01 - Formulários e validação Atividade 02 - Upload de imagens Atividade 03 - Editor de arquivos remoto Cookies e Sessões Atividade 04 - Contador de acessos Manipulando banco de dados Noções de banco de dados relacional PhpMyAdmin Consultas com MySQL Conectando PHP com MySQL Atividade 05 - Agenda telefônica Extensões do PHP Atividade 06 - Sistema de autenticação com captcha PHP Orientado a Objetos Atividade 07 - Gerando gráficos 21 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Fundamentos da linguagem Hello World !
Sumário 1 2 3
4
5 6
7 8
Introdução Conceitos da linguagem Ambiente de desenvolvimento Fundamentos da linguagem Hello World ! Sintaxe da linguagem Formulários Métodos de envio Objetos do formulário Expressões regulares Atividade 01 - Formulários e validação Atividade 02 - Upload de imagens Atividade 03 - Editor de arquivos remoto Cookies e Sessões Atividade 04 - Contador de acessos Manipulando banco de dados Noções de banco de dados relacional PhpMyAdmin Consultas com MySQL Conectando PHP com MySQL Atividade 05 - Agenda telefônica Extensões do PHP Atividade 06 - Sistema de autenticação com captcha PHP Orientado a Objetos Atividade 07 - Gerando gráficos 22 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Fundamentos da linguagem Hello World !
Fundamentos da linguagem
Um documento PHP é composto por tags HTML misturadas com blocos de comandos PHP. Tudo aquilo que estiver escrito entre as supertags "< ?php" e " ?>" será considerado instrução php. Ao final de cada instrução usa-se " ;" Comentário de linha : // Comentário de bloco : /* */ 23 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Fundamentos da linguagem Hello World !
Hello World
"echo" é a instrução mais básica do php e serve para imprimir uma string na página html. A string deve estar entre aspas e aceita qualquer caractere alfanumérico. Podem ser colocadas tags HTML dentro da instrução "echo". 24 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Fundamentos da linguagem Hello World !
Hello World
Após carregada a página, se visualizarmos seu código fonte, obteremos um código html puro.
25 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Fundamentos da linguagem Sintaxe da linguagem
Sumário 1 2 3
4
5 6
7 8
Introdução Conceitos da linguagem Ambiente de desenvolvimento Fundamentos da linguagem Hello World ! Sintaxe da linguagem Formulários Métodos de envio Objetos do formulário Expressões regulares Atividade 01 - Formulários e validação Atividade 02 - Upload de imagens Atividade 03 - Editor de arquivos remoto Cookies e Sessões Atividade 04 - Contador de acessos Manipulando banco de dados Noções de banco de dados relacional PhpMyAdmin Consultas com MySQL Conectando PHP com MySQL Atividade 05 - Agenda telefônica Extensões do PHP Atividade 06 - Sistema de autenticação com captcha PHP Orientado a Objetos Atividade 07 - Gerando gráficos 26 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Fundamentos da linguagem Sintaxe da linguagem
Tipos Primitivos Tipos básicos boolean integer (int) float ou double string
Tipos compostos array object
27 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Fundamentos da linguagem Sintaxe da linguagem
Variáveis Não é necessário declarar previamente as variáveis. Começam pelo símbolo de $. O segundo caractere deve ser uma letra ou um "_". Os demais caracteres podem ser letras, números ou "_". PHP é case sensitive.
28 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Fundamentos da linguagem Sintaxe da linguagem
Atribuição de variáveis Não é uma linguagem fortemente tipada. Para atribuir valores usa-se o sinal ’=’ $nome = "Curso de PHP" ; $altura = 1.73 ; $string = "É possível usar \" dentro da string" ;
Para atribuir caracteres especiais, usa-se \ como caractere de escape.
29 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Fundamentos da linguagem Sintaxe da linguagem
Atribuição de vetores Os índices dos vetores podem ser inteiros ou strings. A atribuição de vetores também pode ser feita através da função array().
30 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Fundamentos da linguagem Sintaxe da linguagem
Variáveis de variáveis
PHP permite uso de variáveis de variáveis. O que vai ser imprimido na tela ?
31 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Fundamentos da linguagem Sintaxe da linguagem
Variáveis de variáveis
RESULTADO : Hello World
32 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Fundamentos da linguagem Sintaxe da linguagem
Coerção Coerção é a conversão implícita. Qual o valor da variável $c ?
33 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Fundamentos da linguagem Sintaxe da linguagem
Coerção
RESULTADO : 102 Como "+" é um operador de soma, serão considerados apenas os algarismos das variáveis $a e $b. Se fosse utilizado o operador de concatenação ".", qual seria o resultado ?
34 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Fundamentos da linguagem Sintaxe da linguagem
Conversões explícitas
A conversão explícita é indicada usando-se parênteses imediamente antes da expressão que sofrerá conversão. O que vai ser imprimido na tela ? 35 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Fundamentos da linguagem Sintaxe da linguagem
Conversões explícitas
RESULTADO : 7.3 ** 7 ** 14.2
36 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Fundamentos da linguagem Sintaxe da linguagem
Constantes As constantes em PHP não começam por $. Para gerar uma constante é necessário usar a instrução define("<nome>",<valor>). Ex : define("pi",3.14159265) ; Ex : echo "O valor de pi é".pi ;
37 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Fundamentos da linguagem Sintaxe da linguagem
Operadores Operadores aritméticos : + Adição - Subtração * Multiplicação / Divisão % Resto da divisão
Operador de concatenação de strings : .
38 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Fundamentos da linguagem Sintaxe da linguagem
Operadores de incremento/decremento Pós-incremento : $a++ ; Pós-decremento : $a– ; Pré-incremento : ++$a ; Pré-decremento : –$a ;
Quais os valores de $c e $d ? 39 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Fundamentos da linguagem Sintaxe da linguagem
Operadores de incremento/decremento
RESULTADO : $c = 5 ; RESULTADO : $d = 7 ;
40 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Fundamentos da linguagem Sintaxe da linguagem
Operadores binários
Quais os valores das variáveis $c, $d, $e, $f, $g e $h ? 41 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Fundamentos da linguagem Sintaxe da linguagem
Operadores binários
RESULTADO : $c = -15 ; $d = 12 ; $e = 14 ; $f = 2 ; $g = 3 ; $h = 56 ;
42 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Fundamentos da linguagem Sintaxe da linguagem
Operadores de atribuição
Operadores relacionais
43 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Fundamentos da linguagem Sintaxe da linguagem
Operadores relacionais
O que vai ser imprimido na tela ? 44 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Fundamentos da linguagem Sintaxe da linguagem
Operadores lógicos : Negação : ! E : &&, AND Ou : ||, OR Ou exclusivo : XOR
Operador ternário : $a = (<condição>) ? (<verdadeiro>) :<false> Ex : $a = ($x>5) ? ($a+1) : ($a-1) ;
45 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Fundamentos da linguagem Sintaxe da linguagem
Ordem de precedência dos operadores
O uso combinado de parênteses gera precedência. 46 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Fundamentos da linguagem Sintaxe da linguagem
Estruturas de controle Estruturas condicionais if switch
Estruturas iterativas while do..while for foreach
Estruturas de controle de fluxo continue break exit
47 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Fundamentos da linguagem Sintaxe da linguagem
Estrutura condicional - If
48 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Fundamentos da linguagem Sintaxe da linguagem
Estrutura condicional - Switch
49 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Fundamentos da linguagem Sintaxe da linguagem
Estruturas iterativas - While / do..While / for While
Do .. while
For
50 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Fundamentos da linguagem Sintaxe da linguagem
Funções
As funções não têm tipo de retorno. Os tipos dos parâmetros também não são declarados. Os parâmetros podem ter valores default. A passagem de parâmetros também pode ser por referência.
51 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Fundamentos da linguagem Sintaxe da linguagem
Funções
52 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Fundamentos da linguagem Sintaxe da linguagem
Escopo de variáveis
Variáveis definidas dentro de funções possuem escopo local. Variáveis definidas fora das funções não são visualizadas dentro delas. O que vai ser imprimido na tela ? 53 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Fundamentos da linguagem Sintaxe da linguagem
Escopo de variáveis
A palavra reservada "global" torna uma variável com escopo global. O que vai ser imprimido na tela ? 54 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Fundamentos da linguagem Sintaxe da linguagem
Escopo de variáveis - Resultados A : Dentro = 5, Fora = 100 B : Dentro = 105, Fora = 100 C : Dentro = 105, Fora = 105
55 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Fundamentos da linguagem Sintaxe da linguagem
Inclusão de arquivos A instrução include() inclui um arquivo, e na falta dele, gera um warning, não interrompendo a execução do script. A instrução require() também inclui um arquivo, mas na falta dele, interrompe a execução gerando Fatal Error. Uma variável disponível a partir de um arquivo incluído, estará disponível a partir do ponto em que a instrução foi chamada.
56 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Formulários
Sumário 1 2 3
4
5 6
7 8
Introdução Conceitos da linguagem Ambiente de desenvolvimento Fundamentos da linguagem Hello World ! Sintaxe da linguagem Formulários Métodos de envio Objetos do formulário Expressões regulares Atividade 01 - Formulários e validação Atividade 02 - Upload de imagens Atividade 03 - Editor de arquivos remoto Cookies e Sessões Atividade 04 - Contador de acessos Manipulando banco de dados Noções de banco de dados relacional PhpMyAdmin Consultas com MySQL Conectando PHP com MySQL Atividade 05 - Agenda telefônica Extensões do PHP Atividade 06 - Sistema de autenticação com captcha PHP Orientado a Objetos Atividade 07 - Gerando gráficos 57 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Formulários Métodos de envio
Sumário 1 2 3
4
5 6
7 8
Introdução Conceitos da linguagem Ambiente de desenvolvimento Fundamentos da linguagem Hello World ! Sintaxe da linguagem Formulários Métodos de envio Objetos do formulário Expressões regulares Atividade 01 - Formulários e validação Atividade 02 - Upload de imagens Atividade 03 - Editor de arquivos remoto Cookies e Sessões Atividade 04 - Contador de acessos Manipulando banco de dados Noções de banco de dados relacional PhpMyAdmin Consultas com MySQL Conectando PHP com MySQL Atividade 05 - Agenda telefônica Extensões do PHP Atividade 06 - Sistema de autenticação com captcha PHP Orientado a Objetos Atividade 07 - Gerando gráficos 58 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Formulários Métodos de envio
Métodos de envio Get Envia dados na própria URL Mais rápido Menos seguro
Post Envia dados em pacotes protegidos Mais lento Mais seguro
59 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Formulários Métodos de envio
Construindo formulários O formulário é construído dentro das tags <form></form> O parâmetro METHOD indica o método de envio. O parâmetro ACTION indica para onde os dados serão enviados. Cada tag INPUT cria um objeto de formulário do tipo TYPE com seu valor armazenado na variável definida em NAME.
60 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Formulários Objetos do formulário
Sumário 1 2 3
4
5 6
7 8
Introdução Conceitos da linguagem Ambiente de desenvolvimento Fundamentos da linguagem Hello World ! Sintaxe da linguagem Formulários Métodos de envio Objetos do formulário Expressões regulares Atividade 01 - Formulários e validação Atividade 02 - Upload de imagens Atividade 03 - Editor de arquivos remoto Cookies e Sessões Atividade 04 - Contador de acessos Manipulando banco de dados Noções de banco de dados relacional PhpMyAdmin Consultas com MySQL Conectando PHP com MySQL Atividade 05 - Agenda telefônica Extensões do PHP Atividade 06 - Sistema de autenticação com captcha PHP Orientado a Objetos Atividade 07 - Gerando gráficos 61 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Formulários Objetos do formulário
Caixas de texto TYPE : text Alguns parâmetros comuns size maxlength value title readonly
62 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Formulários Objetos do formulário
Caixas de senha TYPE : password Aceitam os mesmos parâmetros que as caixas de texto.
63 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Formulários Objetos do formulário
Botões de rádio TYPE : radio Um grupo de botões rádio com mesmo nome permite que apenas um deles seja selecionado.
64 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Formulários Objetos do formulário
Caixas de seleção Permite marcar ou desmarcar uma opção. TYPE : checkbox
65 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Formulários Objetos do formulário
Campos escondidos Permitem enviar valores de variáveis de uma página para outra sem o conhecimento do usuário. TYPE : hidden
66 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Formulários Objetos do formulário
Menu suspenso Permite escolher uma dentre várias opções. Utiliza as tags <SELECT></SELECT> O parâmetro SIZE transforma o menu em uma lista de n linhas.
67 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Formulários Objetos do formulário
Áreas de texto Campo de texto com várias linhas. Utiliza as tags <TEXTAREA></TEXTAREA> ROWS e COLS definem a quantidade de linhas e colunas da caixa.
68 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Formulários Objetos do formulário
Botões de Envio e Reinicialização Botão para envio dos dados para a página destino : TYPE = submit
Botão para "resetar" formulário : TYPE = reset
69 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Formulários Objetos do formulário
Recuperação de dados do formulário Se método GET : $valor = $_GET["<nome_do_campo>"] ;
Se método POST : $valor = $_POST["<nome_do_campo>"] ;
Essas instruções são aplicadas na página de destino do formulário.
70 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Formulários Expressões regulares
Sumário 1 2 3
4
5 6
7 8
Introdução Conceitos da linguagem Ambiente de desenvolvimento Fundamentos da linguagem Hello World ! Sintaxe da linguagem Formulários Métodos de envio Objetos do formulário Expressões regulares Atividade 01 - Formulários e validação Atividade 02 - Upload de imagens Atividade 03 - Editor de arquivos remoto Cookies e Sessões Atividade 04 - Contador de acessos Manipulando banco de dados Noções de banco de dados relacional PhpMyAdmin Consultas com MySQL Conectando PHP com MySQL Atividade 05 - Agenda telefônica Extensões do PHP Atividade 06 - Sistema de autenticação com captcha PHP Orientado a Objetos Atividade 07 - Gerando gráficos 71 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Formulários Expressões regulares
Validação de formulário - Expressões Regulares Na validação de dados dos formulários normalmente utiliza-se Expressões Regulares. ER são strings que contêm um padrão para reconhecimento de outras strings. Ex : ˆ\d{2}-[a..z]+ 25-casa, 00-x, 10-abcdefg
72 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Formulários Expressões regulares
Expressões Regulares
Exemplos : ˆGre - Grego ; igreja !$ - Bem vindo ! ; 2 !=3 V[io]la - Vila ; Viola k[a-z]\d - km16 ; k3a 73 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Formulários Expressões regulares
Expressões Regulares
\d+[a-z]* - 98765 ; caneta ˆbar ?a - barato ; barra \d{3}.\D{1,3}$ - 123Xab ; 321Xabcd
74 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Formulários Atividade 01 - Formulários e validação
Sumário 1 2 3
4
5 6
7 8
Introdução Conceitos da linguagem Ambiente de desenvolvimento Fundamentos da linguagem Hello World ! Sintaxe da linguagem Formulários Métodos de envio Objetos do formulário Expressões regulares Atividade 01 - Formulários e validação Atividade 02 - Upload de imagens Atividade 03 - Editor de arquivos remoto Cookies e Sessões Atividade 04 - Contador de acessos Manipulando banco de dados Noções de banco de dados relacional PhpMyAdmin Consultas com MySQL Conectando PHP com MySQL Atividade 05 - Agenda telefônica Extensões do PHP Atividade 06 - Sistema de autenticação com captcha PHP Orientado a Objetos Atividade 07 - Gerando gráficos 75 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Formulários Atividade 01 - Formulários e validação
Atividade - Formulários e validação Objetivos : Aprender a construir, manipular e validar formulários. Aprender a utilizar expressões regulares. Utilizar funções de tratamento de datas e outras funções.
76 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Formulários Atividade 01 - Formulários e validação
Atividade - Formulários e validação Construir o formulário da figura abaixo. Ao ser enviado, deve ser feita a validação dos campos Nome, E-mail, Data de nascimento e Documento. Calcular quantos dias faltam para o próximo aniversário da pessoa cadastrada. As informações devem aparacer listadas em uma nova página.
77 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Formulários Atividade 01 - Formulários e validação
Dicas Construir página html simples contendo apenas o formulário. Recuperar variáveis usando $_POST[""]. Validar campos usando as funções strlen(), preg_match() e checkdate(). Criar função que calcula a quantidade de dias para o próximo aniversário e utilizar as funções time(), mktime(), date() e round().
78 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Formulários Atividade 01 - Formulários e validação
Dicas bool isset(mixed $var) Informa se a variável foi iniciada.
int strlen(string $string) Retorna o tamanho de uma string.
int preg_match(string $padrao, string $string) Retorna o no de vezes que o padrão "casou" com a string.
float round(float $val [,int $precision]) Retorna um valor arredondado de $val em $precision casas decimais. O valor padrão de $precision é zero.
bool checkdate(int $mês, int $dia, int $ano) Valida uma data Gregoriana.
79 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Formulários Atividade 01 - Formulários e validação
Dicas int time(void) Retorna o timestamp Unix atual.
int mktime(int $hora, int $minuto, int $second, int $mes, int $dia, int $ano) Obtém um timestamp Unix para uma data.
string date(string $formato[,int $timestamp]) Retorna uma data formatada de acordo com $formato. d - Dia do mês com 2 dígitos. m - Mês com 2 dígitos. Y - Ano com 4 dígitos G - Hora de 0 a 24. i - Minutos com 2 dígitos. s - Segundos com 2 dígitos. etc... 80 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Formulários Atividade 02 - Upload de imagens
Sumário 1 2 3
4
5 6
7 8
Introdução Conceitos da linguagem Ambiente de desenvolvimento Fundamentos da linguagem Hello World ! Sintaxe da linguagem Formulários Métodos de envio Objetos do formulário Expressões regulares Atividade 01 - Formulários e validação Atividade 02 - Upload de imagens Atividade 03 - Editor de arquivos remoto Cookies e Sessões Atividade 04 - Contador de acessos Manipulando banco de dados Noções de banco de dados relacional PhpMyAdmin Consultas com MySQL Conectando PHP com MySQL Atividade 05 - Agenda telefônica Extensões do PHP Atividade 06 - Sistema de autenticação com captcha PHP Orientado a Objetos Atividade 07 - Gerando gráficos 81 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Formulários Atividade 02 - Upload de imagens
Atividade 02 - Upload de imagens Objetivos : Aprender a fazer upload de arquivos. Aprender a manipular diretórios e arquivos dentro do servidor. Utilizar outras funções.
82 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Formulários Atividade 02 - Upload de imagens
Atividade 02 - Upload de imagens Construir um aplicativo que faz upload de imagens para o diretório "imagens" no servidor. A imagem poderá ter no máximo 500KB e só poderá ser do tipo jpg. Renomear imagem concatenando data e hora no final de seu nome, mas antes de sua extensão. O aplicativo deve informar as dimensões da imagem enviada. A página de destino do botão enviar deve ser a mesma do formulário.
83 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Formulários Atividade 02 - Upload de imagens
Dicas
Para recuperar arquivo na página destino : $arquivo = $_FILES["<nome_do_campo>"] ;
Ao chegar na página destino, a variável que referencia o arquivo será um vetor com os seguintes índices : $arquivo[’name’] - Nome do arquivo. $arquivo[’size’] - Tamanho do arquivo. $arquivo[’tmp_name’] - Diretório temporário do arquivo. etc...
84 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Formulários Atividade 02 - Upload de imagens
Dicas Recuperar variável que referencia a imagem usando $_FILES[""]. Obter dimensões e tipo da imagem usando a função getimagesize(). Mover imagem para o diretório de destino usando a função move_uploaded_file(). Para exibir imagem na tela, usar a tag html : <img src="IMAGEM" height="ALTURA" width="LARGURA" />
85 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Formulários Atividade 02 - Upload de imagens
Dicas void list(mixed $varname[, mixed $...]) Cria uma lista de variáveis em apenas uma operação.
array getimagesize(string $caminhoImagem) Retorna um vetor com 4 elementos. O índice 0 contém a largura da imagem em pixels. O índice 1 contém a altura. O índice 2 é uma indicação do tipo de imagem : 1 = GIF, 2 = JPG, 3 = PNG... O índice 3 é uma string com o height="yyy" width="xxx" correto que pode ser usado diretamente numa tag IMG
string substr(string $string, int $start[,int $length]) Retorna uma parte de uma string.
int strpos(string $stringCompleta, string $stringDesejada) Retorna a posição da primeira ocorrência de uma string.
86 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Formulários Atividade 02 - Upload de imagens
Dicas string strtolower(string $str) Converte uma string para minúsculas.
bool file_exists(string $nomedoarquivo) Checa se um arquivo ou diretório existe.
bool mkdir(string $pathname) Cria um diretório.
bool move_uploaded_file(string $filename, string $destination) Move um arquivo enviado para um diretório destino.
87 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Formulários Atividade 03 - Editor de arquivos remoto
Sumário 1 2 3
4
5 6
7 8
Introdução Conceitos da linguagem Ambiente de desenvolvimento Fundamentos da linguagem Hello World ! Sintaxe da linguagem Formulários Métodos de envio Objetos do formulário Expressões regulares Atividade 01 - Formulários e validação Atividade 02 - Upload de imagens Atividade 03 - Editor de arquivos remoto Cookies e Sessões Atividade 04 - Contador de acessos Manipulando banco de dados Noções de banco de dados relacional PhpMyAdmin Consultas com MySQL Conectando PHP com MySQL Atividade 05 - Agenda telefônica Extensões do PHP Atividade 06 - Sistema de autenticação com captcha PHP Orientado a Objetos Atividade 07 - Gerando gráficos 88 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Formulários Atividade 03 - Editor de arquivos remoto
Atividade 03 - Editor de arquivos remoto Objetivos : Aprender a ler e escrever em arquivos de texto dentro do servidor. Utilizar outras funções.
89 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Formulários Atividade 03 - Editor de arquivos remoto
Atividade 03 - Editor de arquivos remoto Construir um editor de arquivos de texto localizados dentro do servidor. Se o arquivo buscado não existir, deverá ser criado um novo arquivo. Verificar se o nome do arquivo criado possui caracteres inválidos. O tamanho do arquivo não poderá ser maior que 100KB. Os arquivos editáveis devem estar dentro de um diretório específico.
90 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Formulários Atividade 03 - Editor de arquivos remoto
Dicas Recuperar e validar o nome do arquivo desejado. Verificar o tamanho do arquivo usando função filesize(). Criar novo arquivo caso ele ainda não exista. Ler conteúdo do arquivo antigo mostrando-o na caixa de texto. Salvar alterações do arquivo.
91 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Formulários Atividade 03 - Editor de arquivos remoto
Dicas bool file_exists(string $nomedoarquivo) Checa se um arquivo ou diretório existe.
resource fopen(string $filename, string $mode) Abrir um arquivo para leitura e/ou escrita. r - somente leitura. w - somente escrita. a+ - leitura e escrita. etc...
92 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Formulários Atividade 03 - Editor de arquivos remoto
Dicas int fputs(resource $handle, string $string) Escreve o conteúdo de uma string para um arquivo.
bool fclose(int $handle) Fecha um arquivo aberto.
int filesize(string $nomedoarquivo) Lê o tamanho do arquivo.
array file(string $filename) Retorna o arquivo em um array. Cada elemento do array corresponde a uma linha no arquivo.
93 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Formulários Atividade 03 - Editor de arquivos remoto
Fim da 1a parte !
94 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Cookies e Sessões
Sumário 1 2 3
4
5 6
7 8
Introdução Conceitos da linguagem Ambiente de desenvolvimento Fundamentos da linguagem Hello World ! Sintaxe da linguagem Formulários Métodos de envio Objetos do formulário Expressões regulares Atividade 01 - Formulários e validação Atividade 02 - Upload de imagens Atividade 03 - Editor de arquivos remoto Cookies e Sessões Atividade 04 - Contador de acessos Manipulando banco de dados Noções de banco de dados relacional PhpMyAdmin Consultas com MySQL Conectando PHP com MySQL Atividade 05 - Agenda telefônica Extensões do PHP Atividade 06 - Sistema de autenticação com captcha PHP Orientado a Objetos Atividade 07 - Gerando gráficos 95 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Cookies e Sessões
Cookies e Sessão Cookies e sessões permitem armazenar o estado das variáveis mesmo que o usuário navegue por diferentes páginas. Cookies Os cookies são arquivos armazenados na máquina do usuário pelo servidor web. Normalmente visam guardar informações sobre o cliente. As informações são guardadas mesmo que o browser seja fechado.
Sessões As sessões são gerenciadas dentro do servidor. As sessões utilizam cookies para identificar o usuário. Normalmente são usadas para guardar informações pertinentes a execução do programa. Na sessão, as informações são perdidas sempre que o navegador é fechado. 96 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Cookies e Sessões
Manipulando cookies São criados ou excluídos através da função setcookie(<nome_do_cookie>, <valor>, <tempo de expiração>) Quando o tempo é inferior ao tempo atual time(), ele é removido. Cada cookie só pode ser manipulado pelo mesmo servidor web que o criou. Os cookies podem ser acessados pelo vetor global $_COOKIE[’<nome>’]
97 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Cookies e Sessões
Manipulando sessões Toda sessão deve ser inicializada com session_start() Os valores podem ser acessados pelo vetor global $_SESSION[’<nome>’] As sessões podem ser destruídas por session_destroy()
98 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Cookies e Sessões Atividade 04 - Contador de acessos
Sumário 1 2 3
4
5 6
7 8
Introdução Conceitos da linguagem Ambiente de desenvolvimento Fundamentos da linguagem Hello World ! Sintaxe da linguagem Formulários Métodos de envio Objetos do formulário Expressões regulares Atividade 01 - Formulários e validação Atividade 02 - Upload de imagens Atividade 03 - Editor de arquivos remoto Cookies e Sessões Atividade 04 - Contador de acessos Manipulando banco de dados Noções de banco de dados relacional PhpMyAdmin Consultas com MySQL Conectando PHP com MySQL Atividade 05 - Agenda telefônica Extensões do PHP Atividade 06 - Sistema de autenticação com captcha PHP Orientado a Objetos Atividade 07 - Gerando gráficos 99 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Cookies e Sessões Atividade 04 - Contador de acessos
Atividade 04 - Contador de acessos Objetivos : Aprender a manipular cookies.
100 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Cookies e Sessões Atividade 04 - Contador de acessos
Atividade 04 - Contador de acessos Implementar um contador de acessos que guarde as informações mesmo que o usuário desconecte do site ou feche o navegador.
101 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Cookies e Sessões Atividade 04 - Contador de acessos
Dicas Criar 2 cookies (um para a contagem de acessos e outro para guardar o nome do usuário) com a função setcookie(). Recuperar os cookies usando as variáveis $_COOKIE[”].
102 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Manipulando banco de dados
Sumário 1 2 3
4
5 6
7 8
Introdução Conceitos da linguagem Ambiente de desenvolvimento Fundamentos da linguagem Hello World ! Sintaxe da linguagem Formulários Métodos de envio Objetos do formulário Expressões regulares Atividade 01 - Formulários e validação Atividade 02 - Upload de imagens Atividade 03 - Editor de arquivos remoto Cookies e Sessões Atividade 04 - Contador de acessos Manipulando banco de dados Noções de banco de dados relacional PhpMyAdmin Consultas com MySQL Conectando PHP com MySQL Atividade 05 - Agenda telefônica Extensões do PHP Atividade 06 - Sistema de autenticação com captcha PHP Orientado a Objetos Atividade 07 - Gerando gráficos 103 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Manipulando banco de dados Noções de banco de dados relacional
Sumário 1 2 3
4
5 6
7 8
Introdução Conceitos da linguagem Ambiente de desenvolvimento Fundamentos da linguagem Hello World ! Sintaxe da linguagem Formulários Métodos de envio Objetos do formulário Expressões regulares Atividade 01 - Formulários e validação Atividade 02 - Upload de imagens Atividade 03 - Editor de arquivos remoto Cookies e Sessões Atividade 04 - Contador de acessos Manipulando banco de dados Noções de banco de dados relacional PhpMyAdmin Consultas com MySQL Conectando PHP com MySQL Atividade 05 - Agenda telefônica Extensões do PHP Atividade 06 - Sistema de autenticação com captcha PHP Orientado a Objetos Atividade 07 - Gerando gráficos 104 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Manipulando banco de dados Noções de banco de dados relacional
Noções de banco de dados relacional Um banco de dados relacional é formado por tabelas. Cada coluna da tabela armazena um tipo de dado e representa um campo do banco de dados. Cada linha armazena os dados de um registro. Chave primária : É um campo que identifica unicamente cada registro. Toda tabela deve conter uma chave primária. Uma chave primária pode ser formada combinando-se mais de um campo da tabela.
105 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Manipulando banco de dados Noções de banco de dados relacional
Noções de banco de dados relacional Chave estrangeira : É um campo que é chave primária em uma outra tabela. A chave estrangeira indica um relacionamento entre as tabelas. Ex : Qual o cliente que fez o pedido de no 3 ? Ex : Onde esse cliente mora ?
Relacionamentos : 1 :1 - Ex : Tabela Clientes x Tabela Endereços 1 :N - Ex : Tabela Clientes x Tabela Pedidos M :N - Ex : Tabela Pedidos x Tabela Materiais
106 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Manipulando banco de dados PhpMyAdmin
Sumário 1 2 3
4
5 6
7 8
Introdução Conceitos da linguagem Ambiente de desenvolvimento Fundamentos da linguagem Hello World ! Sintaxe da linguagem Formulários Métodos de envio Objetos do formulário Expressões regulares Atividade 01 - Formulários e validação Atividade 02 - Upload de imagens Atividade 03 - Editor de arquivos remoto Cookies e Sessões Atividade 04 - Contador de acessos Manipulando banco de dados Noções de banco de dados relacional PhpMyAdmin Consultas com MySQL Conectando PHP com MySQL Atividade 05 - Agenda telefônica Extensões do PHP Atividade 06 - Sistema de autenticação com captcha PHP Orientado a Objetos Atividade 07 - Gerando gráficos 107 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Manipulando banco de dados PhpMyAdmin
PhpMyAdmin
108 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Manipulando banco de dados Consultas com MySQL
Sumário 1 2 3
4
5 6
7 8
Introdução Conceitos da linguagem Ambiente de desenvolvimento Fundamentos da linguagem Hello World ! Sintaxe da linguagem Formulários Métodos de envio Objetos do formulário Expressões regulares Atividade 01 - Formulários e validação Atividade 02 - Upload de imagens Atividade 03 - Editor de arquivos remoto Cookies e Sessões Atividade 04 - Contador de acessos Manipulando banco de dados Noções de banco de dados relacional PhpMyAdmin Consultas com MySQL Conectando PHP com MySQL Atividade 05 - Agenda telefônica Extensões do PHP Atividade 06 - Sistema de autenticação com captcha PHP Orientado a Objetos Atividade 07 - Gerando gráficos 109 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Manipulando banco de dados Consultas com MySQL
Consultas com MySQL A pesquisa no banco de dados é feita com a instrução SELECT. Sintaxe básica :
Ex :
110 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Manipulando banco de dados Consultas com MySQL
Cláusula WHERE
111 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Manipulando banco de dados Consultas com MySQL
Para satisfazer simultaneamente mais de uma condição, usa-se o operador AND. Para satisfazer alguma das condições listadas, usa-se o operador OR. Para selecionar todos os campos, usa-se *. Para ordenar os registros em ordem crescente / decrescente usa-se respectivamente ASC / DESC. Para limitar o número de linhas usa-se a cláusula LIMIT. 112 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Manipulando banco de dados Consultas com MySQL
Junção de tabelas
Exibir relatório com os nomes dos clientes e as respectivas datas de seus pedidos :
113 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Manipulando banco de dados Consultas com MySQL
Funções de consulta : Resultado : 181.25
Cláusula GROUP BY :
Cláusula HAVING :
114 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Manipulando banco de dados Consultas com MySQL
Outras funções de consulta : MIN(coluna) Retorna o valor mínimo da coluna
MAX(coluna) Retorna o valor máximo da coluna
COUNT(item) Se item for uma coluna, será retornado o número de valores não NULL nesta coluna. Se a palavra-chave DISTINCT for colocada na frente do nome da coluna, será retornado o número de valores distintos nesta coluna. Se for passado COUNT(*), será retornado o número total de registros independente de quantos tenham valor NULL.
115 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Manipulando banco de dados Consultas com MySQL
Outras funções de consulta : AVG(coluna) Retorna a média dos valores da coluna.
SDT(coluna) ou SDTDEV(coluna) Retorna o desvio padrão dos valores da coluna
SUM(coluna) Retorna a soma dos valores da coluna
116 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Manipulando banco de dados Consultas com MySQL
Atualizando registros : A atualização de registros é feita com a instrução UPDATE. Sintaxe básica :
Ex :
117 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Manipulando banco de dados Consultas com MySQL
Inserindo registros : A inserção de registros é feita com a instrução INSERT. Sintaxe básica :
Ex :
118 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Manipulando banco de dados Consultas com MySQL
Removendo registros : A remoção de registros é feita com a instrução DELETE. Sintaxe básica :
Ex :
119 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Manipulando banco de dados Conectando PHP com MySQL
Sumário 1 2 3
4
5 6
7 8
Introdução Conceitos da linguagem Ambiente de desenvolvimento Fundamentos da linguagem Hello World ! Sintaxe da linguagem Formulários Métodos de envio Objetos do formulário Expressões regulares Atividade 01 - Formulários e validação Atividade 02 - Upload de imagens Atividade 03 - Editor de arquivos remoto Cookies e Sessões Atividade 04 - Contador de acessos Manipulando banco de dados Noções de banco de dados relacional PhpMyAdmin Consultas com MySQL Conectando PHP com MySQL Atividade 05 - Agenda telefônica Extensões do PHP Atividade 06 - Sistema de autenticação com captcha PHP Orientado a Objetos Atividade 07 - Gerando gráficos 120 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Manipulando banco de dados Conectando PHP com MySQL
Realizando consultas SQL em 4 passos ! 1o - Estabelecer conexão com o servidor Mysql.
121 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Manipulando banco de dados Conectando PHP com MySQL
Realizando consultas SQL em 4 passos ! 2o - Selecionar o banco de dados.
122 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Manipulando banco de dados Conectando PHP com MySQL
Realizando consultas SQL em 4 passos ! 3o - Executar instrução SQL.
123 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Manipulando banco de dados Conectando PHP com MySQL
Realizando consultas SQL em 4 passos ! 4o - Visualizar informações.
124 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Manipulando banco de dados Atividade 05 - Agenda telefônica
Sumário 1 2 3
4
5 6
7 8
Introdução Conceitos da linguagem Ambiente de desenvolvimento Fundamentos da linguagem Hello World ! Sintaxe da linguagem Formulários Métodos de envio Objetos do formulário Expressões regulares Atividade 01 - Formulários e validação Atividade 02 - Upload de imagens Atividade 03 - Editor de arquivos remoto Cookies e Sessões Atividade 04 - Contador de acessos Manipulando banco de dados Noções de banco de dados relacional PhpMyAdmin Consultas com MySQL Conectando PHP com MySQL Atividade 05 - Agenda telefônica Extensões do PHP Atividade 06 - Sistema de autenticação com captcha PHP Orientado a Objetos Atividade 07 - Gerando gráficos 125 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Manipulando banco de dados Atividade 05 - Agenda telefônica
Atividade 05 - Agenda telefônica Objetivos : Aprender a listar, inserir e remover registros de um banco de dados. Apresentar as informações dentro de tabelas. Utilizar outras funções.
126 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Manipulando banco de dados Atividade 05 - Agenda telefônica
Atividade 05 - Agenda telefônica - Parte 1 Construir uma página para listagem de contatos de uma agenda telefônica.
127 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Manipulando banco de dados Atividade 05 - Agenda telefônica
Dicas Utilizar os 4 passos citados anteriormente para fazer a listagem dos registros. Exibir cada registro dentro de linhas de uma tabela html.
128 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Manipulando banco de dados Atividade 05 - Agenda telefônica
Atividade 05 - Agenda telefônica - Parte 2 Construir uma página para inserção de contatos em uma agenda telefônica.
129 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Manipulando banco de dados Atividade 05 - Agenda telefônica
Atividade 05 - Agenda telefônica - Parte 3 Construir uma página para remoção de contatos em uma agenda telefônica.
130 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Extensões do PHP
Sumário 1 2 3
4
5 6
7 8
Introdução Conceitos da linguagem Ambiente de desenvolvimento Fundamentos da linguagem Hello World ! Sintaxe da linguagem Formulários Métodos de envio Objetos do formulário Expressões regulares Atividade 01 - Formulários e validação Atividade 02 - Upload de imagens Atividade 03 - Editor de arquivos remoto Cookies e Sessões Atividade 04 - Contador de acessos Manipulando banco de dados Noções de banco de dados relacional PhpMyAdmin Consultas com MySQL Conectando PHP com MySQL Atividade 05 - Agenda telefônica Extensões do PHP Atividade 06 - Sistema de autenticação com captcha PHP Orientado a Objetos Atividade 07 - Gerando gráficos 131 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Extensões do PHP
Extensões do PHP Biblioteca GD Biblioteca para a criação de imagens. Normalmente presente no pacote PHP. Habilitar no arquivo de configuração php.ini
Biblioteca JPGraph Biblioteca para a plotagem de gráficos. Baixar pacote jpgraph separadamente. Instalar no diretório path padrão de extensões do php.
132 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Extensões do PHP Atividade 06 - Sistema de autenticação com captcha
Sumário 1 2 3
4
5 6
7 8
Introdução Conceitos da linguagem Ambiente de desenvolvimento Fundamentos da linguagem Hello World ! Sintaxe da linguagem Formulários Métodos de envio Objetos do formulário Expressões regulares Atividade 01 - Formulários e validação Atividade 02 - Upload de imagens Atividade 03 - Editor de arquivos remoto Cookies e Sessões Atividade 04 - Contador de acessos Manipulando banco de dados Noções de banco de dados relacional PhpMyAdmin Consultas com MySQL Conectando PHP com MySQL Atividade 05 - Agenda telefônica Extensões do PHP Atividade 06 - Sistema de autenticação com captcha PHP Orientado a Objetos Atividade 07 - Gerando gráficos 133 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Extensões do PHP Atividade 06 - Sistema de autenticação com captcha
Atividade 06 - Sistema de autenticação com captcha Objetivos : Aprender a manipular biblioteca GD para criação de imagens. Utilizar funções de criptografia, geração de dados aleatórios, entre outras funções.
134 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Extensões do PHP Atividade 06 - Sistema de autenticação com captcha
Atividade 06 - Sistema de autenticação com captcha Construir um sistema de login e senha utilizando captcha. O texto da imagem do captcha deve ser gerado aleatoriamente. Usuários e senhas do sistema podem ser armazenados em BD ou arquivo de texto. A senha deve ser criptografada com algoritmo hash sha-1. Se o usuário ainda não possui senha, deve ser oferecida uma tela de cadastro.
135 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Extensões do PHP Atividade 06 - Sistema de autenticação com captcha
Dicas Criar uma função que retorna um texto aleatório. Esse texto aleatório pode ser gerado com a ajuda das funções rand() e chr(). Criar uma função que gera uma imagem. A imagem pode ser gerada com a ajuda das funções imagecreate(), imagecolorallocate(), imagettftext(), imagepng(), imagedestroy(). Criar uma função que mostra um formulário para cadastro de novo usuário. Criar uma função que mostra um formulário para acesso de usuários já existentes. O sistema deve se comportar de acordo com o tipo de botão pressionado. 136 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Extensões do PHP Atividade 06 - Sistema de autenticação com captcha
Dicas int rand(int $min, int $max) Gera um inteiro aleatório entre $min e $max.
string chr(int $ascii) Retorna o caractere correspondente ao ASCII passado por parâmetro.
string sha1(string $str) Calcula a hash sha1 de uma string.
int sizeof(mixed $var) Conta os elementos de um array.
array split(string $expressao, string $variavel) Separa a string em array utilizando expressão regular.
string trim(string $str) Retira espaços do ínicio e final de uma string. 137 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho Extensões do PHP Atividade 06 - Sistema de autenticação com captcha
Dicas resource imagecreate(int $width, int $height) Gera uma imagem.
int imagecolorallocate(resource $image, int $red, int $green, int $blue) Retorna um identificador de cor composta pelos componentes RGB.
array imagettftext(resource $image, float $size, float $angle, int $x, int $y, int $color, string $fontfile, string $text) Escreve um texto na imagem.
bool imagepng(resource $image [,string $filename]) Envia uma imagem PNG para o browser ou para um arquivo.
bool imagedestroy(resource $image) Libera a memória que estava associada à imagem. 138 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho PHP Orientado a Objetos
Sumário 1 2 3
4
5 6
7 8
Introdução Conceitos da linguagem Ambiente de desenvolvimento Fundamentos da linguagem Hello World ! Sintaxe da linguagem Formulários Métodos de envio Objetos do formulário Expressões regulares Atividade 01 - Formulários e validação Atividade 02 - Upload de imagens Atividade 03 - Editor de arquivos remoto Cookies e Sessões Atividade 04 - Contador de acessos Manipulando banco de dados Noções de banco de dados relacional PhpMyAdmin Consultas com MySQL Conectando PHP com MySQL Atividade 05 - Agenda telefônica Extensões do PHP Atividade 06 - Sistema de autenticação com captcha PHP Orientado a Objetos Atividade 07 - Gerando gráficos 139 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho PHP Orientado a Objetos
POO Consolidado a partir do PHP 5. A sintaxe do php OO é semelhante a do Java. Assim como o Java, não suporta herança múltipla. Não suporta polimorfismo.
140 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho PHP Orientado a Objetos
POO O construtor e destrutor de um objeto têm um nome fixo : __construct() __destruct(). A visibilidade dos métodos e atributos pode ser : Public : pode ser acessível de qualquer lugar. Protected : visíveis apenas pelas subclasses e pela classe que o criou. Private : visíveis apenas dentro da classe que os criou.
Subclasse são herdadas a partir do operador "extends". Etc...
141 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho PHP Orientado a Objetos
POO
142 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho PHP Orientado a Objetos Atividade 07 - Gerando gráficos
Sumário 1 2 3
4
5 6
7 8
Introdução Conceitos da linguagem Ambiente de desenvolvimento Fundamentos da linguagem Hello World ! Sintaxe da linguagem Formulários Métodos de envio Objetos do formulário Expressões regulares Atividade 01 - Formulários e validação Atividade 02 - Upload de imagens Atividade 03 - Editor de arquivos remoto Cookies e Sessões Atividade 04 - Contador de acessos Manipulando banco de dados Noções de banco de dados relacional PhpMyAdmin Consultas com MySQL Conectando PHP com MySQL Atividade 05 - Agenda telefônica Extensões do PHP Atividade 06 - Sistema de autenticação com captcha PHP Orientado a Objetos Atividade 07 - Gerando gráficos 143 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho PHP Orientado a Objetos Atividade 07 - Gerando gráficos
Atividade 07 - Gerando gráficos Objetivos : Aprender a manipular biblioteca jpgraph para a criação de gráficos. Utilizar orientação a objetos.
144 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho PHP Orientado a Objetos Atividade 07 - Gerando gráficos
Atividade 07 - Gerando gráficos Implementar aplicação que exibe um gráfico comparativo informando o consumo mensal de dois tipos de materiais. As informações devem ser retiradas do banco de dados. Devem ser oferecidas três opções de gráficos : barras, linhas e pizza.
145 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho PHP Orientado a Objetos Atividade 07 - Gerando gráficos
Atividade 07 - Gerando gráficos
146 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho PHP Orientado a Objetos Atividade 07 - Gerando gráficos
Atividade 07 - Gerando gráficos
147 / 148
FATENE - Programação para Internet - Prof. Acélio Sousa Carvalho PHP Orientado a Objetos Atividade 07 - Gerando gráficos
Dicas Utilizar biblioteca jpgraph para a construção dos gráficos. Recuperar informações do BD na tabela consumo (já povoada). Consultar documentação/exemplos da biblioteca jpgraph. Construir formulário para escolher o tipo de gráfico. Construir uma função que lê e retorna em formato adequado, as informações desejadas do banco de dados para o gráfico. Cada script que gera um gráfico retorna uma imagem que será exibida em uma tag <img> do html.
148 / 148