71
Desenvolvimento Web com PHP Pós-Graduação em Desenvolvimento Web

Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Embed Size (px)

Citation preview

Page 1: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Desenvolvimento Web com PHP

Pós-Graduação em Desenvolvimento Web

Page 2: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Apresentação

Page 3: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Apresentação

• Professor: Thyago Maia Tavares de Farias

– Doutorando em Computação pelo Cin / UFPE– Mestre em Informática pelo PPGI / DI / UFPB– Bacharel em Ciência da Computação – UFPB– Currículo Lattes: http://lattes.thyagomaia.net– E-Mail: [email protected]

3

Page 4: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Apresentação

• Foco da disciplina

Apresentar funções PHP que permitam manipular arquivos, enviar e-mails, manipular cookies e variáveis de sessão;

Apresentar o paradigma orientado a objetos aplicado em PHP (PHP OO);

4

Page 5: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Apresentação

• Referência Bibliográfica

PHP – Programando com Orientação a Objetos

Autor: Pablo Dall’Oglio

Editora: Novatec

5

Page 6: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Apresentação

• Sites auxiliares:

– http://facebook.com/profthyagomaia– http://twitter.com/thyagomaia– http://www.slideshare.net/thyagomaia– http://www.php.net– http://www.w3schools.com– http://www.codeacademy.com.br

6

Page 7: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Apresentação

• Aplicações que serão utilizados no curso:

– Notepad++• https://notepad-plus-plus.org/

– Xampp• https://www.apachefriends.org/pt_br/index.html

7

Page 8: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Apresentação

• Avaliação:– Miniprojeto: Desenvolvimento de uma aplicação

PHP orientada a objetos;• Trabalho em Grupo (3 integrantes);• Tema Livre (Deverá ser pré-aprovado pelo professor);

– Critérios de Avaliação:• Interface, Usabilidade, Aplicação das Competências e

Habilidades Adquiridas Durante o Curso, Dificuldade do Tema Escolhido, Organização do Projeto e Apresentação ao Professor (até 15 min.);

8

Page 9: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Manipulação de Arquivos em PHP

Page 10: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Manipulação de Arquivos

PHP fornece uma série de funções para a manipulação de arquivos;

Tais funções permitem: Abrir um arquivo para leitura e/ou escrita; Verificar ou controlar ponteiros de arquivo; Efetuar uma leitura e/ou uma escrita em um

arquivo; Fechar um arquivo;

10

Page 11: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Manipulação de Arquivos

fopen: Abre um arquivo e retorna um identificador;

11

fopen (string arquivo, string modo) Parâmetros Descrição

arquivo String que identifica o nome do arquivo

modo Descreve a forma de abertura do arquivo (“r” – read, “w” – write, “a” – append)

Page 12: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Manipulação de Arquivos

fopen – Exemplo:

12

<?php

$arquivo = fopen(“arquivos/arquivo.txt”, “r”);

if($arquivo)echo “O script abriu o arquivo <br>”;

elseecho “Erro ao abrir o arquivo!”;

?>

Page 13: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Manipulação de Arquivos

feof: Testa se um identificador de arquivo está no fim (End Of File);

13

feof (identificador) Parâmetros Descriçãoidentificador Identificador retornado pela função fopen

Page 14: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Manipulação de Arquivos

fgets: Lê uma linha de um arquivo;

14

fgets (identificador, tamanho) Parâmetros Descriçãoidentificador Identificador retornado pela função fopen

tamanho Quantidade em bytes a serem retornados da leitura (opcional)

Page 15: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Manipulação de Arquivos

fclose: Fecha o arquivo aberto, apontado pelo identificador de arquivo;

15

fclose (identificador) Parâmetros Descriçãoidentificador Identificador retornado pela função fopen

Page 16: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Manipulação de Arquivos feof, fgets e fclose – Exemplo:

16

<?php

$arquivo = fopen(“arquivos/arquivo.txt”, “r”);

// Enquanto o fim do arquivo não for atingidowhile(!feof($arquivo)){

// Lê uma linha do arquivo$linha = fgets($arquivo);

echo $linha . “<br>”;}

fclose($arquivo);?>

