minicurso php 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/php-5-vinicius-v-sdsl.pdf · minicurso php 5...

57
1 Minicurso Minicurso PHP 5 PHP 5 Vinícius Costa de Souza [email protected] Julho de 2005

Upload: buinhi

Post on 09-Nov-2018

230 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

1

Minicurso Minicurso PHP 5 PHP 5

Vinícius Costa de [email protected]

Julho de 2005

Page 2: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

2

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

Nome

Experiências com programação

Conhecimentos de linguagens WEB / HTML

Expectativas referentes ao curso

ApresentaçõesApresentações

Page 3: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

3

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

Introdução

Manipulação de dados

Operadores

Estruturas de controle

Funções

PHP e formulários HTML

Manipulação de arquivos

Sessões e Cookies

PHP OO

ProgramaPrograma

Page 4: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

4

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

O que é PHP?

Hypertext Processor

linguagem de script para a Web

server side

embutida no HTML

Diferenças?

PHP x HTML

PHP x JavaScript

PHP x CGI

IntroduçãoIntrodução

Page 5: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

5

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

Por que utilizar PHP?

linguagem mais utilizada na Web

código-fonte aberto

possui muitos recursos prontos (extensões)

amplo suporte a bancos de dados

portável

estável

rápido

fácil de aprender

IntroduçãoIntrodução

Page 6: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

6

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

Material na Web

http://www.php.net

http://zend.com

http://phpfaqts.com

http://phpbuilder.com

www.phphub.com

www.phppaterns.com

www.phpclasses.org

www.sourceforge.net

http://pear.php.net

http://phpbrasil.com

IntroduçãoIntrodução

Page 7: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

7

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

Noções básicas de programação em PHP

tags limitadoras de um programa PHP

comentários (como e porquê?)

comandos para saída na tela

finalização das linhas de comando

PHP dentro de código HTML

HTML dentro do código PHP

caractere identificador de variável

IntroduçãoIntrodução

Page 8: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

8

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

Exercício

Criar uma página em PHP para exibição da data e

hora atual.

IntroduçãoIntrodução

Page 9: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

9

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

Numéricos inteiro ( 5 ) real ( 4.432 )

Alfanuméricos

