Programação PHP

Page 1

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


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.