Page 17: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Manipulação de Arquivos

fwrite: Grava uma string no arquivo apontado pelo identificador de arquivo;

17

fwrite (identificador, conteúdo) Parâmetros Descriçãoidentificador Identificador retornado pela função fopen

conteúdo String a ser escrita no arquivo

Page 18: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Manipulação de Arquivos

fwrite – Exemplo:

18

<?php

$arquivo = fopen(“arquivos/arquivo.txt”, “w”);

fwrite($arquivo, “String 1\n”);fwrite($arquivo, “String 2\n”);fwrite($arquivo, “String 3\n”);

fclose($arquivo);?>

Page 19: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Manipulação de Arquivos

file_put_contents: Grava uma string em um arquivo;

19

file_put_contents (nome_arquivo, conteúdo) Parâmetros Descriçãonome_arquivo Arquivo a ser aberto para escrita

conteúdo Novo Conteúdo

Page 20: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Manipulação de Arquivos

file_put_contents – Exemplo:

20

<?php

file_put_contents(“arquivos/arquivo.txt”,“Sport \n Campeão de 87”);

?>

Page 21: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Manipulação de Arquivos

file_get_contents: Lê o conteúdo de um arquivo;

21

file_get_contents (nome_arquivo) Parâmetros Descriçãonome_arquivo Arquivo a ser aberto para leitura

Page 22: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Manipulação de Arquivos

file_get_contents – Exemplo:

22

<?php

echo file_get_contents(“arquivos/arquivo.txt”);?>

Page 23: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Manipulação de Arquivos

file: Lê um arquivo e retorna um array com seu conteúdo;

23

file (nome_arquivo) Parâmetros Descriçãonome_arquivo Arquivo a ser aberto para leitura

Page 24: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Manipulação de Arquivos

file – Exemplo:

24

<?php

$arquivo = file(“arquivos/arquivo.txt”);

echo $arquivo[0];echo $arquivo[1];

?>

Page 25: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Manipulação de Arquivos

copy: Copia o conteúdo de um arquivo e cola em outro arquivo;

25

copy (arquivo_origem, arquivo_destino) Parâmetros Descrição

arquivo_origem Arquivo a ser copiadoarquivo_destino Arquivo destino

Page 26: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Manipulação de Arquivos

copy – Exemplo:

26

<?php

$origem = “arquivos/arquivo.txt”;$destino = “arquivos/copia.txt”;

if(copy($origem,$destino))echo “Cópia Efetuada”;

elseecho “Cópia não Efetuada”;

?>

Page 27: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Manipulação de Arquivos

rename: Renomea um arquivo e/ou um diretório;

27

rename (nome_atual, novo_nome) Parâmetros Descriçãonome_atual Arquivo/Diretório a ser renomeadonovo_nome Novo nome do arquivo/diretório

Page 28: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Manipulação de Arquivos

rename – Exemplo:

28

<?php

$atual = “arquivos/arquivo.txt”;$novo = “arquivos/testes.txt”;

if(rename($atual,$novo))echo “Arquivo renomeado”;

elseecho “Arquivo não renomeado”;

?>

Page 29: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Manipulação de Arquivos

unlink: Remove um arquivo passado como parâmetro;

29

unlink (nome_arquivo) Parâmetros Descriçãonome_arquivo Arquivo a ser excluído

Page 30: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Manipulação de Arquivos

unlink – Exemplo:

30

<?php

$arquivo = “arquivos/copia.txt”;

if(unlink($arquivo))echo “Arquivo apagado”;

elseecho “Arquivo não apagado”;

?>

Page 31: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Manipulação de Arquivos

file_exists: Verifica a existência de um arquivo ou de um diretório;

31

file_exists (nome_arquivo) Parâmetros Descriçãonome_arquivo Nome/localização de um arquivo/diretório

Page 32: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Manipulação de Arquivos

file_exists – Exemplo:

32

<?php

$arquivo = “arquivos/testes.txt”;

if(file_exists($arquivo))echo “Arquivo existente”;

elseecho “Arquivo não existente”;

?>

Page 33: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Manipulação de Arquivos

is_file: Verifica se o parâmetro corresponde a um arquivo ou não;

33

