Upload
thyago-maia
View
569
Download
0
Embed Size (px)
Citation preview
Desenvolvimento Web com PHP
Pós-Graduação em Desenvolvimento Web
Apresentação
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
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
Apresentação
• Referência Bibliográfica
PHP – Programando com Orientação a Objetos
Autor: Pablo Dall’Oglio
Editora: Novatec
5
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
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
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
Manipulação de Arquivos em PHP
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
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)
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!”;
?>
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
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)
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
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);?>
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
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);?>
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
Manipulação de Arquivos
file_put_contents – Exemplo:
20
<?php
file_put_contents(“arquivos/arquivo.txt”,“Sport \n Campeão de 87”);
?>
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
Manipulação de Arquivos
file_get_contents – Exemplo:
22
<?php
echo file_get_contents(“arquivos/arquivo.txt”);?>
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
Manipulação de Arquivos
file – Exemplo:
24
<?php
$arquivo = file(“arquivos/arquivo.txt”);
echo $arquivo[0];echo $arquivo[1];
?>
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
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”;
?>
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
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”;
?>
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
Manipulação de Arquivos
unlink – Exemplo:
30
<?php
$arquivo = “arquivos/copia.txt”;
if(unlink($arquivo))echo “Arquivo apagado”;
elseecho “Arquivo não apagado”;
?>
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
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”;
?>
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
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”;
?>
Manipulação de Diretórios em PHP
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
Exercício – Registro de log de acesso
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
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
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
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
Cookies
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;
Criando um Cookie
Criando um Cookie
• A função setcookie() é utilizada para setar um cookie;
45
<?php
setcookie(nome, valor, expira, path, domain);
// corpo do script
?>
Criando um Cookie
• Exemplo:
46
<?php
setcookie(“usuario”, “Maria”, time()+3600);
// corpo do script
?>
Obtendo o Valor de um Cookie
Obtendo o Valor de um Cookie
• A variável $_COOKIE é utilizada para receber o valor de um Cookie. Exemplo:
48
<?php
echo $_COOKIE[“usuario”];
?>
Excluindo um Cookie
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);
?>
Exercício
Exercício
• Etapa 1 – Preparação do Domínio
Crie uma pasta em htdocs chamada cookies;
52
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
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
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
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
Variáveis de Sessão
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;
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;
Iniciando uma Sessão PHP
Iniciando uma Sessão PHP
• Antes de armazenar informações de sessão, você deverá iniciá-la;
61
<?php
session_start();
// corpo do script
?>
Criando uma Variável de Sessão
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;
?>
Excluindo uma Sessão
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();
?>
Exercício
Exercício
• Etapa 1 – Preparação do Domínio
Crie uma pasta em htdocs chamada sessoes;
67
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
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
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
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