aspas simples ( ' ) aspas duplas ( " ) aspas invertidas ( ´ ) caractere de controle ( \ )

Manipulação de dadosManipulação de dados

Page 10: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

10

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

Variáveis

não é necessário declarar as variáveis em PHP iniciam sempre com o caractere $ não podem iniciar com números PHP é case-sensitive

Constantes

armazenam dados que não são alterados referencia-se diretamente pelo nome (sem $)

define (<nome_constante>,<valor>);

Manipulação de dadosManipulação de dados

Page 11: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

11

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

Arrays

podem armazenar mais de um valor, pois possuem além de um nome identificador um índice que pode ser numérico ou textual

o índice aparece entre colchetes [] e após o nome

índices numéricos iniciam sempre em zero

os valores atribuídos podem ser de tipos diferentes

podem ser uni ou multidimensionais

Manipulação de dadosManipulação de dados

Page 12: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

12

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

Exercício

Crie um array chamado estado para armazenar

neste as capitais dos estados na região sul do

Brasil, utilizando como índice as sigla dos estados.

Manipulação de dadosManipulação de dados

Page 13: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

13

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

Aritméticos

OperadoresOperadores

+ ADIÇÃO

- SUBTRAÇÃO

* MULTIPLICAÇÃO

/ DIVISÃO

-oper TROCA SINAL

++oper PRÉ-INCREMENTO

--oper PRÉ-DECREMENTO

oper++ PÓS-INCREMENTO

oper-- PÓS-DECREMENTO

Page 14: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

14

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

Condicionais

OperadoresOperadores

X == Y X IGUAL A YX >= Y X MAIOR OU IGUAL A YX <= Y X MENOR OU IGUAL A YX != Y X DIFERENTE DE YX <> Y X DIFERENTE DE YX > Y X MAIOR QUE Y

X < Y X MENOR QUE Y

Page 15: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

15

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

Atribuição

OperadoresOperadores

$num = 5;

$num += 5; $num = $num + 5;

$num -= 5; $num = $num - 5;

$num *= 5; $num = $num * 5;

$num /= 5; $num = $num / 5;

$nome .= “aluno”; $nome = $nome.”aluno”;

Page 16: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

16

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

Lógicos

OperadoresOperadores

!X verdadeiro se X for falso

X AND Y verdadeiro se X e Y forem verdadeirosX OR Y verdadeiro se X ou Y forem verdadeirosX XOR Y verdadeiro se apenas um for verdadeiroX && Y verdadeiro se X e Y forem verdadeirosX || Y verdadeiro se X ou Y forem verdadeiros

Page 17: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

17

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

Exercício

Quais são os valores das variáveis $a, $b, $c, $x, $y e $z após a execução do seguinte programa:

$a=2;$b=4;$c=6;$x= --$c + $b;$y= $b++ + $a;$z= $a - $b--;

OperadoresOperadores

Page 18: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

18

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

Condicional (if ... else)

Estruturas de controleEstruturas de controle

$nota = ($N1 + 2*$N2)/3;if ( $nota > 9.5 )

$resultado = “Aprovado com distinção”; elseif ( ($nota >= 8) and ($nota <= 9.5) )

$resultado = “Aprovado plenamente”; elseif ( ($nota >= 6) and ($nota <= 7.9) )

$resultado = “Aprovado”; else $resultado = “Reprovado”;echo “Você foi $resultado em seu TCC”;

Page 19: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

19

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

Condicional (switch)

Estruturas de controleEstruturas de controle

switch ($opcao){case "s": echo "Você escolheu a opção SIM"; break; case "n": echo "Você escolheu a opção NÃO"; break; default: echo "A opção digitada é inválida"; break;

}

Page 20: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

20

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

Repetição (while)

Repetição (do ... while)

Estruturas de controleEstruturas de controle

$cont = 1;while ( $cont < 10 ){

echo "O valor atual do contador é $cont <br>"; $cont++;

}

$cont = 0;do {

$cont++;echo "O valor atual do contador é $cont <br>";

} while ($cont < 10);

Page 21: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

21

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

Repetição (for)

Repetição (foreach)

Estruturas de controleEstruturas de controle

for ($cont=100; $cont >= 0; $cont--):

echo "O valor da variável \$cont é $cont <br>";

endfor;

$vetor = array ("um"=>1, "dois"=>2, "três"=>3);foreach ($vetor as $chave => $valor){

echo "O valor de \$vetor[$chave] é $valor <br>";}

Page 22: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

22

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

Exercício

Crie um array chamado curso que armazene as

seguintes informações sobre esse curso: - nome- data - carga horária- local

Utilize strings para os índices do array. Utilize foreach para imprimir o array neste formato:

Nome do curso: PHP 5Informação armazenada em $curso[nome]

Estruturas de controleEstruturas de controle

Page 23: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

23

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

torna os programas mais organizados e modulares

uma função pode ou não receber argumentos em sua chamada (por valor ou por referência &)

o comando return é opcional e serve para que a função retorne um valor

sempre que o PHP encontra uma chamada para uma função, a execução do programa é interrompida e o fluxo de execução passa para o início da função

FunçõesFunções

Page 24: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

24

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

FunçõesFunções

function lista_aprovados($alunos){ for ($i=0; $i < sizeof($alunos); $i++){

$media = ($alunos[$i]["n1"] + 2*$alunos[$i]["n2"])/3;if ($media >= 6){ $aprovados[] = $alunos[$i]["nome"];}

} return $aprovados;}

Page 25: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

25

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

FunçõesFunções

Pré-definidas

array - cria um array

sort - ordena um array

sizeof - obtém o número de elementos de um array

strchr - encontra a primeira ocorrência de um caractere

strlen - obtém o tamanho de uma string

substr - retorna uma parte da string

split - subdivide uma string em várias strings

str_replace - substitui as ocorrências de uma string

date - formata data e hora

Page 26: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

26

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

FunçõesFunções

include e require

funções que permitem reaproveitar funções ou arquivos, utilizando-os em diversas páginas do site.

tem por objetivo incluir um arquivo dentro de outro.

include “nome_arquivo.inc.php”;require “nome_arquivo.inc.php”;

Page 27: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

27

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

FunçõesFunções

ExercícioCriar uma função que recebe um array chamado alunos que contenha o nome, nota 1 e nota 2 dos seguintes alunos.

A função deve calcular a média (N1 + 2*N2)/3 e retornar um outro array chamado aprovados que deve armazenar o nome e a média dos alunos aprovados. O programa para imprimir a listagem dos aprovados, em ordem alfabética, com suas médias finais.

6,79,1Fabiane Almeida

8,63,7Eduardo Romero

5,95,6Carlos Pedroso

8,67,8Bianca da Silva

2,96,5Aline dos Santos

N2N1Nome

Page 28: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

28

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

PHP e Formulários HTMLPHP e Formulários HTML

criados em HTML

possuem no mínimo:

5. um campo para entrada de dados

6. um botão para enviar os dados

7. endereço de destino para os dados enviados

Page 29: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

29

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

PHP e Formulários HTMLPHP e Formulários HTML<FORM action="cadastro.php" method="post">

<INPUT type="text" name="nome" size="30" maxlength="150"><INPUT type="password" name="senha" size="10" maxlength="150"><SELECT name="select"> <option value="RS">RS</option>

<option value="SC">SC</option> <option value="PR">PR</option>

</SELECT><TEXTAREA name="COMENTARIO" cols="30" rows="10" wrap="physical"></TEXTAREA><INPUT type="checkbox" name="fds" value="FDS"><INPUT type="checkbox" name="lgr" value="LGR"><INPUT type="radio" name="noticias" value="sim"><INPUT type="radio" name="noticias" value="nao"><INPUT TYPE="submit" value="Enviar os dados acima"> <INPUT TYPE="reset" value="Limpar">

</FORM>

Page 30: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

30

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

PHP e Formulários HTMLPHP e Formulários HTML

Métodos de envio

GET método padrão, através do qual os dados são enviados com o nome da página que receberá os dados www.site.com.br/programa.php?nome=vinicius&idade=27

desvantagens ?

POST envia os dados por meio do corpo da mensagem enviada ao servidor www.site.com.br/programa.php

vantagens?

Page 31: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

31

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

PHP e Formulários HTMLPHP e Formulários HTML

Tratando os dados recebidos

como variáveis - apenas acrescenta-se o símbolo $ antes do nome definido no form

como array do PHP – arrays definidos pelo PHP que armazenam as informações enviadas pelo

GET $_GET POST $_POST

Neste caso, as chaves dos arrays são os nomes dos campos do formulário HTML

Page 32: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

32

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

PHP e Formulários HTMLPHP e Formulários HTML

ExercícioCrie 3 arquivos (cadastro1.php, cadastro2.php e fim_cadastro.php)

No arquivo cadastro1.php crie um form com os seguintes campos, que devem ser enviados para o arquivo cadastro2.php:

- Nome (text - não pode estar vazio e deve ter sobrenome)- Sexo (radio)

No arquivo cadastro2.php crie um form com os campos abaixo, que devem ser remetidos para o arquivo fim_cadastro.php:

- Senha (password com mínimo de 5 caracteres)

- Comentário: (textarea de 30 colunas e 6 linhas)

O arquivo fim_cadastro.php deve receber e imprimir na tela todos os dados do cadastro (form1 e form2)

Page 33: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

33

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

Manipulação de arquivosManipulação de arquivos

Quando necessitamos armazenar poucos dados, podemos fazer isso em arquivos texto para termos um acesso mais rápido as informações.

Através do PHP podemos:

abrir um arquivo fopen

ler um arquivo fread

escrever em um arquivo fwrite

fechar um arquivo fclose

Page 34: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

34

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

Manipulação de arquivosManipulação de arquivos

modos possíveis para a função fopen

r abre somente para leitura (ponteiro no início)

r+ abre para leitura e escrita (ponteiro no início)

w abre somente para escrita (cria ou zera)

w+ abre para leitura e escrita (cria ou zera)

a abre somente para escrita (ponteiro no final)

a+ abre para leitura e escrita (ponteiro no final)

Page 35: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

35

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

Manipulação de arquivosManipulação de arquivos

Exemplos

Leitura

Escrita

$arq = fopen ("nome_arquivo.txt", "r");while (!feof ($arq)) { $linha = fread($arq,1024); echo $linha;}fclose ($arq);

$arquivo = fopen("cadastro.txt","a+");fwrite ($arquivo,$nome."##".$email."\n");fclose($arquivo);

Page 36: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

36

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

Manipulação de arquivosManipulação de arquivos

Exercício

Modificar o arquivo fim_cadastro.php para que os dados do cadastro sejam armazenados em arquivo (cadastros.txt).

Após, faça testes simulando cadastros e consultando o arquivo para verificar se os dados estão sendo armazenados.

Atenção com a permissão para escrita no arquivo

Page 37: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

37

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

Sessões e CookiesSessões e Cookies

Sessão

trata-se de um período de tempo enquanto uma pessoa particular navega por determinado site.

através das sessões, podemos registrar variáveis, as quais estarão disponíveis em todas as páginas enquanto o usuário estiver navegando pelo site.

Page 38: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

38

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

Sessões e CookiesSessões e Cookies

Sessão

session_start();session_register("nome_usuario");session_register("login_usuario");session_register("senha");$_SESSION['nome_usuario'] = $nome_banco;$_SESSION['login_usuario'] = $login_banco;$_SESSION['senha'] = $senha_banco;

Page 39: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

39

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

Sessões e CookiesSessões e Cookies

Cookies

pequenos fragmentos de informação retidos na máquina do cliente, quer na memória do Browser, quer em um arquivo gravado no HD.

cada cookie contém um par nome/valor.

configurar um cookie significa associar um par valor/nome e armazenar no lado cliente.

obter ou ler um cookie significa utilizar o nome para recuperar o valor

vantagens e desvantagens

Page 40: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

40

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

Sessões e CookiesSessões e Cookies

Cookies

Sintaxe

Exemplo

Três dicas importantes

setcookie("user","joao",time()+86400);

setcookie(nome,valor,validade,caminho,dominio,seguro);

Page 41: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

41

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

Sessões e CookiesSessões e Cookies

Exercício

Modificar os arquivos cadastro1.php, cadastro2.php e fim_cadastro.php para que os dados dos formulários sejam gravados em sessão (cadastro 1 e 2) e recuperados da sessão (fim_cadastro).

Page 42: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

42

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

Introdução

Classe - tipo de dado definido com atributos e métodos

Objeto - uma instância de uma classe

Atributo - dados de uma classe

Método - funções de uma classe

Herança - extensão de uma classe

PHP OOPHP OO

Page 43: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

43

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

Classe

PHP OOPHP OO

Depositar

Sacar

ConsultarSaldo

Encerrar

Abrir Nome

Saldo

Atributos

Métodos

(Parte escondida)

(Protocolo de acesso)

Page 44: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

44

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

Objetos

PHP OOPHP OO

Depositar

Sacar

ConsultarSaldo

Encerrar

Abrir Tio Patinhas

100.000,00Depositar

Sacar

ConsultarSaldo

Encerrar

Abrir Donald

1,00

Conta do Tio Patinhas Conta do Donald

Page 45: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

45

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

PHP OOPHP OOclass ContaEmBanco {

var nome,saldo; function ContaEmBanco($nome,$valor){

$this->nome = $nome;$this->saldo = $valor;

}function depositar($valor){

$this->saldo += $valor;}function consultarSaldo(){

echo $this->saldo;}

...}$conta1 = new ContaEmBanco(“Donald“,100);$conta1->depositar(500); $conta1->consultarSaldo();

Classe

Construtor

Métodos

Instância

Page 46: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

46

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

Classe ContaEmBanco•Abrir

•Encerrar

•Depositar

•Sacar

•ConsultarSaldo

Classe ContaPoupança•CalculaJuros

Calcula os juros do mês

Classe ContaCheque•DescontaCheque

Desconta do saldo um cheque passado

Herança

PHP OOPHP OO

Page 47: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

47

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

Sobrescrevendo métodos

PHP OOPHP OO

class ContaCheque extends ContaEmBanco {var num_cheques = 0;function ContaCheque($nome,$valor){

$this->nome = $nome;$this->saldo = $valor;

}function consultarSaldo(){

echo $this->saldo;$this->saldo -= 0,40;

} ...}$contaCh = new ContaCheque(“Pluto“,100);$contaCh->consultarSaldo();

Page 48: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

48

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

Modelo OO (Zend 1) objetos copiados

Novo modelo OO (Zend 2) referências a objetos private, public, protected, abstract permite construtores e destrutores controle de duplicação set e get

PHP 5

PHP OOPHP OO

Page 49: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

49

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

class Conta {function setSaldo($value){

$this->saldo = $value;}function getSaldo(){

return $this->saldo;}

}

function zeraConta($obj){$obj->setSaldo(0);

}

$object = new Conta();$object->setSaldo(100);seraConta($object);echo $object->getSaldo();

PHP 5 – objetos por referência

PHP OOPHP OO

Page 50: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

50

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

PHP OOPHP OO

class Conta {function Conta($valor){

$this->saldo = $valor;}funciton getSaldo(){

return $this->saldo;}

}

function criarConta($valor){return new Conta($valor);

}

PHP4:$conta1 = criarConta(250);echo $conta1->getSaldo();

PHP5:echo criarConta(250)->getSaldo();

PHP 5 – referenciando objetos retornados

Page 51: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

51

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

class ClasseBase { function __construct() { print "No construtor da ClasseBase\n"; }}

class SubClasse extends ClasseBase { function __construct() { parent::__construct(); print "No construtor da SubClasse\n"; }}

$obj = new ClasseBase();$obj = new SubClasse();

PHP 5 – construtores

PHP OOPHP OO

Page 52: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

52

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

class MinhaClasse { function __construct() { print "No construtor\n"; $this->name = "MinhaClasse"; }

function __destruct() { print "Destruindo " . $this->name . "\n"; }}

$obj = new MinhaClasse();

PHP 5 – destrutores

PHP OOPHP OO

Page 53: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

53

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

class Conta { protected $saldo;}

class ContaPoupanca extends Conta{ function getSaldo(){

return $this->saldo; }}

$conta1 = new ContaPoupanca;echo $conta1->getSaldo(); OKecho $conta1->saldo; NÃO

PHP 5 – protected

PHP OOPHP OO

Page 54: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

54

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

class Conta { function __get($atributo){

return $this->members[$atributo]; } function __set($atributo,$valor){

$this->members[$atributo] = $valor; }}

PHP 5 – get e set

PHP OOPHP OO

Page 55: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

55

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

abstract class Conta {//...

}

class ContaEspecial extends Conta{//...

}

$conta1 = new Conta; NÃO$conta1 = new ContaEspecial; SIM

PHP 5 – abstract

PHP OOPHP OO

Page 56: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

56

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

Exercício

Implementar através do paradigma OO uma conta bancária utilizando e testando os novos recursos do PHP5

PHP OOPHP OO

DepositarSacar

ConsultarSaldo

EncerrarAbrir

Nome

Saldo

Page 57: Minicurso PHP 5 - cin.ufpe.brcin.ufpe.br/~jfp/cursophp/PHP-5-Vinicius-V-SDSL.pdf · Minicurso PHP 5 Vinícius Costa de Souza viniciuscs@unisinos.br Julho de 2005. 2 P PrHoPg 5ramação

57

Programação PHP PHP 5

Vinícius Costa de Souza - Julho de 2005 /

OBRIGADO!OBRIGADO!

Vinícius Costa de [email protected]

www.inf.unsinos.br/~vinicius

São Leopoldo, julho de 2005