is_file (nome_arquivo) Parâmetros Descriçãonome_arquivo Nome/localização de um dado

Page 34: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Manipulação de Arquivos

is_file – Exemplo:

34

<?php

$dado = “arquivos/testes.txt”;

if(is_file($dado))echo $dado . “ é um arquivo!”;

elseecho $dado . “ não é um arquivo”;

?>

Page 35: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Manipulação de Diretórios em PHP

Page 36: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Manipulação de Diretórios

Função Objetivomkdir(nome_diretório) Cria um diretóriogetcwd() Retorna o diretório correntechdir(novo_diretório) Altera o diretório correntermdir(diretório) Apaga um diretórioopendir(diretório) Abre um diretório e retorna um

identificadorclosedir(diretório) Libera um recurso alocado por

opendirreaddir(identificador) Realiza a leitura do conteúdo de um

diretório

36

Page 37: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Exercício – Registro de log de acesso

Page 38: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Exercício

• Etapa 1 – Preparação do Domínio

Crie uma pasta em htdocs chamada login; Crie uma pasta em login chamada logs; Em logs, crie um arquivo TXT chamado acesso.txt;

38

Page 39: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Exercício

• Etapa 2 – Criação de um formulário HTML

Crie um formulário HTML que permita ao usuário digitar seu login e senha; Método de envio: POST; Os dados deverão ser submetidos para o script

“checa_login.php”; Salve o documento HTML na pasta login com o nome

index.html;

39

Page 40: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Exercício• Etapa 3 – Criação do script checa_login.php

O script deverá inicialmente receber o login e senha submetidos na etapa anterior e checar se o login e a senha estão corretos; Considere que o login padrão do sistema seja aula e a

senha seja php; Caso o usuário tenha o acesso confirmado, o

script deverá acessar o arquivo de log acesso.txt e escrever uma linha registrando o novo acesso ao sistema; Dados: IP do usuário, nome do usuário, data e hora de

acesso (pesquise por funções);40

Page 41: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Exercício

• Etapa 4 – Testar a aplicação

Abra o navegador de sua preferência e acesse: http://localhost/login ou http://127.0.0.1/login

OBS.: Verifique se o servidor Apache do Xampp está ativo! Efetue o login no sistema, abra o arquivo

acesso.txt e verifique se seu acesso foi registrado no log do sistema;

41

Page 42: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Cookies

Page 43: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Cookies

• Frequentemente utilizados para identificar um usuário;

• Trata-se de um pequeno arquivo que o servidor “instala” no computador do usuário;

• Cada vez que este computador efetuar uma requisição pelo browser, ele também enviará o cookie ao servidor;

Page 44: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Criando um Cookie

Page 45: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Criando um Cookie

• A função setcookie() é utilizada para setar um cookie;

45

<?php

setcookie(nome, valor, expira, path, domain);

// corpo do script

?>

Page 46: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Criando um Cookie

• Exemplo:

46

<?php

setcookie(“usuario”, “Maria”, time()+3600);

// corpo do script

?>

Page 47: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Obtendo o Valor de um Cookie

Page 48: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Obtendo o Valor de um Cookie

• A variável $_COOKIE é utilizada para receber o valor de um Cookie. Exemplo:

48

<?php

echo $_COOKIE[“usuario”];

?>

Page 49: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Excluindo um Cookie

Page 50: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Excluindo um Cookie

• Para excluir um Cookie, devemos assegurar que o tempo de expiração foi atingido. Exemplo:

50

<?php

// “Forçando” a expiração de um Cookiesetcookie(“usuario”, “Maria”, time()-3600);

?>

Page 51: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Exercício

Page 52: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Exercício

• Etapa 1 – Preparação do Domínio

Crie uma pasta em htdocs chamada cookies;

52

Page 53: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Exercício

• Etapa 2 – Criação de um formulário HTML

Crie uma página HTML com um formulário, onde o usuário deverá digitar seu nome e o time que torce; Método de envio: GET; Os dados deverão ser submetidos para o script

“cria_cookies.php”; Salve o documento HTML na pasta cookies com o

nome index.html;

53

Page 54: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Exercício

• Etapa 3 – Criação do script cria_cookies.php na pasta cookies

– O script deverá receber os dados submetidos pelo formulário HTML anterior...

– ... armazenar cada dado em um Cookie ...– ... redirecionar o usuário para o script mensagem.php

(Como fazer isso? Pesquise!);

54

Page 55: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Exercício

• Etapa 4 – Criação do script mensagem.php na pasta cookies

– O script deverá receber os dados armazenados em cookies pelo script anterior ...

– ... e exibir a frase “_________ torce para o _________”;

55

Page 56: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Exercício

• Etapa 5 – Testar a aplicação

Abra o navegador de sua preferência e acesse: http://localhost/cookies ou http://127.0.0.1/cookies

OBS.: Verifique se o servidor Apache do Xampp está ativo! Digite seu nome e seu time para testar a

aplicação;

56

Page 57: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Variáveis de Sessão

Page 58: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Variáveis de Sessão

• São usadas para armazenar informações do usuário no servidor para uso posterior. Exemplos:– Nome de Usuário;– Itens de um carrinho de compras;

• Tais variáveis estão disponíveis para todas as páginas da aplicação;

Page 59: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Variáveis de Sessão

• Informações de sessão são temporárias!– Serão excluídas quando o usuário deixar o

site/sistema;

• Sessões trabalham com a criação de um ID único (UID) para cada visitante e armazena variáveis baseadas nessas IDs;

Page 60: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Iniciando uma Sessão PHP

Page 61: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Iniciando uma Sessão PHP

• Antes de armazenar informações de sessão, você deverá iniciá-la;

61

<?php

session_start();

// corpo do script

?>

Page 62: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Criando uma Variável de Sessão

Page 63: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Criando uma Variável de Sessão

• Para declarar, atribuir e obter variáveis de sessão, deveremos utilizar a variável $_SESSION;

63

<?php

session_start();

$_SESSION[‘nome’] = “Thyago”;$_SESSION[‘codigo’] = 1;

?>

Page 64: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Excluindo uma Sessão

Page 65: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Excluindo uma Sessão

• Para excluir uma variável de sessão, utilizamos a função unset();

• Para excluir todas as variáveis de sessão, utilizamos a função session_destroy()

65

<?phpunset($_SESSION[‘nome’]);

?>

<?phpsession_destroy();

?>

Page 66: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Exercício

Page 67: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Exercício

• Etapa 1 – Preparação do Domínio

Crie uma pasta em htdocs chamada sessoes;

67

Page 68: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Exercício

• Etapa 2 – Criação de um formulário HTML

Crie um formulário HTML que permita ao usuário digitar seu login e senha; Método de envio: POST; Os dados deverão ser submetidos para o script

“checa_login.php”; Salve o documento HTML na pasta sessoes com o

nome index.html;

68

Page 69: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Exercício• Etapa 3 – Criação do script checa_login.php

O script deverá inicialmente receber o login e senha submetidos na etapa anterior e checar se o login e a senha estão corretos; Considere que o login padrão do sistema seja aula e a senha seja

php; Caso o usuário tenha o acesso confirmado, o script deverá

criar a variável de sessão logou, atribuindo a mesma o valor 1;

Caso contrário, o script deverá atribuir o valor 0 para a variável de sessão logou;

Logo em seguida, o script deverá redirecionar o usuário para o script principal.php (pesquise uma função para isso);

69

Page 70: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Exercício

• Etapa 4 – Criação do script principal.php na pasta sessoes

– O script deverá checar se o usuário tem permissão para acessá-lo (checar se a variável de sessão logou é igual a 1) ;

– Caso o usuário tenha permissão, o script deverá exibir uma imagem (escolha uma imagem de sua preferência);

– Caso contrário, o script deverá redirecionar o usuário para a página index.html;

70

Page 71: Desenvolvimento Web com PHP (Aula 1) - Pós Graduação em Desenvolvimento Web - UNIPÊ

Exercício

• Etapa 5 – Testar a aplicação

Abra o navegador de sua preferência e acesse: http://localhost/sessoes ou http://127.0.0.1/sessoes

OBS.: Verifique se o servidor Apache do Xampp está ativo! Tente acessar a página restrita;

71