100% acharam este documento útil (1 voto)
787 visualizações182 páginas

PHP Com Banco de Dados PDF

O documento discute a linguagem PHP, incluindo sua introdução, história e como enviar dados para servidores HTTP usando os métodos GET e POST. Ele também discute ambientes de desenvolvimento PHP.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
100% acharam este documento útil (1 voto)
787 visualizações182 páginas

PHP Com Banco de Dados PDF

O documento discute a linguagem PHP, incluindo sua introdução, história e como enviar dados para servidores HTTP usando os métodos GET e POST. Ele também discute ambientes de desenvolvimento PHP.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 182

PHP COM BANCO DE DADOS

2
Centro de Educação à Distância do Ceará - CED

Consultor:
Renanh Gonçalves de Araujo

Coordenadores:
João Paulo de Oliveira Lima
Juliana Maria Jales Barbosa
Liane Coe Girão Cartaxo
Moribe Gomes de Alcântara
Valbert Oliveira Costa

PHP com Banco de Dados 3


Centro de Educação à Distância do Ceará - CED

PARTE I - LINGUAGEM PHP

PHP com Banco de Dados 4


Centro de Educação à Distância do Ceará - CED

1. Introdução ao PHP
1.1. PHP –Introdução.
PHP é uma sigla que significa PHP HyperText Preprocessor. O PHP é uma
linguagem de código-fonte aberta, muito utilizada na Internet e especialmente
criada para o desenvolvimento de aplicativos Web, possibilitando uma
interação com o usuário através de formulários, parâmetros da URL e links.
A diferença de scripts CGI escritos em outras linguagens como Perl ou C é que
ao invés de escrever um programa com um monte de instruções para imprimir
HTML, você escreve um arquivo HTML com algum código inserido, por
exemplo, imprimir um texto. O código PHP é delimitado por tags iniciais e finais
que lhe permitem pular pra dentro e pra fora do “modo
PHP”, como vemos abaixo:

<?php
?>
Figura 1 - Tag inicial
do PHP

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<?php

?>
</body>
</html>

Figura 2 - Tag PHP dentro do HTML

Podemos escrever script em PHP dentro da estrutura HTML ou com as


instruções do PHP puro, para escrevermos iremos utilizar um editor, mais qual?

PHP com Banco de Dados 5


Centro de Educação à Distância do Ceará - CED

Podemos utilizar qualquer um dos editores que conhecemos no inicio da


disciplina, ou outro de sua preferência.

Para testar scripts PHP é necessário um servidor com suporte a esta


tecnologia, Normalmente, o mais utilizado é o Apache. O banco de dados mais
utilizado com os scripts PHP é o MySQL, alem deste a linguagem tem suporte
a um grande número de bancos de dados, como dBase, Interbase, MS-SQL
Server, Oracle, Sybase, PostgreSQL e vários outros, com relação a PHP e a
banco de dados será abordado no próximo semestre onde faremos a
integração da linguagem e o banco de dados. Além do suporte a banco de
dados podemos trabalhar com outros serviços através de protocolos tais como
IMAP, SNMP, NNTP, POP3 e principalmente HTTP Ainda é possível abrir
sockets e interagir com outros protocolos.
Com relação ao ambiente para desenvolver script em PHP veremos mais
adiante em ambiente de desenvolvimento em PHP.

História da Linguagem PHP

A linguagem PHP foi desenvolvida durante o outono de 1994 por Rasmus


Lerdorf. As primeiras versões não foram disponibilizadas, tendo sido utilizadas
em sua home-page apenas para que ele pudesse ter informações sobre as
visitas que estavam sendo feitas. A primeira versão utilizada por outras
pessoas foi disponibilizada em 1995, e ficou conhecida como “Personal Home
Page Tools” (ferramentas para página pessoal). Era composta por um sistema
bastante simples que interpretava alguns macros e alguns utilitários que
rodavam “por trás” das home-pages: um livro de visitas, um contador e
algumas outras coisas.

Em meados de 1995 o interpretador foi reescrito, e ganhou o nome de PHP/FI,


o “FI” veio de outro pacote escrito por Rasmus que interpretava dados de
formulários HTML (Form Interpreter). Ele combinou os scripts do pacote
Personal Home Page Tools com o FI e adicionou suporte a mySQL, nascendo
assim o PHP/FI, que cresceu bastante, e as pessoas passaram a contribuir
com o projeto.

O interpretador foi reescrito por Zeev Suraski e Andi Gutmans, e esse novo
interpretador foi a base para a versão 3, chamada de “PHP: Hypertext
Preprocessor”.

O lançamento do PHP4, ocorrido no ano 2000, trouxe muitas novidades aos


programadores de PHP. Uma das principais foi o suporte a sessões, bastante
útil pra identificar o cliente que solicitou determinada informação.

A versão mais nova da linguagem é PHP 5, que da suporte a orientação a


objetos, o PHP não é uma linguagem orientada a objetos e sim da suporte a
orientação a objetos.

PHP com Banco de Dados 6


Centro de Educação à Distância do Ceará - CED

1.2. Enviando Dados para o Servidor HTTP


Desenvolver para web consiste basicamente em receber dados de usuário
processá-los e enviar a resposta dinâmica, após ser enviada ao servidor onde
ficam armazenadas as páginas em PHP e outras linguagens web é encerrado o
contato entre o servidor e o cliente. Vamos aprender um pouco mais de como
funciona, o que precisaremos para montar nosso servidor e testar as páginas
em PHP que iremos escrever.

Figura 3 - Enviando dados ao servidor

1. O protocolo HTTP/HTTPS provê dois principais métodos para enviar


informações para o servidor web, além da URL referente ao arquivo
solicitado. Esses métodos são o POST e o GET, o usuário através do
formulário faz a requisição ao servidor como vemos na imagem acima.
2. O servidor que tem suporte ao PHP vai neste ponto interpretar o script
PHP que veio na requisição.

3. Após o script PHP ser interpretado, o que foi solicitado na requisição vai
ser processado, a requisição pode ser uma interação como o banco de
dados, com um arquivo ou o envio de um email, ou ate mesmo estas
operações ao mesmo tempo.

4. O resultado em HTML será enviado ao servidor.

PHP com Banco de Dados 7


Centro de Educação à Distância do Ceará - CED

5. O servidor por vez sua monta a resposta e apresenta ao usuário no


navegador em HTML.

O método GET

O protocolo HTTP utiliza a definição do método GET, utilizado pelo browser


para solicitar um documento específico.

Por exemplo: a seguinte requisição HTTP retornaria o documento "index.html",


localizado no diretório do servidor chamado “meusite”:

GET /meusite/index.html CRLF

Ao observar a requisição GET inicia com a palavra GET, inclui o documento


solicitado e encerra com a combinação dos caracteres carriage return e line
feed (CRLF).

Vamos entender melhor, você pode fazer uma requisição GET conectando
diretamente em algum servidor WEB, conectando através de um programa
chamado telnet, geralmente o servidor HTTP utiliza a porta 80. A resposta será
o código da página solicitada, como vemos abaixo.

telnet www.guia-aju.com.br 80
Trying 200.241.59.16...
Connected to www.guia-aju.com.br.
Escape character is '^]'.
GET /index.php3
(... página solicitada ...)
Connection closed by foreign host.

No caso do browser é ele que trata as informações recebidas e exibe a página


já formatada.

Com o método GET também é possível passar parâmetros da requisição ao


servidor, que pode tratar esses valores e até alterar a resposta a depender
deles, como no exemplo abaixo:

telnet www.guia-aju.com.br 80
Trying 200.241.59.16...
Connected to www.guia-aju.com.br.
Escape character is '^]'.
GET /index.php3?id=0024horas&tipo=Taxi
(... página solicitada ...)
Connection closed by foreign host.

PHP com Banco de Dados 8


Centro de Educação à Distância do Ceará - CED

No exemplo são passados dois parâmetros: id e tipo. Esses parâmetros estão


no formato conhecido por URLencode.

Agora já sabemos que podemos passar parâmetros utilizando o método GET, e


com isso gerar páginas dinamicamente, porem este método tem pelo menos
dois pontos que em determinadas circunstâncias devem ser analisados
conforme a aplicação web que se esta desenvolvendo:

1º O método GET permite uma quantidade de dados passados


limitada a 1024 caracteres, o que pode gerar perda de informações
em certos casos.

2º É pelo fato de que as informações fazem parte da URL, todos os


dados podem ser vistos pelo usuário. Isso pode ser extremamente
perigoso quando informações sigilosas estão envolvidas, por
exemplo, senhas.

O método POST
É usado quando queremos enviar dados a serem gravados em um banco de
dados ou uma pesquisa cujos dados sejam grandes o suficiente para não caber
na URL da página.

Uma conexão ao servidor HTTP utilizando o método POST seria algo


semelhante ao que segue:

telnet www.guia-aju.com.br 80
Trying 200.241.59.16...
Connected to www.guia-aju.com.br.
Escape character is '^]'.
POST /index.php3
Accept */*
Content-type: application/x-www-form-urlencoded
Content-length:22
id=0024horas&tipo=Taxi
(... página solicitada ...)
Connection closed by foreign host.

Ambiente de desenvolvimento em PHP.

Agora que já sabemos como funciona a comunicação entre o servidor e o


cliente, em um servidor web vamos implementar um servidor web para testar
nossas aplicações, abaixo temos nossas opções que podem ser utilizadas
neste manual, apresentaremos três porem existem outras que não serão
abordadas.

PHP com Banco de Dados 9


Centro de Educação à Distância do Ceará - CED

Pacotes prontos para execução de um ambiente Apache + PHP + MySQL.

As páginas PHP devem ser salvas no diretório raiz do servidor. Para testes
locais deve-se abrir o browser de internet, acessar a URL com o endereço local
(http://127.0.0.1) ou nome do domínio (http://localhost/), se na sua maquina
possuir um servidor web instalado será exibido uma pagina, caso contrario será
exibido um página de erro, informando que não conseguiu estabelecer uma
conexão com o servidor.

Abaixo vamos conhecer os pacotes prontos para execução do ambiente.

EasyPHP
EasyPHP é Ferramenta para web que simula um servidor um pacote pronto
para execução de um ambiente Apache + PHP + MySQL, pode ser baixado no
link http://www.easyphp.org, o diretório raiz para testar o seu projeto é
c:\Arquivos de programas\EasyPHP\www. Para acessar a página, deve-se
abrir o browser de Internet e digitar-se o nome do domínio (http://127.0.0.1) e o
nome da página com extensão *.php. Quando o EasyPHP está sendo
executado, aparece um ícone com uma letra “e” ao lado do relógio do
Windows.

Wamp Server

Wamp Server é um ambiente de desenvolvimento web para Windows,


permitindo que você tenha um ambiente Apache + PHP + MySQL, para instalar
primeiramente teremos que fazer o download no site
http://www.wampserver.com/en/, o Diretório raiz do servidor para testar as
páginas encontra-se em c:\Arquivos de programas\wamp\www, este
caminho é utilizado na instalação padrão.

PHP com Banco de Dados 10


Centro de Educação à Distância do Ceará - CED

No Linux podemos utilizar o Xampp que é um pacote de instalação do


ambiente Apache + PHP + MySQL, podendo fazer o download no link
http://www.apachefriends.org/en/xampp-linux.html.

No Linux podemos instalar separadamente o apache, php e o mysql com o


comando apt-get via terminal.

Outra solução em pacote de instalação é o LAMP – Linux- Apache –MySql-


PHP, para instalar basta abrir um terminal e digitar sudo apt-get install lamp-
server^.

No Linux o diretório raiz do servidor apache é em var/www, todos os seus


diretórios de sites podem ser colocado neste diretório, depois é só chamar via
navegador.

Exemplo de Script PHP


Para criar o primeiro exemplo, digite o código-fonte abaixo no seu editor e salve
com o nome de teste.php dentro do diretório raiz do seu servidor.

<?php
phpinfo();
?>

A função phpinfo(), exibe uma tabela contendo todas as constantes pré-


definidas, assim como configurações da máquina, sistema operacional,
servidor http e versão do PHP instalada.
Agora que já temos que organizar a nossa estrutura de diretório dos nossos
sites, então vamos a uma dica muito importante, ao criar o diretório do seu site
é aconselhável criar alguns diretórios, abaixo temos um exemplo de uma
estrutura de diretórios que iremos adotar.

meusite: Diretório do seu site, este é o raiz do seu site.


css: Neste vamos armazenar as nossas folhas de estilo.

PHP com Banco de Dados 11


Centro de Educação à Distância do Ceará - CED

images: Aqui iremos colocar as imagens que utilizaremos em


nossos projetos.
jquery: Neste diretório vamos armazenar todos os scripts da
biblioteca jquery, que será usado nas próximas aulas.
js: Este diretório será o local onde vamos guardar os script que
iremos desenvolver na próximas aulas.

PHP com Banco de Dados 12


Centro de Educação à Distância do Ceará - CED

1.3. PHP – Variáveis


Em PHP também utilizamos variáveis, porem é diferente de como fazíamos em
lógica de programação, onde aqui não precisamos declarar o tipo da variável,
vamos ver como declaramos uma variável em PHP, na imagem abaixo.

Figura 4 - Declaração de Variáveis

Na linha 20 usamos o echo para escrever em uma página, podendo ser


passado texto e variáveis como observaram separados por vírgulas, com ele
também é possível atribuir tags HTML dentro das aspas simples.
As variáveis podem ser globais onde podemos ter acesso à mesma em
qualquer parte do código, ou serem declaradas dentro de uma função, sendo
que se a variável for declarada dentro de uma função ela só estará disponível
dentro deste trecho de código.

Apesar de não precisarmos declarar o tipo de variável o PHP suporta vários


tipos de dados:
Inteiro – Números inteiros (isto é, números sem ponto decimal).
Números de dupla precisão – Números reais (isto é, números que contêm um
ponto decimal).
String – Texto entre aspas simples (´ ´) ou duplas (“ “).
Booleanos – armazenam valores verdadeiros ou falsos, usados em testes de
condições.
Array – Grupo de elementos do mesmo tipo.
Objeto – Grupo de atributos e métodos.
Recurso – Uma origem de dados externa.
Nulo – Nenhum valor.

Constantes
São identificadores para valores simples. O seu conteúdo não muda
durante a execução do código. Para declararmos utilizamos a função define e,
por convenção, são escritas com letras maiúsculas e não usam o cifrão no
início.

Declaração de uma constante

PHP com Banco de Dados 13


Centro de Educação à Distância do Ceará - CED

Figura 5 - Exemplo de uma constante

As variáveis não podem ter o mesmo nome de instruções do PHP, que são
chamadas de palavras chaves, abaixo uma tabela com as palavras chaves.

Palavras-chave do PHP

and do for default include require true


break else foreach list virtual return var
case extends elseif function new class static

global not switch xor continue false if

or while this

1.4. PHP – Operadores


São usados para efetuarem operações sobre as variáveis e constantes. Os tipos
de operadores do PHP são:

Operadores Matemáticos ou aritméticos


Operadores de Comparação
Operadores Lógicos
Operadores de Atribuição

1.4.1. Operadores Matemáticos


São utilizados quando os operandos são números (integer ou float). Caso
sejam de outro tipo, terão seus valores convertidos antes da realização da
operação.
Operador Nome
+ Adição
- Subtração
* Multiplicação
/ Divisão
% Módulo ou resto da divisão

Exemplo:

PHP com Banco de Dados 14


Centro de Educação à Distância do Ceará - CED

Incremento e Decremento
No caso de string só há um operador exclusivo:
++ Incremento
-- Decremento

Podem ser utilizados: antes ou depois da variável. Quando utilizado antes,


retorna o valor da variável antes de incrementá-la ou decrementá-la. Quando
utilizado depois, retorna o valor da variável já incrementado ou decrementado.
Exemplo:

Concatenação:
No caso de string só há um operador exclusivo:
. Concatenação

PHP com Banco de Dados 15


Centro de Educação à Distância do Ceará - CED

1.4.2. Operadores de Comparação


As comparações são feitas entre os valores contidos nas variáveis,
observamos durante o curso que a lógica dos operadores é a mesma, o que
esta mudando à medida que avançamos no curso o que muda em alguns
casos é a sintaxe da linguagem, os operadores de comparação sempre
retornam um valor booleano.

Operador Nome Exemplo Resultado


== Igual $a == $b Verdadeiro se $a for igual a $b
!= Diferente $a != $b Verdadeiro se $a não for igual a $b
<> Diferente $a <> $b Verdadeiro se $a não for igual a $b
=== Idêntico $a === $b Verdadeiro se $a for igual a $b e for do
mesmo tipo.
!== Não $a !== $b Verdadeiro se $a não for igual a $b, ou
idêntico eles não são do mesmo tipo.
< Menor $a < $b Verdadeiro se $a for menor que $b
que
> Maior $a > $b Verdadeiro se $a for maior que $b
que
<= Menor $a <= $b Verdadeiro se $a for menor ou igual a $b.
ou igual
>= Maior ou $a >= $b Verdadeiro se $a for maior ou igual a $b.
igual

1.4.3. Operadores Lógicos


Os operadores lógicos são utilizados para combinar expressões lógicas entre
si, realizando testes condicionais.
Operador Nome Exemplo Resultado
AND E ( 10 > 7 ) AND ( 9 == 9 Verdadeiro se 10 for maior
) que 7 e 9 for igual a 9
OR Ou ( 10 > 7 ) OR ( 9 == 9 ) Verdadeiro se 10 for maior
que 7 ou 9 for igual a 9
XOR Ou ( 10 > 7 ) XOR ( 9 == 9 Verdadeiro se 10 for maior
exclusivo ) que 7 ou 9 for igual a 9, mais
não se ambos forem
verdadeiro
! Negação ! ( 10 > 7 ) Verdadeiro se 10 for menor
que 7
&& E ( 10 > 7 ) && ( 9 == 9 ) Verdadeiro se 10 for maior
que 7 e 9 for igual a 9
|| Ou ( 10 > 7 ) || ( 9 == 9 ) Verdadeiro se 10 for maior
que 7 ou 9 for igual a 9

1.4.4.

PHP com Banco de Dados 16


Centro de Educação à Distância do Ceará - CED

1.4.5. Operadores de Atribuição


Existe um operador básico de atribuição (=) e diversos derivados. Sempre
retornam o valor atribuído. No caso dos operadores derivados de atribuição, a
operação é feita entre os dois operandos, sendo atribuído o resultado para o
primeiro. A atribuição é sempre por valor, e não por referência, abaixo tabela
com os operadores.
Operador Descrição
= Atribuição simples
+= Atribuição com adição
-= Atribuição com subtração
*= Atribuição com multiplicação
/= Atribuição com divisão
%= Atribuição com módulo
.= Atribuição com concatenação

Precedência de operadores

A tabela seguinte mostra a precedência dos operadores, da maior precedência


no começo para os de menor precedência de operadores.

Operador Descrição
- ! ++ -- Negativo, negação, incremento e decremento
*/% Multiplicação, divisão e resto da divisão
+-. Adição, subtração e concatenação
> < >= <= Maior que, menor que, maior ou igual e menor ou igual
== != <> Igual e diferente
&& E
|| Ou
= += -= *= /= %= Operadores de atribuição
AND E com menor prioridade
XOR Ou exclusivo
OR Ou com menor prioridade

PHP com Banco de Dados 17


Centro de Educação à Distância do Ceará - CED

Comentários de código
É muito importante documentar o código, o código bem documentado auxilia
bastante na hora de uma manutenção, ou em um trabalho de equipe.
Comentários de uma linha:
Marca como comentário até o final da linha ou até o final do bloco de código
PHP – o que vier antes. Pode ser delimitado pelo caractere “#” ou por duas
barras “//”.

Exemplo 1:

Comentários de mais de uma linha:

Temos como delimitadores os caracteres “/*” para o início do bloco e “*/” para
o final do comentário.

Exemplo 2:

1.4.6. Operadores (Média Aritmética).


Nesta aula vamos criar um script em PHP para calcular a média aritmética, o
mesmo vai receber duas notas recebidas do formulário HTML e irá retornar a
sua média.
Para esta prática crie uma página web com a extensão *.php, esta página deve
conter os elementos iguais a página abaixo;

Observe que na linha 8 dentro da tag <form> definimos o método post para
enviar as informações, e no action o script PHP que será responsável pelo

PHP com Banco de Dados 18


Centro de Educação à Distância do Ceará - CED

calculo da média, então temos 2 arquivos um responsável pela apresentação


ao usuário e outro para calcular.

Agora vamos codificar o script


calc_media.php.

Entendo o Script:
Na linha 3: usamos uma função
própria do PHP o require, ele é
responsável por requerer ou retornar
um script, neste exemplo usamos
para a mensagem que esta na linha 7 seja escrita no formulário de
apresentação, como é mostrado na imagem seguinte, sem esta instrução
quando o script fosse executado o retorno seria apenas a mensagem dentro do
calc_media.php.
Nas Linhas 4 e 5: Estamos declarando as variáveis que vão receber os
valores passados pelo formulário, onde elas recebem através $_POST, np1 e
np2 são os nomes dos inputs do formulário, que os valores dos mesmos estão
sendo passados para as variáveis $np1 e $np2.
Quando definimos $_POST estamos dizendo que os dados do formulário estão
sendo passados através deste método, logo se no <form> do meu formulário
esta method="post" para receber o post no outro script uso $_POST.
Na linha 6: Realiza-se o calculo $media = ($np1 + $np2) / 2, que na linha 7 é
passado para ser devolvido a página que foi solicitada.
Abaixo vemos o resultado final desta prática.

PHP com Banco de Dados 19


Centro de Educação à Distância do Ceará - CED

Exercício Prático

Agora vamos praticar um pouco, abaixo temos duas situações, para cada
uma delas temos que criar formulários web e scripts ao final exibir o
resultado ao usuário. Obs.: Lembre-se que teremos um formulário em PHP
para receber os dados e um script em PHP para os cálculos.

1) Crie um formulário na web que leia o nome de um vendedor, o seu salário


fixo e o total de vendas efetuadas por ele no mês (em dinheiro). Sabendo
que este vendedor ganha 15% de comissão sobre suas vendas efetuadas,
depois de receber estes dados informar o seu nome, o salário fixo e o
salário no final do mês.

2) O Sr. João necessita saber o consumo médio de um automóvel, e solicitou


para você desenvolver uma página web que sendo fornecida a distância
total percorrida pelo automóvel e o total de combustível gasto, mostrar o
consumo do automóvel. (formula Distância /combustível).

PHP com Banco de Dados 20


Centro de Educação à Distância do Ceará - CED

1.5. PHP - Estruturas de Controle.


As estruturas que veremos a seguir são comuns para as linguagens de
programação, iremos observar que a estrutura lógica é a mesma que vimos em
lógica de programação, bastando, portanto, descrever a sintaxe de cada uma
delas, resumindo o funcionamento, abaixo tem alguns exemplos de cada uma
dessas estruturas de controle.
Um bloco consiste de vários comandos agrupados com o objetivo de relacioná-
los com determinado comando ou função. Em comandos como if, for, while,
switch e em declarações de funções os blocos podem ser utilizados para
permitir que um comando faça parte do contexto desejado.
Os blocos em PHP são delimitados pelos caracteres “{” e “}”, assim como na
linguagem Java que iniciamos na disciplina de lógica de programação. A
utilização dos delimitadores de bloco em uma parte qualquer do código não
relacionada com os comandos citados ou funções não produzirá efeito algum,
e será tratada normalmente pelo interpretador.

1.5.1. Estrutura Condicional (if ).


Ele testa a condição e executa o comando indicado se o resultado for
verdadeiro (true). Abaixo veremos os exemplos em PHP:

Exemplo 1; Exemplo da instrução IF em PHP.

O else é um complemento opcional para o if. Se utilizado, o comando será


executado se a expressão retornar o valor falso. Veja o exemplo abaixo:

Exemplo 2; Exemplo da instrução IF /ELSE em PHP.

Exemplo 3; Exemplo da instrução ELSE IF encadeado.


ELSE IF. Ele tem a mesma
função de um ELSE e um IF
usados sequencialmente, como
no exemplo ao lado. Num
mesmo IF podem ser utilizados
diversos ELSEIF’s, ficando
essa utilização a critério do
programador.

PHP com Banco de Dados 21


Centro de Educação à Distância do Ceará - CED

1.5.2. Estrutura Condicional (switch ).

A instrução switch atua de maneira semelhante a uma série de comandos if na


mesma expressão. É utilizado quando se deseja comparar uma variável com
diversos valores, e executar um código diferente dependendo de qual valor é
igual ao da variável.
Quando isso for necessário, deve-se usar o comando switch. O exemplo abaixo
mostra a sua utilização.
Em outras linguagens que implementam o comando switch, ou similar, os
valores a serem testados só podem ser do tipo inteiro. Em PHP é permitido
usar valores do tipo string como elementos de teste do comando switch.

Exemplo 1; Neste exemplo é declarado à variável $d que vai receber a data do


navegador, na linha
16 é passado
somente o dia
usando um array,
com relação à array
iremos estudar sobre
este assunto nas
próximas aulas, após
obter o dia em
formato numérico vai
ser feita a
comparação com os
cases, o array é o
vetor que
conhecemos em lógica de programação, então como já sabemos ele inicia em
0. Por isso que o domingo tem o valor 0, pois domingo é o primeiro dia da
semana.

PHP com Banco de Dados 22


Centro de Educação à Distância do Ceará - CED

1.5.3. Estrutura de Loop (for ).


Esta estrutura de loop já é uma velha conhecida nossa, é basicamente é
composta de três pontos principais ou sentenças separadas por ponto e
vírgula.

1. Inicialização: Deve conter a variável que inicia o laço.


2. Condição: Expressão booleana que define se os comandos que estão
dentro do laço serão executados ou não. Enquanto a expressão for
verdadeira os comandos serão executados.
3. Incremento: Executado ao final de cada execução do laço.

Exemplo 01: Neste exemplo foi criado um contador simples de 1 a 10.

FOREACH
É um laço de repetição para interações em arrays, é um for de forma
simplificado, ele decompõe o vetor ou matriz em cada um de seus elementos
por meio da cláusula AS, veremos exemplos de sua aplicação na aula de
arrays.
Sua sintaxe é;
$array será o nome do array.
as $valor esta passando os valores do array
foreach ($array) as para a variável $valor, as instruções podem
$valor) { ser por exemplo, um echo ou print, para
instruções exibir na página o resultado.
} Tudo que esta entre as chaves as instruções
serão repetidas o numero de vezes das
posições do vetor.

PHP com Banco de Dados 23


Centro de Educação à Distância do Ceará - CED

1.5.4. Estrutura de Loop (while ).


É o comando de repetição (laço) mais simples. Ele testa uma condição e
executa um comando, ou um bloco de comandos, enquanto a condição for
verdadeira.

Exemplo: O exemplo abaixo mostra o uso do while para imprimir de 1 até 9.

do... while
O laço do...while funciona de maneira bastante semelhante ao while, com a
simples diferença que a expressão é testada ao final do bloco de comandos.
Abaixo temos um exemplo usando o do while.

Exemplo: Neste exemplo abaixo usamos o do while para escrever de 9 a 10,


decrementando a cada passo do laço.

PHP com Banco de Dados 24


Centro de Educação à Distância do Ceará - CED

Exercício Prático

1) Construir um programa em PHP que solicite que um valor inteiro seja


digitado e imprima o quadrado do valor digitado se este valor for maior
do que 50.

2) Construir um programa em PHP que peça para que um valor inteiro e


positivo seja digitado e imprima/escreva uma mensagem informando se
este número é par ou não.

3) Construir um programa em PHP que leia cinco valores inteiros e calcule


a média aritmética desses cinco valores. Imprimir a média calculada com
a mensagem: “A média calculada é:”

4) Construir um programa em PHP que leia as notas de AV1, AV2 e AV3


de um aluno e imprima a média calculada, com a mensagem pertinente,
ou seja, se o aluno foi aprovado, está em prova final ou foi reprovado.

5) Construir um programa em PHP que simule uma máquina de calcular e


execute as quatro operações sobre os dois números digitados.

PHP com Banco de Dados 25


Centro de Educação à Distância do Ceará - CED

1.6. PHP – Definição de Funções.


Uma função é um bloco de código reutilizável que é executado devido a um
evento ou pela chamada de outra função. Deve-se usar a declaração function
para criar uma função.
Os parâmetros usados pela função são declarados entre parênteses. Os
comandos a serem executados pela função devem estar entre chaves.

A sintaxe básica para definir uma função é:

function nome_da_função() {
Comandos;
}
Figura 6 - Sintaxe de uma função

Exemplo: No código abaixo temos a declaração de uma função chamada msn(


) que escreve um texto, na linha 21 esta função é chamada.

A declaração return
A declaração return retorna um valor quando a função é chamada. Esta
declaração não é necessária se a função não retorna nenhum valor.
Para se chamar uma função, deve-se escrever seu nome e indicar os
parâmetros entre parênteses, abaixo a sintaxe de uma função com return que
pode ter ou não argumentos.

function nome_da_função([arg1, arg2, arg3]) {


Comandos;

[return <valor de retorno>];


}
Toda função pode opcionalmente retornar um valor, ou simplesmente executar
os comandos e não retornar valor algum. Uma função não pode retornar mais
de um valor, mas é permitido fazer com que uma função retorne um valor
composto, como listas ou arrays.

Exemplo: Função que retorna o


resultado de uma soma, na linha 28

PHP com Banco de Dados 26


Centro de Educação à Distância do Ceará - CED

é feita a chamada do método para imprimir o resultado da soma.

Argumentos

É possível passar argumentos para uma função. Eles devem ser declarados
logo após o nome da função, entre parênteses, e tornam-se variáveis
pertencentes ao escopo local da função. A declaração do tipo de cada
argumento é utilizada apenas para efeito de documentação.

function nome_da_função([arg1,arg2,arg3]){
Comandos;
}

Exemplo: A função imprime foi declarada, onde a mesma recebe como


argumento a variável $texto, na linha 7 é feita a chamada da função onde é
passado o texto para a função imprimir.

Passagem de parâmetros por referência

Normalmente, a passagem de parâmetros em PHP é feita por valor, ou seja, se o


conteúdo da variável for alterado, essa alteração não afeta a variável original.

Exemplo:

No exemplo, como a passagem


de parâmetros é por valor, a
função mais5 é inútil, já que
após a execução sai da função
o valor anterior da variável é
recuperado. Se a passagem de
valor fosse feita por referência,
a variável $a teria 8 como valor.
O que ocorre normalmente é
que ao ser chamada uma
função, o interpretador salva
todo o escopo atual, ou seja, os

PHP com Banco de Dados 27


Centro de Educação à Distância do Ceará - CED

conteúdos das variáveis. Se uma dessas variáveis for passada como


parâmetro, seu conteúdo fica preservado, pois a função irá trabalhar na
verdade com uma cópia da variável. Porém, se a passagem de parâmetros for
feita por referência, toda alteração que a função realizar no valor passado
como parâmetro afetará a variável que o contém.

Há duas formas de fazer com que uma função tenha parâmetros passados por
referência: indicando isso na declaração da função, o que faz com que a
passagem de parâmetros sempre seja assim; e também na própria chamada
da função. Nos dois casos utiliza-se o modificador "&". Vejamos um exemplo
que ilustra os dois casos:

Argumentos com valores pré-definidos (default)

Em PHP é possível ter valores default para argumentos de funções, ou seja,


valores que serão assumidos em caso de nada ser passado no lugar do
argumento. Quando algum parâmetro é declarado desta maneira, a passagem
do mesmo na chamada da função torna-se opcional.

Quando a função tem mais de um


parâmetro, o que tem valor default deve ser
declarado por último.

Contexto
O contexto é o conjunto de variáveis e seus respectivos valores num
determinado ponto do programa. Na chamada de uma função, ao iniciar a

PHP com Banco de Dados 28


Centro de Educação à Distância do Ceará - CED

execução do bloco que contém a implementação da mesma é criado um novo


contexto, contendo as variáveis declaradas dentro do bloco, ou seja, todas as
variáveis utilizadas dentro daquele bloco serão eliminadas ao término da
execução da função.

Escopo
O escopo de uma variável em PHP define a porção do programa onde ela pode
ser utilizada. Na maioria dos casos todas as variáveis têm escopo global.
Entretanto, em funções definidas pelo usuário um escopo local é criado. Uma
variável de escopo global não pode ser utilizada no interior de uma função sem
que haja uma declaração.

PHP com Banco de Dados 29


Centro de Educação à Distância do Ceará - CED

1.7. PHP - Arrays.


Um array é uma variável que armazenam mais de um valor simultaneamente,
são como contêineres, servindo para armazenar números, strings, objetos,
dentre outros, de forma dinâmica, alem disso oferece muitas funções para
manipulá-los.

Os arrays são acessados por uma posição, como o índice numérico, para criar
um array, pode-se utilizar a função array, abaixo a sintaxe de criação do array.

array([chave=>] valor, ...)

Exemplo 1: neste exemplo na linha 14, estamos criando um array usando a


função array, criamos a variável $cores onde ela recebe a função array e
dentro dos parênteses passando os valores.
Nas linhas 15 a
21, exibimos os
valores do array o
que esta dentro de
[ ] é o índice do
array, então neste
array temos 4
posições iniciando
em 0 e vai até 3,
de 0 a 3 temos 4 elementos.

Exemplo 2: Agora neste exemplo criamos um array, mais já especificando o


índice que será usado, desta forma podemos
criar um array que não inicia em zero,
diferente da linguagem Java em que o índice
sempre vai iniciar em 0.

Arrays associativos
São chamados assim por possuírem uma chave de acesso para cada posição,
abaixo iremos criar um array associativo, para exemplificar sua utilização.

Exemplo 1: Neste exemplo


estamos criando um array,
definindo qual será sua
chave de acesso, isso

PHP com Banco de Dados 30


Centro de Educação à Distância do Ceará - CED

mesmo em PHP ao invés de ter como acesso ao array um numero inteiro,


posso definir o nome da chave de acesso, nas linhas 15 a 18 crio a variável
$frutas agora sem usar a função array, entre [ ] com aspas simples determino
o nome da chave de acesso, e depois é atribuído o valor para aquela chave.
Na linha 20: Estou usando uma estrutura de repetição chamada foreach, ele é
responsável por decompor o array em cada posição (índice), no caso como o
que esta dentro das chaves do foreach é uma instrução para imprimir na
página, isso vai fazer com que todas as posições do vetor ( array) seja
mostrado na página(linha 22).

Exemplo 2: Neste exemplo estamos fazendo um acesso ao array, os mesmos


podem ser acessados a qualquer momento e podem ser realizadas operações,
como no exemplo abaixo.
A função var_dump gera uma saída do array, exibindo tamanho, índices,
valores do array, como mostrado na imagem.

Figura 7 - resultado gerado pela função var_dump

Array multidimensional
São arrays que podem em algumas de suas posições conterem outro array de
forma recursiva, ele também pode ser criado pela função array().
No exemplo a seguir vamos criar um array multidimensional da tabela abaixo;

Modelo do carro Cor Potência Opcionais


($carros)

Palio Azul 1.0 Ar condicionado

Corsa Cinza 1.3 MP3

PHP com Banco de Dados 31


Centro de Educação à Distância do Ceará - CED

Gol Branco 1.0 Metálica

O nosso array vai se chamar $carros onde temos os modelos e suas


características, duas dimensões [ ] [ ].
Exemplo: Neste exemplo temos um array multidimensional, onde a variável
$carros é o nosso array, nele como podemos observar temos três chaves
(palio,Corsa,Gol)
e em cada chave
adiciono outras
que são
relacionadas as
características
do carro como
cor,potência e
opcionais e a
cada uma é
atribuído um
valor.
Para facilitar o
entendimento o
array
multidimensional
nada mais é que uma tabela com linhas e colunas, uma matriz
Na linha 24: Geramos uma saída porem o que vai ser mostrado na página
será o valor “Ar condicionado”.
Na linha 28 a 35: Temos um novo bloco PHP, onde usamos o foreach
encadeado, ou seja, um dentro do outro para exibir os modelos ($modelo)
de carros e suas características ($caracteristicas) e seus valores ($valor),
gerando a saída abaixo no navegador;

PHP com Banco de Dados 32


Centro de Educação à Distância do Ceará - CED

2. Introdução a Framework
JQuery
jQuery é uma poderosa biblioteca JavaScript criada para simplificar a criação
de efeitos visuais e de interatividade em web sites.
jQuery propicia a criação de scripts de uma forma tão simples e intuitiva que
consegue com meia dúzia de linhas os mesmos efeitos de um script de 30 a 40
linhas desenvolvido com JavaScript tradicional. Simplicidade foi à diretriz que
norteou John Resig na criação da biblioteca. (Silva)
Nesta etapa da disciplina, iremos trabalhar apresentando a biblioteca e um
estudo da sintaxe usando os seletores e comandos jQuery, iremos trabalhar
desenvolvendo praticas que chamaremos de laboratórios empregando vários
scripts, que poderão ser utilizados no desenvolvimento de web sites.

2.1. Instalação.
A instalação é bem simples basta fazer o download no site http://jquery.com/ e
depois fazer o download, você ira baixar um arquivo compactado descompacte-
o no diretório raiz do seu site.

Figura 8 - Site Jquery


Para utilizar a biblioteca basta chamarmos o script na tag <head>, como vemos
na imagem abaixo:

Iniciamos a tag <script> usamos o elemento src e passamos o caminho do


script Jquery que tem a extensão *.js, agora podemos acessar funções da
biblioteca.

PHP com Banco de Dados 33


Centro de Educação à Distância do Ceará - CED

jQuery UI (User Interface)é um conjunto de funções em um script e estilos CSS


com de interações de interface de usuário, efeitos, widgets, temas construídos
em cima da Biblioteca JavaScript jQuery, para baixar acesse o link
http://jqueryui.com/, coloque-o no mesmo diretório que o jquery, nas próximas
aulas desenvolveremos alguns exemplos com ele.

No link http://code.jquery.com/ podemos fazer o download de vários script de


projetos jquery.

Agora vamos a pratica o lema do Jquery que é escreva menos e faça mais, por
isso os temas das aulas a seguir são bem práticos.

2.2. Colunas e células de tabelas.


Nesta aula vamos trabalhar com tabelas, as páginas que vamos criar
usando o Jquery terão a extensão *.php, abaixo temos o resultado final desta
prática.

PHP com Banco de Dados 34


Centro de Educação à Distância do Ceará - CED

1º passo: É criar uma página com web com a extensão *.php, nela
poderemos trabalhar com HTML e PHP.

2º passo: Agora vamos criar a nossa folha de estilo, criaremos um novo


arquivo css chamado tabela.css para depois fazer um link com a página, abaixo
temos a imagem do arquivo *.css

Nesta parte do css, temos as


marcações das tag que serão
usadas no HTML.

Continuações do css, na linha 37


têm a cor de fundo que será
aplicada na tabela, para obter o
efeito cor sim cor não.

3º passo: Neste passo vamos chamar o css e o script Jquery na página


web.

PHP com Banco de Dados 35


Centro de Educação à Distância do Ceará - CED

Na tag <head> estamos chamado a folha de estilo na linha 10 que tem o


nome de tabela.css.

Na linha: 11 chamamos o script Jquery, que esta no diretório jquery.

4º passo: Escrever o script JavaScript que será executado quando o


documento for lido.

Linha 14: Nesta linha quando o documento for lido ($(document).ready) vai
ser acionado uma função que tem como objetivo adicionar a formatação do
atributo css table, que criamos anteriormente, na tabela chamada horario. De
forma a adicionar a class impar que vai aplicar o background:#add6ef, criado
no css, fazendo com que as linhas impares sejam adicionadas o background
definido.

5º passo: Estrutura HTML de nossa página, na tag <body> criamos a nossa


tabela, o id da tabela chama-se “horario” que faz referência ao script
criado anteriormente.

PHP com Banco de Dados 36


Centro de Educação à Distância do Ceará - CED

Na linha 26: Temos a tag <tr> com o id “horizontal” para identificar que esta é a linha
horizontal, o restante do código é apenas a estrutura da tabela em HTML a qual já
conhecemos.

Laboratório Tabela 2
Neste exemplo vamos adicionar um efeito de cores uma para cada linha,
e um evento hover para destacar a linha onde o mouse passar, o resultado
desta prática podemos visualizar na imagem abaixo.

1º passo: Vamos voltar em nosso arquivo css onde temos o estilo da tabela
anterior e adicionar a class .par com o background da linha par, a class
.destacar que mudará a cor quando o mouse passar na linha da tabela.

PHP com Banco de Dados 37


Centro de Educação à Distância do Ceará - CED

2º passo: Para este exemplo podemos apenas editar o script anterior


acrescentando, a class par, o evento hover como na linha 18.

Na linha 19 a 24: temos a função responsável por adicionar e remover a


class css, que será mostrado quando o ponteiro do mouse estiver sobre uma
linha ou sair da linha.
A estrutura HTML é a mesma do exemplo anterior, podendo apenas
adicionar este efeito.

2.3. Tooltips.
É como são chamadas as legendas, neste laboratório vamos aprender como
criar o efeito abaixo na legenda.

1º passo: Criar uma página em PHP como mostrado acima, com o campo
CPF e Data.
2º passo: Criar o script responsável por apresentar a legenda com o efeito.

PHP com Banco de Dados 38


Centro de Educação à Distância do Ceará - CED

Como estamos trabalhando com Jquery sempre temos que adicionar o script
Jquery.
Na linha 14: Como no exemplo anterior Iniciamos o script com o método ready
do documento carregando a função.

Na linha 15 a 20: criamos a class .dica com os atributos do css para


formatação do texto que será mostrado, onde o texto encontra-se na tag
<span>.

Na linha 22: Aciono o método focus e o blur chamando a função para


aplicar o efeito fadein e fadeout com o valor 1500, que vai gerar um
esmaecimento na entrada do foco no campo e na saída do campo.

3º passo: Na estrutura HTML da página na tag <span>, colocaremos o texto


da dica, na tag <input> vamos adicionar a class “dica” que foi criada no
script acima.

2.4. Accordion.
Neste laboratório vamos cria um accordion, que é este efeito sanfona entre
uma aba e outras, abaixo temos a imagem de como ficará este exemplo.

PHP com Banco de Dados 39


Centro de Educação à Distância do Ceará - CED

1º passo: Criar a folha de estilo com o nome accordion.css, nela vamos


colocar alguns efeitos personalizados.

Na linha 11:
Colocamos um ícone
chamado seta.png,
você pode baixar
algum na internet com
as dimensões 11x 7,
porem o código pode

ficar sem o ícone.


Abaixo temos a continuação da folha de estilo.

2º passo: Criar o script para o accordion, o script abaixo vai fazer a


interação com a folha de estilo aplicando os efeitos.

3º passo: Adicionar o estilo css e o script na página, não se esqueça de


incluir também o script do Jquery.

4º passo: Abaixo temos a estrutura HTML de nossa página na linha 18


adicionamos a class accordion2, que vem da folha de estilo criada no
inicio desta aula.

PHP com Banco de Dados 40


Centro de Educação à Distância do Ceará - CED

2.5. Datepicker.

Este widget apresenta um calendário quando o usuário coloca o foco no campo


de data, abaixo o resultado do nosso calendário.
Este exemplo é bem simples e pode ser
personalizado acessando o script
JqueryUI, nesta aula vamos utilizar o
JqueryUI que um complemento do Jquery,
trata especialmente da interface com o
usuário, e para o programador deixa o
trabalho bem mais simplificado.

PHP com Banco de Dados 41


Centro de Educação à Distância do Ceará - CED

1º passo: Adicionar scripts do Jquery e JqueryUI na linha 13 chamamos a


folha de estilo que vem com o JqueryUI quando é feito o donwload.

2º passo: Agora temos a penas que criar um script, para chamar o método
datepicker através do elemento #datepicker que será o id do elemento
HTML.

3º passo: Na estrutura HTML, precisamos apenas definir a partir de que


elemento vai ser chamado o calendário, bastando informar o id com o
mesmo nome do elemento criado no script anterior.

2.6. Auto-complete.
Neste laboratório vamos criar um campo com auto-complete nesta aula
também vamos utilizar o JqueryUI.

1º passo: Adicionar os scripts jquery.js e jqueryUI.js


e a folha de estilo jquery-ui.css.

PHP com Banco de Dados 42


Centro de Educação à Distância do Ceará - CED

2º passo: Criar o script para as palavras chaves, vamos criar uma função e
dentro dela criar um arrays com as
palavras chaves, na linha 15
declaramos a variável e atribuímos os
valores.

Na linha 35 ainda dentro da função criamos


o elemento #tags e chamamos a função
autocomplete passando para o source a
variável criada na linha 15.

3º passo: A estrutura HTML, nesta definimos a class da div ui-widget a


mesma vem da jqueryUI.
Depois na linha 46 definimos o id do input como tags referenciando com #tags
criado no código JavaScript acima.

2.7. Janela de dialogo modal.


Neste laboratório vamos aprender a criar uma janela de dialogo modal, este
tipo de janela abre sobre o conteúdo da sua página como um popup, o
resultado desta prática é apresentado abaixo.

PHP com Banco de Dados 43


Centro de Educação à Distância do Ceará - CED

1º passo: Adicionar script Jquery, JqueryUI e folha de estilo em nossa


página.

2º passo: Escrever o script responsável pela animação e estilo da janela.

Linha 16: Defini a velocidade da animação em ms.


Linha 17: Função que aplica o estilo “#dialog” e o efeito de abertura
show e o de fechamento hide.
Linha 24: definição de que evento vai dispara a janela, e em que
elemento “#opener” que é o id da tag <Button>.
3º passo: Na estrutura da página, linha 33 referenciou o id da div ao
atributo criado no script anterior.

Linha 35: Inserimos um trecho de código PHP com uma mensagem, só para
demonstrar que podemos entrar com instruções PHP.
Linha 39: referencio o id do button ao atributo #opener criado no JavaScript
acima.

PHP com Banco de Dados 44


Centro de Educação à Distância do Ceará - CED

2.8. Menu.
Nesta aula vamos criar um menu para o nosso site, na biblioteca JqueryUI,
podemos fazer um menu em pouco tempo já com um estilo predefinido, mais
podemos criar menus com outros estilos, em alguns sites oferecem vários
modelos de menu para download, para conferir acesse o site
http://apycom.com/.

Este exemplo vamos usar alguns estilos próprios do JqueryUI, o resultado


desta prática é mostrado abaixo.

1º passo: Adicionar os scripts e o estilo da JqueryUI

2º passo: Agora vamos criar o script para chamar o método menu(),


criamos o atributo #menu para ser aplicado a lista da estrutura HTML.

3º passo: Alterar uma propriedade do estilo jqueryui, para o menu ficar


projetado como a imagem acima.

PHP com Banco de Dados 45


Centro de Educação à Distância do Ceará - CED

4º passo: Estrutura HTML, definimos na tag <ul> o id=”menu” para


referenciar ao atributo #menu criado no JavaScript.
Na linha 25: Adicionamos a class ui-state-disable, para desabilitar este
item do menu, só para fins didáticos.

2.9. Abas.
Nesta aula vamos aprender a criar um painel tabulado, como o que vemos
abaixo.

PHP com Banco de Dados 46


Centro de Educação à Distância do Ceará - CED

1º passo: Adicionar scripts e estilo css da biblioteca Jquery.

2º passo: Script que cria o painel com as abas, criou-se uma função e
definimos um atributo #tabs que esta vinculado ao método tabs() do
jquery, o atributo vai ser usado na estrutura da página.

3º passo: Estrutura da página, nesta é criado uma div que representa o


painel onde estarão as abas.
Depois criamos uma <ul> onde cada lista vai chamar um atributo #tab-1, #tab-
2 e #tab-3, este que representa as div’s criadas da linha 26 a 43, dessa forma
junto com o JavaScript vai mostrar todos os títulos das abas, e quando um for
escolhida mostrará seu conteúdo.

PHP com Banco de Dados 47


Centro de Educação à Distância do Ceará - CED

PHP com Banco de Dados 48


Centro de Educação à Distância do Ceará - CED

2.10. jQuery Mobile na prática

Introdução

O jQuery Mobile é uma biblioteca JavaScript para criar aplicativos da web


móveis. Baseado no jQuery e em sua interface com o usuário (UI), com ela é
possível garantir aparência e comportamento consistentes em plataformas de
dispositivos móveis diferentes. Os recursos básicos do jQuery Mobile são:

Simplicidade e flexibilidade gerais.

O uso da estrutura é simples. É possível:

Desenvolver páginas usando marcação acionada com pouco ou


nenhum JavaScript.
Usar eventos e JavaScript avançado.
Usar um único documento HTML com várias páginas integradas.
Dividir o aplicativo em várias páginas.

Aprimoramento progressivo e degradação suave.

Embora o jQuery Mobile utilize o HTML5, CSS 3 e JavaScript mais


recentes, nem todos os dispositivos móveis fornecem esse suporte. A
filosofia do jQuery Mobile é suportar tanto os dispositivos de alto nível
quanto os com menos recursos — como os que não suportam
JavaScript.

Suporte para toque e outros métodos de entrada.

Fornece suporte para diversos métodos de entrada e eventos: toque,


mouse e métodos de entrada do usuário baseados em foco.

Acessibilidade
O jQuery Mobile foi projetado tendo em mente a acessibilidade. Tem
suporte para Accessible Rich Internet Applications (WAI-ARIA) para
ajudar a tornar as páginas da web acessíveis para visitantes portadores
de deficiência por meio de tecnologias assistidas.
Leve e modular.

A estrutura é leve, e dividida em biblioteca JavaScript, CSS, além de


alguns ícones.

PHP com Banco de Dados 49


Centro de Educação à Distância do Ceará - CED

Para fazer o download acesse o link http://jquerymobile.com, o arquivo baixado


é compactado, para usar descompacte no diretório do seu site, para iniciar a
utilizar e desenvolver suas páginas nas aulas seguintes.

Para acessar a documentação da biblioteca e exemplos acesse:


http://jquerymobile.com/demos/1.2.0/

PHP com Banco de Dados 50


Centro de Educação à Distância do Ceará - CED

Estrutura básica de uma página no JqueryMobile

Figura 9 - Estrutura básica de uma página no JqueryMobile

1 – Aqui temos o cabeçalho de nossa página, onde na linha 9 definimos


a codificação de caracteres.
2 – Para utilizarmos a biblioteca precisamos chamar o script do jquery e
do jquery.mobile, além dos script precisamos chamar a folha de estilos,
sempre que formos desenvolver uma página usando o jquery móbile,
precisamos usar estes arquivos.
3 – Esta é a estrutura da página com jquery mobile, usando div’s e
adicionando os atributos.

PHP com Banco de Dados 51


Centro de Educação à Distância do Ceará - CED

Layout de uma página básica no JqueryMobile


Este é o layout básico da nossa página, não sendo obrigatório mais é
uma estrutura recomendável, em nossas aulas vamos utilizar sempre
este layout.

Cabeçalho (header) - data-role="header"

Área de Conteúdo (content) - data-role="content"

Rodapé (footer) - data-role="footer"

Abaixo vemos como nossa página baseado no layout acima é apresentada,


observe que com poucas linhas já criamos o designer atraente.

Um site jQuery Mobile que inicia com "doctype" o HTML5 pode tirar o máximo
proveito de todos os recursos do framework. Porem dispositivos mais antigos
com navegadores que não entendem HTML5 vai ignorar o "doctype", mais
apresentara a página algumas funcionalidades é que poderão não ser
reconhecidas.

Dentro da tag <body>, cada exibição ou "página" no dispositivo móvel é


identificado com um elemento (geralmente uma div), com o atributo data-
role="page"

Agora vamos conhecer os atributos mais comuns para utilizarmos em nossas


páginas.

PHP com Banco de Dados 52


Centro de Educação à Distância do Ceará - CED

Atributos JqueryMobile.

Atributo Descrição

data-role="page" Define os estilos do css para página, com o


papel de página.

data-role="header" Define os estilos do css para cabeçalho da


página, com o papel de cabeçalho.

data-role="content" Define os estilos do css para o conteúdo da


página, com o papel de conteúdo.

data-role="footer" Define os estilos do css para o rodapé da


página, com o papel de rodapé.

data-icon Define um ícone para o elemento.

data-role Atributo usado para definir vários widgets, como


botões, páginas, barras de navegação, listas de
visualização e outros.

data-transition= Define o tipo de transição será usado.

data-rel= Atributo para o link de âncora de uma página,


podendo ser popup’s e dialog.

data-inset="true" Exibi um elemento listview com cantos


arredondados quando true.

data-theme Define um tema para o elemento.

PHP com Banco de Dados 53


Centro de Educação à Distância do Ceará - CED

Tema
Com o jQuery Mobile, é possível usar o atributo data-theme para aplicar um
tema padrão ou cinco amostras adicionais, com os nomes de A até E, como
vemos na tabela abaixo;

Tema Estilo

Tema Padão

Tema A - data-
theme="a"

Tema B - data-
theme="b"

Tema C- data-
theme="c"

Tema D - data-
theme="d"

Tema E - data-
theme="e"

PHP com Banco de Dados 54


Centro de Educação à Distância do Ceará - CED

Além destes temas podemos utilizar o ThemeRoller, no link


http://jquerymobile.com/themeroller/ onde podemos criar customizar um estilo
para as nossas páginas, na imagem abaixo vemos a ferramenta do link
anterior.

Figura 10 - Ferramenta ThemeRoller

PHP com Banco de Dados 55


Centro de Educação à Distância do Ceará - CED

2.10.1. Eventos.

No JavaScript, ao usar o jQuery, é possível fazer referência ao objeto jQuery


em si como $ e obter acesso aos recursos do jQuery. A estrutura jQuery
Mobile, que amplia o núcleo do jQuery, está disponível por meio do $.mobile,
que também dá acesso aos eventos e métodos específicos do jQuery Mobile.

Assim como acontece com outros eventos do jQuery, os eventos do jQuery


Mobile são ligados usando as funções live() e bind() . Por exemplo, os eventos
de toque incluem dar um toque, dar um toque e manter e vários eventos de
deslizar os dedos e de mouse virtual. É possível ligar a mudanças de
orientação e eventos de rolagem, como scrollstart e scrollstop. Os eventos de
página permitem receber notificações:

Antes da criação de uma página


Quando uma página é criada
Logo antes de mostrar ou ocultar uma página
Quando uma página é mostrada e ocultada

Abaixo tipos de eventos:


tap/clica
taphold/clica-segura
swipe/clica-arrasta
swipeleft/clica-arrasta-esquerda
swiperight/clica-arrasta-direita

Mais exemplos e informações disponíveis na documentação da biblioteca, no


link http://jquerymobile.com/demos/1.0rc1/docs/api/events.html.
Exemplo: Criamos uma página para simular alguns eventos, abaixo passo
para o desenvolvimento deste exemplo.

1º passo: Cria uma página na


estrutura JqueryMobile, como foi
feito na aula inicial deste conteúdo.

PHP com Banco de Dados 56


Centro de Educação à Distância do Ceará - CED

2º passo: Adicionar os scripts jquery e jquery.mobile e o estilo css, caso não


tenha feito ainda, lembre-se que o caminho dos scripts no diretório raiz
do seu site.

3º passo: Criar alguns atributos css personalizados para aplicar no texto


que será exibido, este estilo é criado na tag <head>, como é feito em
aulas anteriores.

4º passo: Criar script para os eventos utilizados, este será um script externo
em JavaScript, também pode ser feito na própria página, mais optei por fazer
uma chamada externa para ficar mais organizado.

PHP com Banco de Dados 57


Centro de Educação à Distância do Ceará - CED

Linha 1: os eventos serão aplicados no atributo #home, que deverá ser o


mesmo nome do id da <div data-role=”Page” , carregados par a função no
evento live("pageinit" ).

Linha 2: declarar uma variável texto contendo o texto e algumas tag HTML,
para serem inseridos dentro da div eventos. Nas outras linhas, quando os
eventos especificados ocorrerem será mostrado o conteúdo da variável texto
referente ao evento usado, não se esqueça de depois do script feito adicioná-lo
na pagina.

5º passo: Estrutura da página, a diferença desta para a da estrutura inicial


é; A identificação da div Page com o id=”home”, e a criação da div com o
id=”eventos”, onde ocorrera os eventos.

PHP com Banco de Dados 58


Centro de Educação à Distância do Ceará - CED

2.10.2. Métodos e utilidades.


No Jquery mobile podemos utilizar alguns métodos da própria API, ou criar
funções próprias com base em eventos e métodos da API jquery, abaixo temos
uma tabela com alguns métodos da API JqueryMobile.

Tabela 1 - Métodos do jQuery Mobile


Método Uso
$.mobile.changePage Para passar por meio de programação de
uma página a outra. Por exemplo, para
acessar a página teste.php usando uma
transição de slide, use
$.mobile.changePage("teste.php",
"slide").
$.mobile.loadPage Para carregar uma página externa.
$.mobile.showPageLoadingMsg Para mostrar a mensagem de
carregamento de página.
$.mobile.hidePageLoadingMsg Para ocultar a mensagem de carregamento
de página.
$.mobile.path.isSameDomain Um método utilitário para comparar o
domínio de duas URLs.
$.mobile.activePage Uma referência à página que está em
visualização no momento.
Mais informações e outros exemplos podem ser consultados no link:
http://api.jquery.com/

Exemplo: Neste exemplo vamos passar de uma


página para outra usando o método
$.mobile.changePage, passando um tipo de
transição.

1º passo: Criar a página principal, uma segunda e a terceira página, depois


adicionar os scripts e o estilo css do jquery.mobile.

2º passo: Script dentro da tag <head> na página principal.

PHP com Banco de Dados 59


Centro de Educação à Distância do Ceará - CED

Linha 16: Definimos que o evento será aplicado no atributo #um, que será o id
da div page da página principal. O evento usado é o pageinit, na inicialização
da página.
Linha 18: Usamos o método changePage e passamos como argumento a
página que será chamada, na linha 19 o efeito de transição usado.

3º passo: Estrutura da página principal, as tags <a> recebem o id p2 e p3,


correspondente aos atributos criados no script no inicio da página, o
passo anterior.

Transições baseadas em CSS


No exemplo anterior usamos algumas transições na chamada de algumas
páginas, na tabela abaixo temos outros efeitos de transição. As transições

PHP com Banco de Dados 60


Centro de Educação à Distância do Ceará - CED

podem ser utilizadas na passagem de página dentro dos atributos de página,


nas próximas aulas usaremos algumas.

Transição Uso
fade Efeito de transição fade in/fade out
pop Efeito de transição pop
flip Efeito de transição de inversão
turn Efeito de transição de giro
flow Efeito de transição de fluxo (semelhante ao slide)
slide Efeito de transição de slide (horizontal)
slideup Mostra a página ou diálogo deslizando de baixo para cima na
página
slidedown Mostra a página ou diálogo deslizando de cima para baixo na
página
none Sem efeito de transição
Tabela 2- Transições baseadas em CSS

2.10.3. Widgets.
O atributo data-role é usado para definir os diversos widgets. Entretanto,
nem todos os widgets da UI são acionados pelo atributo data-role, abaixo
vamos conhecer alguns widgets.

Botão (button)
Este widget é um botão básico, é iniciado na tag <a> e passados os
atributos do Jquery Mobile, podendo usar ícones e temas da biblioteca.

Figura 11 - Widget button

O atributo data-icon pode ser referenciado para criar os ícones mostrados


abaixo:

PHP com Banco de Dados 61


Centro de Educação à Distância do Ceará - CED

Entrada de texto (input)


Para usar este widget basta usar a tag<input> normalmente assim
como no HTML, bastando os scripts e o estilo terem sido adicionados na
página.

PHP com Banco de Dados 62


Centro de Educação à Distância do Ceará - CED

Dialogo (dialog)

Este widget exibe uma caixa de dialogo, como mostrado na imagem abaixo.

Vamos criar uma página na estrutura básica do JqueryMobile, na linha 22


adicionamos a tag <a> nela passamos a página que será chamada dentro do
dialogo, para este exemplo crie uma página chamada teste.html com uma
estrutura básica JqueryMobile e digite uma mensagem de boas vindas.

Nesta mesma linha é adicionado o atributo data-rel, onde pode ser passado o
valor dialog ou popup, em outro atributo o data transition será responsável
pelo efeito de transição.

Lista (listview)

As listas de visualização(ListView) utilizam o atributo data-role, elas podem ter


o formato quadrado como na imagem abaixo, para tornar cantos arredondados
utiliza o atributo data-inset="true”.

Figura 13 - ListView com data-inset=false


Figura 12 - ListView com data-inset=true

Exemplo: Listview.

Linha 29: Adicionar o atributo data-role=”listview”.

PHP com Banco de Dados 63


Centro de Educação à Distância do Ceará - CED

Lista redutível
Este widget usamos o atributo data-role=”collapsible”, para utilizá-lo
devemos criar uma div e nela aplicar o atributo, para definir o que será o título
da lista use a tag <h3>

CheckBox

Este widget não precisa do atributo data-role, basta ser inserido na página de
conteúdo, como é mostrado no código abaixo.

PHP com Banco de Dados 64


Centro de Educação à Distância do Ceará - CED

Botão de opções
Neste exemplo criamos inputs do tipo radio, como é feito em HTML, e
colocamos o atributo data-role=”controlgroup”, o restante do código são tags
em HTML.

Abaixo código da estrutura da página.

Fomulários (form)
Vamos agora criar um formulário de contato, nesta aula vamos utilizar a
linguagem PHP junto com o JqueryMobile, o resultado final desta aula é
mostrado na imagem abaixo.

PHP com Banco de Dados 65


Centro de Educação à Distância do Ceará - CED

1º passo: Criar duas páginas uma vai ser o formulário de contato


form_contatos.php, outra para apresentar os dados
dados_contato.php, inicialmente criaremos duas páginas com a
estrutura básica para JqueryMobile. No
formulário de contato podem-se
adicionar os elementos como na
imagem abaixo, no outro serão
enviadas as informações via código
PHP.

2º passo: Formulários de contato, nesta página deveram dar uma atenção


especial para o nome dos elementos.
Linha 22: Na tag <form> estamos definindo qual será o action do
formulário, ou seja sua ação, o arquivo dados_contato.php será
responsável por exibir em uma nova página os dados digitados no
formulário. Depois definimos o método post, onde os dados que estão
sendo enviados serão mostrados na página.

3º passo: A página que receberá os dados do contato.

PHP com Banco de Dados 66


Centro de Educação à Distância do Ceará - CED

Este trecho de código do arquivo dados_contato.php, será responsável por


pegar o valor dos inputs do formulário através do método post. Nesta página o
trecho em PHP foi inserido na tag de conteúdo como apresentada na imagem
acima.

Na linha 26 temos a instrução echo que gera a escrita na página com o


conteúdo que esta sendo passado, dentro das aspas simples passo tags HTML
para estruturar a página e apresentar o resultado como na imagem abaixo.

Definimos a variável $nome que vai


receber $_POST[‘nome’], onde $_POST
representa obviamente o método que esta
sendo passado, o qual foi definido no
formulário, o valor ‘nome’ representa o
nome do input que esta no formulário.

A seguir temos alguns exemplos de páginas usando o JqueryMobile.

PHP com Banco de Dados 67


Centro de Educação à Distância do Ceará - CED

Exercício Prático
1) Criar um formulário aplicando os widgets aprendidos, com a
transição de páginas.

2) Criar um formulário de cadastro de contatos.

3) Formulário de cadastro de cliente.

PHP com Banco de Dados 68


Centro de Educação à Distância do Ceará - CED

2.10.4. Twitter
Nesta aula iremos desenvolver uma pagina para receber as atualizações do
Twitter, utilizaremos Jquery plugin twitter que se encontra no link

http://coda.co.za/content/projects/jquery.twitte
r/ Desenvolvido por Damien du Toit, clique no
link download para baixar o arquivo
compactado com os scripts que iremos
utilizar, depois descompacte-o e coloque em
um diretório do raiz do seu site ou em um
diretório, neste exemplo criamos o diretório
tw.

Na imagem abaixo vemos os scripts que utilizaremos nesta prática, nas


linhas 17 e 18 temos o script do plugin para Twitter e a folha de estilo, os outros
scripts já são utilizados na estrutura básica de nossas páginas em aulas
anteriores.

Na <head>
vamos criar a
função
carregar_tw(
), neste script
defino na
linha 25 a

PHP com Banco de Dados 69


Centro de Educação à Distância do Ceará - CED

marcação #twitter vai pegar as atualizações do twitter, a propriedade


username na linha 26 recebe o nome do twitter, neste exemplo usamos o do
g1.
As linhas 28 e 31 definem o texto que será apresentado quando estiver
carregando as atualizações do twitter, e o texto do cabeçalho da área onde
serão mostradas as atualizações.

Estrutura da página
Em nossa página na estrutura HTML só precisamos na tag <body> usar o
evento onload e chamar a função carregar_tw(), que criamos anteriormente.

2.10.5. Geolocalização.
Nesta aula vamos fazer uma página usando a API do Google para
geolocalização, no link https://code.google.com/p/jquery-ui-map/, podemos
obter vários outros exemplos e baixar os arquivos que serão utilizados neste
exemplo, este plugin pode ser usado para
Jquery e JqueryMobile.

Na imagem ao lado temos o resultado final


desta prática, este exemplo é bem simples e
especialmente utilizado para iniciantes, no site
do projeto obtemos toda a documentação do
plugin, então vamos iniciar.

Clique em Download the plugin with examples, para baixar o plugin, conforme a
imagem abaixo.

PHP com Banco de Dados 70


Centro de Educação à Distância do Ceará - CED

Neste exemplo vamos baixar o arquivo


zip da versão 3 (jquery-ui-map-3.0-
rc.zip). Após o download descompacte
o arquivo no raiz do seu projeto, ou
onde preferir.

Agora vamos chamar os


arquivos baixados do site.
Na linha 12 estou chamando o script responsável pela API básica e passo
como parâmetro a ativação do sensor, neste caso esta ativado, pois nossa
página será acessada tanto em desktops como em dispositivos móveis, este
exemplo precisa de internet para carregar o Google Maps.
Na linha 19 estou chamando o script responsável pelas funções que o plugin
implementa, como localizar por coordenadas, nível de zoom e outras.

Script
Este script foi escrito dentro da tag <head>, nele declaramos a variável LatLng
onde será armazenada as informações de latitude e longitude, através dela que
na imagem abaixo encontra-se na linha 26, a API retorna o mapa baseado nas
coordenadas, o formato de coordenadas esta decimal,mas podem ser
convertidas em varias formas de apresentação no site
http://www.sunearthtools.com/dp/tools/conversion.php?lang=pt, encontra-se
uma ferramenta que alem de pegar as coordenadas ainda apresenta a
conversão em vários formatos.
Na linha 27 criamos a marcação #map_canvas que será usado para mostrar o
mapa.

PHP com Banco de Dados 71


Centro de Educação à Distância do Ceará - CED

Estrutura da página

Como vemos na imagem abaixo para carregar o mapa em nossa página, neste
exemplo criamos uma div onde será carregado o mapa na linha 42 fazemos a
referência ao atributo map-canvas que foi criado na <head> no script anterior,
e com a propriedade style passamos o tamanho da área do mapa.

No site esta disponível a documentação completa do plugin


http://code.google.com/p/jquery-ui-map/wiki/jquery_ui_map_v_3_api
Outros exemplos podem ser encontrados no link http://jquery-ui-
map.googlecode.com/svn/trunk/demos/jquery-google-maps-mobile.html

PHP com Banco de Dados 72


Centro de Educação à Distância do Ceará - CED

3. Formulários web.
Nesta aula vamos desenvolver formulários para aplicarmos os efeitos
aprendidos em aulas anteriores.
Para criamos formulários usamos a tag <form></form>, nela podemos usar
alguns atributos, por exemplo, action, method e id, no atributo method vão
ser passados o método get ou post, no action uma ação que será executada
pelo formulário quando o mesmo enviar as informações para o servidor, este
dois pontos abordamos no inicio da aula 2 – Introdução ao PHP e será
aprofundado no próximo semestre como o PHP, e nesta aula iremos criar
formulários que serão utilizados no próximo semestre com diversas
funcionalidades.

3.1. Formulário de cadastro de clientes.


Nesta aula vamos criar um formulário de cadastro e enviar os dados via
método post, abaixo imagem de como ficara o nosso formulário.

Para este formulário criaremos um arquivo form_cli com a extensão *.php,


quando o usuário preencher os campos neste formulário e salvar será
chamado um outro arquivo, dados_cli.php, será neste arquivo onde
enviaremos os dados do form_cli para serem exibidos.

PHP com Banco de Dados 73


Centro de Educação à Distância do Ceará - CED

Folha de estilo

Nesta etapa do curso já


sabemos manipular bem a
folha de estilo css, então
criaremos o arquivo css
separado e faremos o link
dentro da tag <head> para
que quando a pagina for
carregada seja carregada a
formatação do formulário.

Desta forma iremos chamar a nossa folha de estilo dentro da <head>.

<linkhref="../css/estilo_form.css" rel="stylesheet">

PHP com Banco de Dados 74


Centro de Educação à Distância do Ceará - CED

Estrutura da página

Como já temos conhecimento sobre as tag HTML, vamos aborda apenas


alguns pontos importantes da estrutura da página.

Linha 15: Na tag <form> estamos definindo qual será o action do formulário, o
arquivo dados_cli.php será responsável por exibir em uma nova página os
dados digitados no formulário. Depois definimos o método post, responsável
por enviar os dados. Como utilizamos o post os dados não serão mostrados na
URL.
E por último definimos o id do formulário que é a identificação do mesmo.

Linha 18: Na tag <span> adicionamos a propriedade form_cli que foi criada
em nossa folha de estilo.

Linha 23: Na tag <div> fazemos a formatação do cabeçalho do formulário que


também vem da nossa folha de estilo criado anteriormente.

PHP com Banco de Dados 75


Centro de Educação à Distância do Ceará - CED

Arquivo dados_cli.php

Este trecho de código do arquivo dados_cli.php, será responsável por pegar o


valor dos inputs do formulário pelo método post. Neste arquivo a única coisa
que foi digitada nela esta apresentada na imagem acima.

Na linha 3: Temos a instrução echo que gera a escrita na página com o


conteúdo que esta sendo passado, dentro das aspas simples passo tags HTML
para estruturar a página e apresentar o resultado como na imagem abaixo.

Definimos a variável $nome que vai receber $_POST[‘nome’], onde $_POST


representa obviamente o método que esta sendo passado, o qual foi definido
no formulário, o valor ‘nome’ representa o nome do input que esta no
formulário, logo se quisermos passar valores por meio dos métodos get ou
post utilizo $_POST[‘nome do objeto do formulário’] ou $_GET[‘nome do
objeto do formulário’].

Este será o resultado final do nosso formulário.

Exercício Prático
1) Criar um efeito zebrado em uma tabela, com os dados de modelo do carro e
suas características, usando a biblioteca Jquery.

2) Criar um formulário de cadastro de notas, para ler 3 notas e apresentar a


média.

PHP com Banco de Dados 76


Centro de Educação à Distância do Ceará - CED

3.2. Formulário de Contato.


Nesta aula iremos desenvolver um formulário de contato, usado para o
internauta entrar em contato com o administrador do site, iremos utilizar PHP
para validação do email, JavaScript e folha de estilos.
Para isso iremos construir este formulário com algumas funções são estas;

Campo formatado, adicionado uma mascara no campo de telefone.

Validando o campo email para que o usuário informe o email de forma


correta.

Incluir folha de estilo CSS.

O resultado final desta pratica será como na imagem abaixo;

Figura 14 - Formulário de Contatos

A folha de estilo será a mesma utilizada na aula anterior, nesta aula o principal
objetivo será trabalhar com validação de campos e mascara de formato, por
exemplo, o formato do telefone.

Iremos iniciar com o script em JavaScript criado na tag <head>, observe que
usamos uma estrutura de decisão em JavaScript que aprendemos em aulas
anteriores, temos
uma função
chamada Mascara
que recebe um
objeto, depois testa
a igualdade do valor
do objeto, este
objeto será o
campo que
receberá o formato.

PHP com Banco de Dados 77


Centro de Educação à Distância do Ceará - CED

Abaixo na estrutura html iremos aplicar o nosso script, no evento onKeypress


faço a chamada da função Mascara(this), o this indica que será aplicado
neste objeto no caso o input.

Agora vamos fazer a validação do email, para evitar que o usuário informe um
email errado.
Na tag <form> definimos o action o arquivo valida_email.php que será
chamado na ação deste formulário, agora no method usamos o método get, e a
identificação do nosso formulário na propriedade id.

Escrevendo o valida_email.php
Neste exemplo usamos uma função nativa do php a filter_var, que pode
ser usada para validar diversas coisas, nela adcionamos o filtro de email
atraves da propriedade FILTER_VALIDATE_EMAIL.

Nas linhas 5 e 8 usamos função require que fará uma requisição de página,
em nosso exemplo chamará o form_contato.php que é o formulario de onde
vieram o email para validar, fazendo com que seja exibido a mensagem de
email valido ou invalido abaixo do formulario, como é mostrado na imagem
seguinte.

PHP com Banco de Dados 78


Centro de Educação à Distância do Ceará - CED

Exercício Prático
1) No formulário de contato desenvolvido em sala de aula adicione as
legendas tooltips com jquery, para os campos.

2) Desenvolver uma página de contatos com JqueryMobile.

3) Crie outra página para enviar os dados cadastrados no formulário de


contatos.

4) Crie um formulário em PHP que receba a altura e o sexo de uma


pessoa, calcule e imprima o seu peso ideal, utilizando as seguintes
fórmulas:
• para homens: (72.7 * H) - 58
• para mulheres: (62.1 * H) – 44.7

PHP com Banco de Dados 79


Centro de Educação à Distância do Ceará - CED

4. Estudos de Caso

Caro Aluno (a),

Nesta aula iremos praticar usando os conhecimentos aprendidos, o


objetivo de trabalhar com estudos de caso, é trazer aos alunos vivência de
uma situação real no desenvolvimento web.

Os dois estudos apresentados serão continuados na disciplina de


PHP/MySql no próximo semestre, nesta etapa iremos trabalhar a leitura e a
discussão de como resolver uma situação problema.

Serão desenvolvidos nesta fase projetos gráficos com algumas


interações, para que na próxima disciplina iremos utilizar estes exemplos para
realizar a integração com o banco de dados e outras práticas.

PHP com Banco de Dados 80


Centro de Educação à Distância do Ceará - CED

4.1. Carrinho de compras.


Um empresário observando o crescimento da internet e a possibilidade
de fechar negócios convocou uma equipe para desenvolver um protótipo de
uma loja virtual, após a aprovação do empresário a equipe terá acesso ao
servidor da empresa para implantar o banco de dados e hospedar o site.

Em uma reunião foram discutidos alguns pontos;

A loja virtual em sua página inicial deverá apresentar uma vitrine com as
principais ofertas, de onde o usuário poderia visualizar e ao selecionar algum
produto mostrar o produto e outras ofertas.

Os produtos desta empresa são divididos por categoria, quando o cliente


selecionar alguma categoria será exibido todos os produtos referentes àquela
categoria.

Quando o cliente visualizar na página um produto o mesmo poderá


comprá-lo ou adicioná-lo em um carrinho de compras para depois escolher o
que ira comprar ou descartar, ao adicionar no seu carrinho de compras o
produto não será dada baixa no estoque, somente quando a compra for
efetivada é que será dada baixa no estoque.

Para melhor conhecer o cliente e melhor controle o cliente deve se


cadastrar na loja virtual, para o mesmo visualizar os seus pedidos e ofertas
especiais para o cliente.

O tipo de produto que será vendido na loja virtual depende da equipe, o


empresário irá investir na melhor proposta.

A loja virtual oferece vários meios de pagamento para o cliente.

4.2. Chat de atendimento.

Um empresário sentindo a necessidade de uma melhor comunicação com seus


clientes para tirar dúvidas.

Requisitou a uma equipe de desenvolvedores a criação de um protótipo de um


chat de atendimento a clientes dentro de um site, para o próprio cliente tirar
duvidas com relação aos produtos ou serviços oferecidos pela empresa.

PHP com Banco de Dados 81


Centro de Educação à Distância do Ceará - CED

Para este contado com um atendente o cliente é necessário um cadastro para


ser direcionado ao ambiente do chat.

Com relação ao horário de funcionamento do atendimento ficou estabelecido


que fosse de 7:00 horas da manhã até as 12:00h e de 13:00h as 18:00h,
quando o chat estiver fora do horário de atendimento deverá ser exibido um
ícone que o mesmo esta off-line.

O empresário pediu que fosse apresentada também uma versão para


dispositivos moveis do site para uma aprovação do site em uma nova
plataforma.

PHP com Banco de Dados 82


Centro de Educação à Distância do Ceará - CED

PARTE II – COMUNICAÇÃO
COM O BANCO DE DADOS

PHP com Banco de Dados 83


Centro de Educação à Distância do Ceará - CED

1. Formulários e listagens
Nesta aula vamos codificar formulários HTML, realizando o processamento dos
inputs do usuário através do PHP, estes processamentos serão feitos agora no
lado servidor (Server-side) nas disciplinas passadas trabalhamos com
formulários web, folhas de estilos CSS, JavaScript e um pouco da sintaxe PHP.

Nesta Fase vamos praticar a construção de páginas com formulários, sendo


tratados no lado servidor trabalhando com requisições do usuário.

1.1. Inputs.
Nesta aula vamos trabalhar com o elemento input e com seus atributos, sendo
processados com scripts PHP, Vamos começar com uma situação bem
simples, precisamos criar um formulário que receba o nome de uma pessoa e
mostre-o abaixo. Como na imagem abaixo.

Vamos executar esta tarefa de duas formas uma chamando a página


form_inputs.php e outra através de uma variável global.
Vamos criar um formulário como mostrado na imagem acima, o nome do
arquivo PHP será form_inputs.php.
Agora vamos à codificação.

Neste exemplo na linha 16 a 19 tenho o código em PHP, onde é definido que a


variável $qtde_lista vai receber uma variável do método post [‘tx_nome’], este
valor é recebido do elemento input o qual tem o nome e id tx_nome, quando
formulário é submetido pelo post este valor é armazenado na variável
$qtde_lista, depois exibido na página pelo echo na linha 18.
Observe que o action do formulário vai chamar ele mesmo, ou seja, tem o
mesmo nome do seu arquivo PHP criado no inicio desta aula, desta forma
fazemos a chamada dele mesmo, tudo que estiver dentro do bloco PHP será
executado.
Agora vamos modificar este exemplo, usaremos agora uma variável global já
definida no PHP, mais será que é possível?

PHP com Banco de Dados 84


Centro de Educação à Distância do Ceará - CED

Em situações que se estiver postando dados de volta ao mesmo script ou


formulário que ele originou, podemos utilizar a variável superglobal <?php
echo $_SERVER['PHP_SELF'];?> o script PHP será automaticamente
designado a esta variável.

Vamos ao exemplo;

Nas situações acima é uma boa pratica utilizar-se de instruções condicionais


para especificar o que será executado, caso não tenha ou não necessite tudo
que estiver no script será executado.
Variáveis superglobais
Há várias variáveis pré-definidas no PHP são chamadas de "superglobais",
que significa que elas estão disponíveis em todos os escopos para todo o
script. Não há necessidade de fazer global $variavel; para acessá-la dentro de
funções ou métodos.
Abaixo temos uma tabela com as variáveis superglobais:
Variáveis Descrição
$GLOBALS Um array associativo contendo referências para todas as
variáveis que estão atualmente definidas no escopo global do
script. O nome das variáveis são chaves do array.
$_SERVER $_SERVER é um array contendo informação como cabeçalhos,
paths(caminhos), e localizações do script. As entradas neste
array são criadas pelo servidor web.
Neste link temos a lista completa de variáveis reservadas
usadas em PHP
http://www.php.net/manual/pt_BR/reserved.variables.server.php
$_GET Um array associativo de variáveis passadas para o script atual
via o método HTTP GET.
$_POST Um array associativo de variáveis passado para o script atual
via método HTTP POST.
$_FILES Um array associativo de itens enviado através do script atual via
o método HTTP POST, utilizado em arquivos de variáveis para
Upload.

PHP com Banco de Dados 85


Centro de Educação à Distância do Ceará - CED

$_COOKIE Um array associativo de variáveis passadas para o atual script


via HTTP Cookies1.
$_SESSION Um array associativo contendo variáveis de sessão disponíveis
para o atual script. Neste manual nas próximas aulas
entraremos com mais detalhes sobre esta variável global.
$_REQUEST Um array associativo que por padrão contém informações de
$_GET, $_POST and $_COOKIE.
$_ENV Um array associativo de variáveis passadas para o script atual
via o método do ambiente.
Estas variáveis são importadas para o PHP do ambiente sob o
qual o parser do PHP é executado.
Tabela 3 - Variáveis Globais – Fonte:
http://php.net/manual/pt_BR/language.variables.superglobals.php
As variáveis globais acima citadas serão utilizadas nas próximas aulas, onde
veremos exemplos de como podemos trabalhar com elas.
Neste exemplo vamos mostrar o valor de uma variável PHP sendo mostrado
dentro do input, para revisar vamos utilizar uma situação problema que envolve
a utilização de uma estrutura de decisão.
2º Exemplo: Criar um formulário que efetue a entrada dos valores de medida
de três pesos aferidos de forma aleatória. No formulário deve ser
mostrado em um input bloqueado com o maior peso aferido.
Entendendo o problema:
Para realizarmos esta tarefa vamos criar três variáveis
referentes aos valores
que serão recebidos
pelos pesos aferidos.
Será necessário
utilizarmos uma
estrutura de decisão
neste exemplo o IF.

No input onde receberá o valor iremos colocar o código PHP no atributo


value
(value="<?php echo $maior_peso; ?>").

Agora vamos ver como ficou o formulário completo.

1
É um grupo de dados trocados entre o navegador e o servidor de páginas.

PHP com Banco de Dados 86


Centro de Educação à Distância do Ceará - CED

1.1.1. Checkbox.
Neste exemplo vamos trabalhar com o input do tipo checkbox, iremos criar um
formulário com opções de atividades esportivas, o usuário seleciona suas
atividades, que serão mostradas em outra página.
Em PHP iremos criar um array para armazenar as atividades esportivas, iremos
criar um checkbox e usaremos a estrutura de repetição foreach, para criar a
quantidade de checkbox correspondente ao array, logo se no array tivermos
seis atividades serão criados seis checkboxs.
Este será o resultado final do nosso formulário, agora vamos à construção do
mesmo.
Na estrutura do código abaixo temos;
Uma página chamada form_chkbox.php e
um formulário chamado form_list_ativ.
Teremos que criar uma página em PHP que
será chamada de sel_atividades.php, nela
será mostrado o resultado das preferências selecionadas.

PHP com Banco de Dados 87


Centro de Educação à Distância do Ceará - CED

Na
página
inserimo
s um
trecho
PHP, no
qual
criamos
um array
chamado
$esporte
s nas
linhas
13 a 21.
Linha
24:
Usamos
uma estrutura de repetição foreach nesta estrutura definimos dentro do
parêntese o array $esportes para $value, desta forma tenho para cada
chave um par de valores do array até que todos os itens tenham sido
recuperados, ou outra condição interna seja encontrada.
Observe que a chave { do loop inicia na linha 24 e termina na linha 30, tudo que
estiver dentro destas chaves será repetido até que sejam apresentados todos os
valores do loop.
Na linha 27: Temos o input do tipo checkbox com o nome ativ_esport[ ], estes
colchetes indicam que o mesmo receberá um array, no atributo value deste elemento
inserimos o trecho PHP com a variável $value que recebeu cada valor do array
$esportes, desta forma o valor de cada checkbox foi atribuído.
O elemento label é usado para exibir os valores do array na página.
No action do formulário chamamos a página sel_atividades.php, com o código PHP
mostrado abaixo.

Nesta página
embutidos o código
PHP, para mostrar as
atividades selecionadas
pelo usuário na página
anterior.
Linha 15: Declaramos a
variável $lista_ativ que
recebe os valores da requisição post $_POST[‘ativ_esport’] ativ_esport é
o nome do checkbox criado na página anterior.
Linha 16: Através do foreach listamos os valores do array que o usuário
selecionou.
Ao lado temos o resultado da execução desta prática.

PHP com Banco de Dados 88


Centro de Educação à Distância do Ceará - CED

1.1.2. Radio.
Nesta aula vamos trabalhar com o input do tipo radio, com ele criaremos um
array de estado civil, onde enviaremos para outra página o código do estado
civil, simulando o envio destas informações a um banco de dados.

Neste exercício vamos criar duas páginas uma será chamada de


form_radio.php e a outra result_radio.php.
Na página form_radio.php.
1º passo: Criaremos um array multidimensional, onde teremos em uma
posição deste array outro array, no primeiro teremos a descrição do estado civil
e no outro o código de identificação, Um array multidimensional pode ser
entendido como uma matriz.

PHP com Banco de Dados 89


Centro de Educação à Distância do Ceará - CED

2ª Passo: Agora vamos montar a estrutura da página, exibindo os valores do


array criado anteriormente, usaremos dois laços de repetição, um para mostrar
os valores do array e outro para enviar o valor do id para outra página.

Linha 28: Por se tratar de um array dimensional é importante saber quantos


níveis ele tem, neste exemplo temos dois, o primeiro nível temos os tipos
estado civil e no segundo temos o ID correspondente, logo teremos que ter
dois laços de repetição em cadeia, ou seja, um dentro do outro. Na declaração
desta linha fazemos a interação do array $est_civil para
cada interação $value uma nova interação (=>
$id_chave), neste exemplo o $value armazena o tipo de
estado civil (ex: casado, solteiro, divorciado...).
Linha 31 e 32: Nesta Linha temos o input do tipo radio
com o nome radioEstC[], no atributo value deste input,
inserimos o outro loop que irá armazenar os ID’s dos tipos
de estado civil,agora temos a interação $id_chave para
cada interação $id uma nova interação (=>$vl), esta por
sua vez agora armazena os ID’s dos tipos de estado civil.
Na imagem ao lado vemos como ficará a página.

Na página
result_radio.php
Linha 15: Nesta
linha recebemos o
valor do input da
página anterior

PHP com Banco de Dados 90


Centro de Educação à Distância do Ceará - CED

através do método post.


Linha 18: Como o nosso array dimensional já foi devidamente tratado na
página anterior, passando apenas o valor do campo ID para a variável
$idRadio fazendo as interações para $valor, sendo assim exibido na página o
ID do estado civil escolhido.

Exercícios Práticos

1) A loja MOVEISVIP esta vendendo os seus produtos parcelados no


cartão de credito, Faça um aplicativo web que receba o valor da compra
e mostre o valor das parcelas, o usuário deverá escolher em quantas
vezes que o parcelamento, que podem ser em 5x, 8x e 10x sem juros.

2) Crie um array multidimensional baseado na tabela abaixo.


Código da Nome da categoria
categoria
1 Produtos de Limpeza
2 Produtos Alimentícios
3 Produtos de consumo

Desafio
1. Crie uma pagina web em PHP com um questionário de 10 perguntas,
onde o usuário responderá as perguntas e no final deverá ser emitido o
resultado dele, informar quantas perguntas ele acertou.

1.2. Select.
Para exemplificar a utilização deste componente, criaremos uma página web
onde o usuário deve escolher uma cidade para visitar, após a sua escolha será
mostrada uma mensagem abaixo agradecendo a visita, como no exemplo
abaixo.

Vamos distribuir esta tarefa em passos.


1º Passo: Criar uma página chamada form_cidades.php, nela vamos inserir o
elemento <select> dentro de um form.
2º Passo: Criar um array usando a função array(), mostramos aqui uma outra forma
de criar um array.

PHP com Banco de Dados 91


Centro de Educação à Distância do Ceará - CED

3º Passo: Vamos entender a estrutura desta página, o nosso <select> tem o nome de
lista_cidades[], usamos o foreach para listar todos os valores existentes no array .

Linha 24: No
action do
form
chamamos
um script PHP
que será
criado nos
próximos passos.
Linha 28: Nesta linha temos dois pontos importantes, o atributo value recebe o
valor do array, isso é utilizado para passar o valor selecionado pelo usuário, o
que esta entre o <option> </option> será mostrado ao usuário quando a
página for carregada.
4º Passo: Agora vamos criar o script PHP chamado visitar_cidade.php, ele
será responsável por receber o valor selecionado pelo usuário na página
anterior e exibir uma mensagem.

1.3. Tabelas.
Nesta aula usaremos um array multidimensional, criaremos uma página web
com os cargos e salário em TI, que será mostrado em uma tabela, como na
imagem abaixo.

Criação do array multidimensional.


Criamos uma página PHP com o nome
form_tabela.php, e nela criaremos um
array chamado $cargos_salarios,

conforme abaixo;

Abaixo a estrutura da página, onde temos uma tabela com os campos Cargo e
Salário vindos do array.

PHP com Banco de Dados 92


Centro de Educação à Distância do Ceará - CED

Este exemplo é bem parecido com o anterior, então podemos observar que a
lógica de utilização dos arrays multidimensionais é a mesma, precisamos
apenas saber onde queremos que as informações devam aparecer.

Neste exemplo fazemos a interação do array $cargos_salarios para cada


interação $valor uma nova interação (=> $vl_sal), onde $valor recebe a
descrição do cargo, no outro loop temos a interação de $vl_sal para cada
interação $vlr uma nova interação (=>$vl_sals) esta armazena o valor do
salário de acordo com o cargo.

1.4. Listas.
Neste exercício vamos criar um menu para acessar todos os exemplos
anteriores, também usaremos um pouco de jquery ui.
Abaixo temos uma imagem de como ficará o nosso menu, este exercício
vamos dividir em partes ou passos para melhor entendimento.

Para este exercício vamos criar em


nosso projeto um diretório chamado
jquery, nele vamos colocar os arquivos
necessários jquery-1.8...js, jquery-ui.js
e a folha de estilo jquery-ui.min.css.

Criaremos um array multidimensional


para armazenar o texto do menu e o
seu link.

Depois iremos incorporar o código


PHP em uma lista, abaixo veremos os
passos de forma detalhada.

PHP com Banco de Dados 93


Centro de Educação à Distância do Ceará - CED

1º Passo: Vamos inserir as tags script e chamar os scripts JavaScript como mostrados
na imagem abaixo.

Nas linhas 14 a 18 Criamos uma função que chama outra função do jquery UI,
onde a mesma defini que será aplicado no seletor css #menu.

Nas linhas 19 a 21 aplicamos o tamanho da área do menu.

2º Passo: Criação do array, abaixo criamos um array para armazenar o texto


do menu e o link correspondente.

3º Passo: Na linha 39 iniciamos o laço de repetição para percorrer todos os


elementos do array.

PHP com Banco de Dados 94


Centro de Educação à Distância do Ceará - CED

Como podemos observar na linha 41 que corresponde a tag <li>, adicionamos


a tag <a> e nela incorporamos o código PHP, na variável $links colocamos na
propriedade href, o nosso link, a variável $valor irá mostrar o texto do nosso
link.

Exercício de Aprendizagem
Estudo de caso da empresa de reserva de passagens aéreas Gato Ajato

1.1. Formulários.
Nesta aula vamos desenvolver formulários dinâmicos, em nossa problemática
temos que desenvolver um web site, A empresa de reserva de passagens
aéreas Gato Ajato foi quem solicitou o protótipo.
Foi solicitado aos projetistas que a web site efetue reserva de passagens
aéreas da companhia.
Deverá cadastrar os números (ID) dos aviões e o número de lugares
disponíveis em cada um. O home deverá mostrar o seguinte menu de opções:
1. Cadastrar aviões.
a. Com número de lugares disponíveis em cada avião.
2. Cadastrar Passageiros, com os campos nome, CPF, sexo, endereço,
cidade.
3. Reservar passagem.
a. Checar se no avião escolhido, ainda existe lugar disponível. Caso
exista, o programa deverá diminuir o total de vagas e mostrar a
mensagem Reserva Confirmada. Caso contrario, deve mostrara a
mensagem Voo lotado.
4. Consultar avião.
5. Consultar passageiro.

1.1.1. Formulário de cadastro.


Nesta aula vamos praticar, desenvolvendo os formulários pedidos na
problemática acima, o objetivo desta aula é dinamizar formulários utilizando os
arrays e os elementos HTML.

PHP com Banco de Dados 95


Centro de Educação à Distância do Ceará - CED

Mão a obra, vamos montar o cadastro de passageiros, vamos agora iniciar a


dinamizar um formulário, trabalhando com os recursos aprendidos das aulas
anteriores.

Vamos observar as tarefas a serem cumpridas nesta aula.

A gato Ajato solicitou um web site, para este intuito devemos criar um layout
para este projeto, e as páginas a seguir;

Página index.php; com o menu usando jquery no menu será possível


navegar nas outras páginas, conforme problemática apresentada
anteriormente.

Cadastro de Passageiros, com os campos nome, CPF, sexo, endereço,


cidade.
Cadastro de aviões, com os campos modelo, pais de origem, número de
lugares.

1.1.2. Listar dados de cadastro.


Nesta aula vamos aprender a fazer uma busca em um array, com este
conhecimento adquirido podemos cumprir as tarefas de consulta que
necessitam o site em questão.

Abaixo temos a página de exemplo que será desenvolvida nesta aula.

Vamos criar uma página chamada de consulta.php, nela temos que criar um
array com o nome de $passageiros para realizar a busca pelo nome do
passageiro.

No formulário no atributo action chamaremos a própria página de consulta.

PHP com Banco de Dados 96


Centro de Educação à Distância do Ceará - CED

Linha 23: Recebemos o valor do input busca através do método post, o valor
que o usuário digitar será armazenado na variável $busca.
Linha 25: Temos aqui uma instrução de decisão se a variável $busca for
verdadeira, ou seja conter um valor, a linha 26 é executada. Na linha 26
criamos a variável $cons_passageiros, esta recebe o valor da função
preg_grep que retorna as entradas do array $passageiros que combinaram
com um padrão repassado, “/^$buscar/” neste exemplo usamos o que é
conhecido como expressões regulares, onde se define um padrão a ser usado,
então com o operador ^ indica que a expressão deve iniciar com a string dada,
logo em nossa expressão será verificado os primeiros caracteres digitados no
input de busca.
Linha 29: Nesta condição o valor do input for igual à null retorna todos os
dados do array $passageiros, onde os valores do array são armazenados em
um outro array chamado $cons_passageiros.

Preenchendo os dados do array na tabela, vamos utilizar agora um velho


conhecido das aulas anteriores o foreach, definiu-se na tabela o nome da
coluna, e a linha onde devem aparecer os valores do array.

PHP com Banco de Dados 97


Centro de Educação à Distância do Ceará - CED

PHP com Banco de Dados 98


Centro de Educação à Distância do Ceará - CED

1.1.3. Remover elementos da lista.

Nesta aula vamos aprender a remover um elemento de um array, em nosso


exemplo temos uma página chamada remover.php.
Vamos criar uma lista de modelos de aviões, o usuário quando de um clique no
modelo o id que é a chave do array, será enviado através do método get, ao
ser recebido o valor da chave será removido usando a função unset().

Nas linha 15 a18: Temos a criação do nosso array, com os modelos de aviões.
Linha 20: Declaramos uma variável chamada $remov que recebe um valor
pelo método get.
Nas linhas 21 a24: Temos um loop onde para recuperar todos os valores do
array, a função unset() recebe o array e a chave ou índice do array que será
removido, este valor é recebido através da variável $remov.
Para exibir na página criamos um novo loop, e neste definimos a variável que
receberá a chave do array($chave), e a outra que será usada para exibir os
modelos de aviões na página.
Na linha 31: Observamos que na tag <a> usamos o atributo href para passar o
link da página que será chamada, no caso ela mesma e o parâmetro de URL
chamado id, logo para passarmos parâmetros pelo URL utilizaremos esta
sintaxe, nome da página (remover.php) mais o nome do parâmetro e o valor
que será recebido (?id=).

PHP com Banco de Dados 99


Centro de Educação à Distância do Ceará - CED

Exercícios Práticos

1) Vamos criar um formulário web que para cadastrar uma lista de contatos,
com os campos; nome, endereço, telefone, cidade.

2) Crie um formulário para cadastro de 15 palavras chaves, estas palavras


devem ser armazenadas em um array e exibidas em outra página web,
usando checkbox’s.

3) Uma empresa prestadora de serviços tem uma lista de 10 serviços, onde


desta lista um precisa ser removido, utilizando arrays e a função unset(),
crie uma página para remover o serviço conforme a escolha do usuário.

4) Vamos criar um array com o modelo de aviões, e criar uma consulta de


modelos de aviões.

5) Faça um web site que realize um cadastro de contas bancárias com as


seguintes informações: número da conta, nome do cliente e saldo. O banco
permitirá o cadastramento de contas e não poderá haver mais que uma
conta com o mesmo número. Crie o menu de opções a seguir.
Menu de opções:
Cadastro de contas de determinado cliente.
Consultar contas de determinado cliente.
Excluir um cliente.
Sobre, com os dados dos desenvolvedores do projeto.

PHP com Banco de Dados 100


Centro de Educação à Distância do Ceará - CED

2. Funções em PHP
Nesta aula vamos conhecer algumas funções, que podem ser uteis em nossa
caminhada como desenvolvedor PHP, abaixo uma relação de funções para
arrays, que podemos utilizar como referência. No site da linguagem temos
diversas referências sobre várias funções da linguagem, veja no link
http://www.php.net/manual/pt_BR/funcref.php

Funções para Array


Função Descrição
array_change_key_case Modifica todas as chaves em um array
array_chunk Divide um array em pedaços
array_column Retorna os valores de uma única coluna no array
de entrada
array_combine Cria um array usando um array para chaves e outro
para valores
array_count_values Conta as frequências de cada valor de um array
array_flip Inverte as relações entre chaves e valores
array_key_exists Checa se uma chave ou índice existe em um array
array_keys Retorna todas as chaves de um array
array_merge Junta um ou mais arrays
array_multisort Ordena múltiplos arrays ou arrays
multidimensionais
array_pop Retira um elemento do final do array
array_product Calcula o produto dos valores de um array
array_push Adiciona um ou mais elementos no final de um
array
array_rand Retorna um ou mais elementos aleatórios de um
array
array_replace Replaces elements from passed arrays into the first
array
array_reverse Retorna um array com os elementos na ordem
inversa
array_search Procura por um valor em um array e retorna sua
chave correspondente caso seja encontrado
array_shift Retira o primeiro elemento de um array
array_slice Extrai uma parcela de um array
array_splice Remove uma parcela do array e substitui com
outros elementos
array_sum Calcula a soma dos elementos de um array
array_unique Remove valores duplicados de um array

PHP com Banco de Dados 101


Centro de Educação à Distância do Ceará - CED

array_unshift Adiciona um ou mais elementos no início de um


array
array_values Retorna todos os valores de um array
array Cria um array
asort Ordena um array mantendo a associação entre
índices e valores
count Conta o número de elementos de uma variável, ou
propriedades de um objeto.
current Retorna o elemento corrente em um array
each Retorna o par chave/valor corrente de um array e
avança o seu cursor
in_array Checa se um valor existe em um array
key Retorna uma chave de um array
ksort Ordena um array pelas chaves
list Cria variáveis como se fossem arrays
next Avança o ponteiro interno de um array
prev Retrocede o ponteiro interno de um array
range Cria um array contendo uma faixa de elementos
reset Faz o ponteiro interno de um array apontar para o
seu primeiro elemento
rsort Ordena um array em ordem decrescente
sort Ordena um array
Tabela 4 - Funções para Array

2.1. Escrevendo Funções.


Vamos escrever algumas funções, primeiramente criaremos uma função para
converter palavras em maiúscula ou minúscula, usaremos duas funções do
PHP a strtoupper() para maiúscula e strtolower() para minúscula.

Vamos criar uma página e criar o formulário abaixo;

Temos no select os valores que serão passados para a nossa função.


Abaixo temos o trecho de código PHP que pode ser utilizado na mesma
página, ou em outra página.

PHP com Banco de Dados 102


Centro de Educação à Distância do Ceará - CED

Inicialmente recebemos
através do post, o valor de
duas variáveis, a $vlr
recebe o valor escolhido
pelo usuário se a opção de
conversão dele é maiúscula
ou minúscula. A outra
variável $texto recebe o
texto digitado pelo usuário.
Na linha 26 chamamos a
função e passamos dois
parâmetros, um com o valor
para ser comparado no if, e outra com o texto que será convertido, conforme a
opção do usuário.

PHP com Banco de Dados 103


Centro de Educação à Distância do Ceará - CED

Outras Funções

Addslashes
addslashes (string $variavel) - Retorna uma string com barras invertidas
antes de caracteres que precisam ser escapados para serem escapados em
query do banco de dados e etc. Estes caracteres são aspas simples (‘), aspas
duplas (“), barra invertida (\) e NUL (o byte NULL).
Exemplo:

Stripslashes
Stripslashes (string $variavel ) – Caso queira retirar caracteres indevidos
utilizamos esta função, ele retira as “\”;
Exemplo:

2.2. Require e Include

include(): Esta função tenta incluir uma página. Em caso de algum erro, o
script retorna um warning (aviso) e prossegue com a execução do script. Aceita
a passagem de variáveis (GET) na string.

Require(): Tenta incluir uma página. Em caso de erro, o script retorna um fatal
error (erro fatal) e aborta a execução do script. E não prossegue com a
execução do script. Não aceita a passagem de variáveis (GET) na string.

include_once() e require_once(): Idênticas as suas funções simples, porém


se o arquivo referenciado já foi incluso na página anteriormente, a função
retorna ‘false’ e o arquivo não é incluído.

2.3. Função date( )


Nesta aula vamos trabalhar com uma função de manipulação de datas, com
esta função podemos obter a data e hora do servidor onde o PHP esta
rodando.

PHP com Banco de Dados 104


Centro de Educação à Distância do Ceará - CED

Exemplo 01: Neste exemplo temos a aplicação da função date(), o resultado


será a data no formato dd/mm/aaaa, caso o meu objetivo fosse obter o ano por
exemplo, basta usar date(“Y”).

Exemplo 02: O resultado do exemplo abaixo é este: Hojé é July 23, 2013,
apresentando o mês por extenso.

Exemplo 03: Verifica se o servidor esta em horário de verão ou normal.

Exemplo 04: Exibir a data por extenso.

Exemplo 05: Exibindo a data e a hora no formato 27/05/2013 22:16:02

PHP com Banco de Dados 105


Centro de Educação à Distância do Ceará - CED

3. Manipulação de arquivos e
diretórios
Nesta fase vamos aprender a manipular arquivos no servidor, desde a criação,
leitura de arquivos, aprender um pouco sobre download e upload.

3.1. Trabalhando com Arquivos


Vamos conhecer uma série de funções para manipulação de arquivos, abaixo
temos uma tabela com algumas funções.
Função Descrição
fopen() Abre um arquivo para que possa ser manipulado.
fgets() Pega uma linha do arquivo até o máximo de 1024 bytes.
feof() Durante a leitura de um arquivo, avisa se chegou ao final.
file_get_contents() Pega todo conteúdo do arquivo aberto como uma string.
ftruncate() Reduz o tamanho do arquivo. Usado para apagar seu conteúdo.
fwrite() Escreve no arquivo.
unlink() Apaga o arquivo indicado.
Tabela 5 – Funções de manipulação de arquivos
Antes de qualquer coisa precisamos ter um arquivo para manipula, ou entender
como cria-lo, para que depois do mesmo existir, podermos acrescentar
conteúdo, abri-lo e excluí-lo.
No momento em que o recurso é aberto ou criado, precisamos definir o nível de
acesso disponível para o recurso em questão, abaixo temos os modos de
arquivos retirados da documentação do PHP.
Modo Descrição
'w' Abre o arquivo somente para a escrita, coloca o ponteiro do arquivo no
começo do arquivo e diminui (trunca) o tamanho do arquivo para zero.
Caso o arquivo não exista, tenta criá-lo.
'w+' Abre o arquivo para leitura e escrita, coloca o ponteiro do arquivo no
início e diminui (trunca) o tamanho do arquivo para zero. Se o arquivo
não existe, tenta criá-lo.
'r' Abre o arquivo somente para leitura, coloca o ponteiro de escrita no
começo do arquivo. Caso o arquivo não exista retorna um erro e não
tenta cria-lo.
'r+' Abre para leitura e escrita, coloca o ponteiro de escrita no começo do
arquivo. Retorna um erro caso o arquivo não exista e o mesmo não é
criado.
'a' Abre somente para escrita, coloca o ponteiro do arquivo no final. Se o
arquivo não existir, tenta criá-lo.
'a+' Abre o arquivo para leitura e escrita; coloca o ponteiro do arquivo no
final. Se o arquivo não existir, tenta criá-lo.

PHP com Banco de Dados 106


Centro de Educação à Distância do Ceará - CED

'x' Cria e abre o arquivo somente para escrita, coloca o ponteiro no início
do arquivo. Se o arquivo já existe, a chamada fopen() irá falhar,
retornando FALSE, gerando um erro nível E_WARNING. Se o arquivo
não existe, tenta criá-lo.
'x+' Cria e abre um arquivo para escrita e leitura; coloca o ponteiro do
arquivo no início. Se o arquivo já existe, a chamada fopen() irá falhar,
retornando FALSE, gerando um erro nível E_WARNING. Se o arquivo
não existe, tenta criá-lo.
Tabela 6 – Modos de Arquivos

Agora que já entendemos como funciona o modo de arquivos, vamos criar o


um arquivo para ser manipulado em outras aulas. Utilizaremos a função
fopen().
Neste exemplo vamos criar um formulário, nele teremos um input para digitar o
nome do arquivo, e um botão que o chamaremos de criar arquivo.
Podemos também criar um script em PHP, para fazer a criação do arquivo com
as especificações, como nome e extensão do arquivo dentro do código.
Neste exemplo temos um script para criação do arquivo.

Linha 2: Definimos uma variável que vai receber o valor da função fopen(),
que retornará true ou false, na função passamos dois parâmetros, o primeiro é
o nome do arquivo e sua extensão, o segundo passamos o modo de operação
do arquivo, que neste exemplo esta abrindo o arquivo somente para escrita,
caso não exista o cria.
Nas linhas 3 e 4: Se a variável $arquivo retornar false a função die() é
chamada para apresentar o erro.
Agora vamos para outro exemplo, agora usando mais recursos.
No exemplo abaixo, damos ao usuário a possibilidade de definir qual o nome
do arquivo, para isso criamos uma função chamada criar_arquivo().

PHP com Banco de Dados 107


Centro de Educação à Distância do Ceará - CED

Linha 20: Armazenamos o nome do arquivo na variável $nome_arq, que


obteve o valor do input nome_arq através do método post.
Linha 22: Criamos um if para que a partir daquele trecho só execute a linha
23, se a variável do post estiver preenchida, para isso usamos a função
isset().
Linha 23: Nesta linha pegamos o nome do arquivo armazenado na variável
$nome_arq, usamos o ponto final para concatenar as strings (juntar),
adicionado a extensão do arquivo, e depois passamos o segundo parâmetro do
método que é o modo de operação do arquivo.
Resultado final deste exemplo.

PHP com Banco de Dados 108


Centro de Educação à Distância do Ceará - CED

3.2. Abrir e Fechar um Arquivo


Agora nesta aula vamos aprender a abrir e fechar um arquivo, na aula anterior
criamos um arquivo, neste momento vamos verificar se o arquivo pode ser
aberto, em algumas circunstâncias um arquivo pode ser corrompido, se caso o
arquivo esteja corrompido não será possível abri-lo.

No exemplo abaixo é semelhante ao anterior, porem neste usamos outro modo


de operação “r”.

Neste exemplo usamos uma ação para quando a condição for falsa, caso não
seja possível abrir ou encontrar o arquivo. E true caso seja possível abrir o
arquivo, exibindo uma mensagem ao usuário.
Na linha 21: Usamos a função fclose(), para fechar o arquivo se ele tiver sido
aberto.

Exercícios Práticos
1) Crie uma página para criar arquivos para artigos com a extensão *.html,
onde o usuário que deve especificar o nome do arquivo.

2) Crie uma função para verificar se o arquivo pode ser aberto.

3.3. Ler a partir de um Arquivo


Para realizar a leitura de um arquivo, podemos utilizar duas funções que
veremos abaixo, outro detalhe importante é quando lemos um arquivo texto
pelo PHP, ele é apresentado na estrutura HTML e ocorre um problema com os
caracteres acentuados, apresentando caracteres indesejados.
Para resolver este problema, na página que iremos mostrar a leitura do
arquivo, temos que o setar no cabeçalho da página PHP o charset, isso é
necessário também quando tivermos trabalhando com banco de dados.

PHP com Banco de Dados 109


Centro de Educação à Distância do Ceará - CED

No inicio da página embutimos o código PHP acima na linha 8, onde estamos


passando o charset ISO-8859-1.
Na linha 12: No HTML fazemos a alteração na tag meta, onde é inserido o
mesmo charset ISO-8859-1.

A função fgets() pega uma linha do arquivo, no exemplo abaixo fazemos a


leitura do arquivo texto.txt, o mesmo encontra-se no raiz do site por este
motivo passamos seu nome direto, caso esteja dentro de algum outro diretório
deverá ser informado.

Linha 30: Nesta linha fazemos a leitura do arquivo.


Linha 33: Criamos a variável $linha, onde ele recebe o valor da função fgets()
que realizou a leitura do arquivo, pegando a primeira linha. Na linha 34
mostramos o que foi lido pela função.

A função file_get_contents() pega todo conteúdo do arquivo aberto como uma


string, vamos fazer o exemplo abaixo.
Neste exemplo vamos fazer a leitura de um arquivo com a extensão HTML, o
mesmo deve ter um conteúdo um texto, por exemplo, o conteúdo do arquivo
será mostrado dentro de um <textarea>.

Como podemos observar na imagem acima, é praticamente a mesma


estrutura, o que muda é a função, que a mesma permite que seja lido todo o
arquivo.

PHP com Banco de Dados 110


Centro de Educação à Distância do Ceará - CED

Ao lado temos o resultado desta aula, o


arquivo HTML sendo apresentado em um
<textarea>.

PHP com Banco de Dados 111


Centro de Educação à Distância do Ceará - CED

3.4. Escrevendo uma String em um Arquivo


Nesta aula vamos criar uma página para o usuário escrever um artigo,
usaremos a função fwrite() para inserir um conteúdo no arquivo, e o modo de
operação do arquivo “W+”, para se o arquivo não existir o mesmo ser criado.

Vamos criar uma função que chamaremos de salvarArquivo(), ela será


chamada no botão pelo evento onclick.
Linha 21: Aqui passamos o nome do arquivo e o modo de operação, com este
modo de operação se o arquivo não existir o mesmo será criado.
Linhas 23 e 25: Nestas linhas temos duas estruturas condicionais, a primeira
verifica se a variável do método post esta preenchida, caso ela esteja passa
para a outra condição, o método fwrite() é usado para preencher um arquivo
com o conteúdo de uma string, nesta condição temos, se a função não
conseguir escrever no arquivo, e chamada a função die(), exibindo uma
mensagem.
Na imagem abaixo temos como ficara a página, o usuário poderá escrever o
seu conteúdo, que será armazenado no arquivo meuartigo.html no raiz do site.

PHP com Banco de Dados 112


Centro de Educação à Distância do Ceará - CED

3.5. Upload
Seja em sites de armazenamento online ou mesmo em perfis de redes sociais,
o termo “upload” tem estado presente em boa parte do nosso cotidiano online.
Nesta aula vamos entender de que se trata um upload, implementaremos um
script de upload completo, com diversos recursos de tratamento.
Upload ou carregamento é a transferência de dados de um computador local
para um servidor, o que pode ser feito pelo protocolo FTP ou pelo HTTP, em
nosso exemplo vamos criar uma página para fazer o upload.
Vamos criar uma página que chamaremos de form_upload.php, abaixo temos
a imagem de como esta página será apresentada ao usuário.

Na estrutura HTML vamos adicionar dois inputs, um com o type file, este é
usado quando desejo carregar arquivos do navegador para o meu servidor,
outro é o submit para enviar as informações do input file.

PHP com Banco de Dados 113


Centro de Educação à Distância do Ceará - CED

Abaixo temos o script PHP para upload de arquivos, chamaremos este script
de recebe_upload.php, inicialmente no script abaixo temos um array com o
nome de $_arq, onde passamos uma chave para este array e um conteúdo.

A chave ‘pasta’ definimos que pasta no servidor os arquivos serão


armazenados, depois na chave ‘tamanho’ é definido o tamanho máximo do
arquivo.
Linha 8: Nesta linha passamos para a chave ‘extensoes’ um array com as
extensões permitidas.
Linhas 13 a 17: Criamos um array com os tipos de erros que podem ocorrer no
upload.
Linha 20 a 22: Aqui temos uma estrutura condicional, que será verificado se
ocorreu algum erro com o upload, se sim exibir mensagem de erro. Neste
trecho usamos a variável global $_FILES, que trata especificamente de
manipulação de arquivos entre o servidor e o navegador.
Continuando o script, na linha 25 temos a variável $extensao, onde ela vai
receber a extensão do arquivo, com a função strtolower() o nome do arquivo
que é recebido é transformado em minúsculo, depois entra em ação a função
explode(), esta vai quebrar o nome do arquivo para extrair a extensão do
mesmo. Caso o arquivo não tenha as extensões definidas no inicio do script, é
exibida uma mensagem de erro.

PHP com Banco de Dados 114


Centro de Educação à Distância do Ceará - CED

Linha 31: Tenho uma condição que verificar se o tamanho do arquivo


corresponde pelo especificado na variável $_arq[‘tamanho’], a chave size do
super global $_FILE retorna o tamanho do arquivo.
Linhas 37 a 42: Nestas linhas verificamos se é necessário mudar o nome do
arquivo, caso não seja necessário, o nome do arquivo é mantido.
Continuando o script, agora já estamos no final do script, depois de passadas
todas as verificações, é hora de mover o arquivo para o diretório especificado,
para realizar esta tarefa é utilizado a função move_uploaded_file(), onde
passamos o arquivo, um nome temporário caso seja necessário e o diretório
onde o arquivo será armazenado.

Nas linhas 47 e 51: São apresentadas algumas mensagens, também é criado


um link para o usuário verificar o arquivo
que foi enviado.

3.6. Download
Agora vamos trabalhar com um velho conhecido de muitos, Download ou
descarregar que significa baixar, em português, é a transferência de dados de
um computador remoto (servidor) para um computador local.
Nesta aula vamos criar uma página de download, listando os arquivos de um
determinado diretório.
Vamos criar uma página web chamada de listar_arquivos.php, abaixo temos
como esta página ficará.

PHP com Banco de Dados 115


Centro de Educação à Distância do Ceará - CED

Na body de nossa página vamos inserir o trecho de código PHP acima, na linha
13 definimos o caminho, ou seja, o diretório que será listado os arquivos, temos
que criar um diretório chamado arquivos e colocarmos alguns arquivos nele.
Linha 14: Criamos uma variável para armazenar o conteúdo do diretório da
variável $path.
Linha 17: Criamos um laço de repetição com o while, listando assim todos os
arquivos encontrados no diretório especificado. Para cada arquivo encontrado
é criando um link do mesmo, com a tag <a>.
Na linha 20: Após concluir a leitura do conteúdo do diretório especificado, é
executado a função close(), encerrando a comunicação com aquele diretório.

Exercícios Práticos

1) Crie uma pagina onde o usuário poderá escrever um texto e armazena-


lo em um arquivo com a extensão HTML, o próprio usuário é quem irá
definir o nome do seu arquivo, você deve criar no mínimo três arquivos
com textos usando sua página deste exercício.

2) Crie três páginas onde será mostrado o texto dos artigos criados, então
deveremos ter três arquivos com conteúdo gerado no exercício anterior
e sendo exibidas em outras três páginas, uma página para cada arquivo.

3) Crie uma área de download para baixar os arquivos criados no exercício


anterior.

4) Crie um novo script de upload a partir do que vimos na aula anterior,


modifique o tamanho de arquivo para upload, os tipos de arquivos
aceitos.

PHP com Banco de Dados 116


Centro de Educação à Distância do Ceará - CED

4. Rede de Comunicações
Nesta aula vamos conhecer algumas funções capazes de recuperar
informações de servidores, aprenderemos a trabalhar com a função mail() do
PHP e outros recursos de envio de e-mail. O conhecimento adquirido nesta
aula poderá ser usado em outra necessidade para sistemas web, o objetivo
desta aula é demonstrar algumas práticas com o uso do script PHP interagindo
com recursos de redes de computadores.

Abaixo temos algumas funções utilizadas em PHP para interação de recursos e


serviços de rede, das funções citadas abaixo utilizaremos algumas.
Função Descrição
checkdnsrr Verificar os registros de DNS correspondente a um
determinado nome de host Internet ou endereço IP.
dns_get_record Buscar DNS Resource Records associados a um
hostname
fsockopen Abre um socket de conexão Internet ou de domínio Unix
gethostbyaddr Obtém nome do host de Internet correspondendo ao
endereço de IP fornecido.
gethostbyname Obter o endereço IPv4 correspondente a um
determinado nome de host Internet
gethostname Obtém o nome do host
getprotobyname Obter o número de protocolo associado com o nome de
protocolo
getprotobynumber Obter nome do protocolo associado com o número de
protocolo
getservbyname Obter o número da porta associada a um serviço de
Internet e protocolo
getservbyport Obter serviço de Internet que corresponde a porta e o
protocolo
setcookie Envia um cookie
setrawcookie Enviar um cookie sem url encoding o valor do cookie

4.1. DNS, Serviços e Servidores


DNS é um sistema de nome de domínio, é através dele que podemos usar os
nomes de domínios, por exemplo, tenho uma locadora e desejo ter um nome
na internet meu domínio então seria sbfilmes.com.br, o nome de domínio é
mais amigável ao usuário, este domínio por exemplo corresponde a um
endereço IP por exemplo 200.3.23.166 este sendo o IP do servidor que esta
sendo acessado, que não é tão amigável como o nome do domínio.
Na disciplina de rede estudamos este assunto mais afundo então nesta
disciplina é apenas para relembrar.
Vamos neste exercício usar a função checkdnsrr() para verificar a existência
de registro DNS de um domínio.

PHP com Banco de Dados 117


Centro de Educação à Distância do Ceará - CED

Esta função vai retorna verdadeira quando o registro DNS for encontrado e
falso caso não encontre o registro DNS solicitado.
Agora vamos à prática, vamos criar dois arquivos um como a imagem abaixo
que chamaremos de fase4_dns.php, onde o usuário deve digitar o nome do
domínio que quer
consultar.

No formulário deste exemplo iremos chamar no action="verific_dns.php",


este é o script PHP usado para verificar a existência do domínio através da
função checkdnsrr().

Agora na imagem abaixo vamos criar o script PHP para verificar o


domínio.

Na linha 2: Pegamos o valor do input dominio através do método POST e


armazenamos na variável $dns_dom.
Na linha 3: A variável $dominioexist irá receber o valor verdadeiro ou falso da
função checkdnsrr(), esta função recebe dois parâmetros o primeiro é o
hostname que será verificado, o segundo é o tipo de registro usado, neste
exemplo usaremos o ANY que procura por qualquer tipo de registro.
Nas linhas 5 a 13: Temos uma estrutura de decisão if onde passamos a
variável $dominioexist, que recebeu um valor boolean, sendo verdadeiro
(true) redireciona para a página fase4_dns.php e acrescenta a mensagem da

PHP com Banco de Dados 118


Centro de Educação à Distância do Ceará - CED

linha 8, caso falso (false) o else (senão) é executado e redireciona para a


página fase4_dns.php e acrescenta a mensagem da linha 12.
Na imagem abaixo vemos o resultado final deste exercício.

Agora vamos fazer mais um exercício, nesta situação problema precisa-se


verificar a existência de um domínio de um endereço de email.

Na imagem acima vemos como ficará a página fase4_domi_mail.php, nesta


caixa de texto iremos digitar o endereço de e-mail.
Temos dois pontos importantes nesta página, no action chamaremos o script
PHP verific_domin_mail.php, e o input dominio_mail, que receberá o
endereço de email, para ser verificado.

Para este exercício usaremos a função explode() que retorna um array


contendo as partes da string com valores separados.

PHP com Banco de Dados 119


Centro de Educação à Distância do Ceará - CED

Na linha 4: A variável $dominio_mail recebe o nome do domínio obtido depois


que a função explode dividiu as partes antes do @ e depois onde encontra-se o
domínio.
Na linha 6: Aqui usamos a função para verificar a existência do domínio, esta
verificação é somente do domínio, e não da existência do email.
Nas linhas 8 e 16: Nesta condição a variável $validar retorna um valor
boolean, sendo verdadeiro, o domínio existe a pagina que requisitou é
chamada e uma mensagem é exibida. Caso seja falso a pagina que requisitou
é chamada e uma mensagem é exibida.

Serviços
A internet é composta de diversos serviços, que é através destes que essa
plataforma de comunicação é definida, esses serviços que são utilizados
diariamente em nossa vida online, são estes HTTP, FTP, POP3, IMAP E SSH,
estes serviços trabalham com um protocolo, que é o conjunto de regras sobre o
modo como se dará a comunicação entre as partes envolvidas.
Vamos criar um exemplo que verifica
a conectividade com o servidor, pois
todos esses serviços são inicializados
no servidor.
Ao lado o exemplo que será criado.

Vamos criar uma página PHP com o


nome de server_ping.php, abaixo temos a estrutura da página.

Agora vamos criar o script


PHP, que irá executar o teste
com o servidor.
Linha 3 e 4: Recebemos
através do método POST, o
endereço do servidor que
iremos realizar o teste, e a

PHP com Banco de Dados 120


Centro de Educação à Distância do Ceará - CED

quantidade de vezes que irá pingar no servidor.


Linha 11: Usamos a função system(), que permite executar vários comandos
no sistema operacional do servidor, de acordo com o sistema operacional do
servidor o comando pode mudar um pouco. Neste exemplo usamos um
servidor Windows, então passamos o comando ping –n, a variável $qtde defini
a quantidade de vezes e a $server o hostname do servidor ou o IP.
No caso do Linux devemos usar desta forma system("/bin/ping -c $qtde
$server");.

4.2. Mail
Nos dias atuais uma característica muito forte das aplicações web é o poder de
comunicação, uma as mais usadas é o envio de email, em todos os sites de
empresas temos o formulário de contato, e em alguns deles são enviados
email’s para determinados departamentos.
Em PHP temos a função mail(), a sua sintaxe é bem básica, nesta função são
passados três parâmetros, destinatário, assunto e o corpo da mensagem.
Abaixo temos um exemplo de envio de email bem simples.

Neste exemplo chamamos a função mail() e passamos os três parâmetros,


isso é o suficiente para o envio de email, porem para testarmos este exemplo
precisamos ter um servidor de email.

PHP com Banco de Dados 121


Centro de Educação à Distância do Ceará - CED

4.5. Diretrizes de Configuração


A função mail() tem algumas diretrizes de configuração, o comportamento
dessas funções podem ser modificado pelas configurações do php.ini, este é o
arquivo de configuração do PHP.
Opções de configuração de e-mail
Nome Padrão Modifica Versão PHP
mail.add_x_header "0" PHP_INI_PERDIR Disponível
desde PHP
5.3.0.
mail.log NULL PHP_INI_PERDIR Disponível
desde PHP
5.3.0.
SMTP "localhost" PHP_INI_ALL
smtp_port "25" PHP_INI_ALL Disponível
desde PHP
4.3.0.
sendmail_from NULL PHP_INI_ALL
sendmail_path "/usr/sbin/sendmail PHP_INI_SYSTEM
-t -i"
Tabela 7 - Opções de configuração de e-mail
Abaixo algumas configurações que podem ser feitas no php.ini com relação a
envio de email’s.

mail.add_x_header
Adicionar X-PHP-Originário-Script que irá incluir UID do script, seguido pelo
nome do arquivo.

mail.log
O caminho para um arquivo de log, que irá registrar todas as chamadas da
função mail (). As entradas de log incluem o caminho completo do script, o
número da linha, o endereço e cabeçalhos do email.

SMTP
Usado apenas no Windows:
Passando o nome do host ou endereço IP do servidor, usado para emails
enviados com a função mail().

smtp_port
Usado apenas sob Windows:
Passando o número da porta para se conectar ao servidor especificado, com a
configuração SMTP ao enviar e-mail com a função mail ();
Porta padrão 25. Apenas disponível desde o PHP 4.3.0.

sendmail_from

PHP com Banco de Dados 122


Centro de Educação à Distância do Ceará - CED

Configura o campo do cabeçalho "From:" o endereço de email que deve ser


usado em emails enviados do PHP no Windows. Esta diretiva também define o
"Return-Path:" cabeçalho (header).

sendmail_path
configura o caminho para o programa sendmail, normalmente / usr / sbin /
sendmail ou / usr / lib / sendmail (no Linux).
Esta diretiva também funciona no Windows. Se definido, smtp_port e
sendmail_from são ignorados e o comando especificado é executado.

4.6. Enviando Email Usando um Script PHP


Nesta aula vamos criar um script PHP para o envio de email, abaixo temos o
formulário de que será criado.

Estrutura HTML, no action vamos chamar o script PHP enviar_email.php.

Abaixo temos o script enviar_email, temos três variáveis uma para o


destinatário, outra para o assunto e uma para a mensagem, ambos dados
vindos do formulário.

PHP com Banco de Dados 123


Centro de Educação à Distância do Ceará - CED

Linha 6: Nesta linha chamamos a função mail(), passando os três parâmetros


necessários.

Para realizarmos os testes de envio de email, podemos baixar alguns


programas servidores de email, abaixo alguns disponíveis.
http://www.baixaki.com.br/download/hmailserver.htm
http://ultradownloads.com.br/listagem/servidores-de-e-mail/13,687,1,,,2,2,1.html

Outra solução é configurar o localhost para envio de emails com WampServer.


http://www.youtube.com/watch?v=P0KdnguezO0

PHP com Banco de Dados 124


Centro de Educação à Distância do Ceará - CED

5. Manipulação de dados
Nesta aula vamos aprender a manipular dados com a linguagem de
programação PHP, criaremos dois projetos, um será o produto da disciplina,
neste poderemos aplicar todo conhecimento adquirido nas disciplinas de web,
agora é hora de por em prática todos os fragmentos aprendidos desta disciplina
e de outras relacionadas.

O outro projeto é para realizarmos as praticas em um contexto mais simples,


para podermos aprender e depois aplicar no projeto que é o produto da
disciplina.

5.1. Projeto Vídeo Locadora.


Aqui iniciamos o projeto web de uma vídeo locadora, em nosso estudo de caso
vamos desenvolver um site para a SBFilmes uma empresa de locação de
filmes, Neste sistema web será possível fazer a locações de filmes, reservas,
terá um ambiente do cliente para ele acompanhar suas reservas e suas
locações, este sistema é composto de uma área administrativa que será usada
pelos funcionários da empresa.

Devido ao tempo não poderemos desenvolver este sistema por completo,


utilizamos esta proposta para aprendizado, dessa forma iremos desenvolver
algumas partes do sistema com o intuito didático. Com a experiência que
adquirirmos neste projeto poderá ser aplicado em outros projetos de sistemas
web.
Uma fase muito importante de um projeto seja qual for a plataforma web ou
desktop, é o planejamento, para então experimentarmos esta experiência nesta
disciplina, a proposta é desenvolver um projeto chamado de produto da
disciplina, nesta aula propomos um projeto de vídeo locadora, nele
mostraremos algumas praticas através de exercícios.

Mostraremos um exemplo de uma funcionalidade do site, e as outras


semelhantes serão feitas através de exercícios.
O template (modelo) deste projeto pode ser baixado neste link
https://mega.co.nz/#!3U4QzKyQ!Q4SIWRR2rIYimthpZwCELBHZLZ9xCyc1W79
ABFw07rU
Neste Link
https://mega.co.nz/#!LVRzlR7D!ZxFPQhdGa9lYLWPwYY56V3whR3xe0Opqd2
MeuQn9bqc temos o script do banco de dados que será usado.

PHP com Banco de Dados 125


Centro de Educação à Distância do Ceará - CED

O planejamento
É sempre bom planejar o projeto de seu site, que é um rascunho do mesmo,
Então o primeiro passo é identificar quais serão as páginas, link e recursos que
deverão ter no site, em nosso exemplo acima definimos que páginas ou links
deviam estar disponíveis na pagina inicial do site o nosso index.php, depois
escolher a página e especificar que links ou que páginas estão disponíveis a
partir dela, como podemos verificar no exemplo abaixo.

Estrutura do site no Home

Nesta estrutura temos o conteúdo Lançamento de ..., nesta área da página


Home criaremos uma consulta para listar os lançamentos do mês vigente,
mostrando o mês e os seus lançamentos.

Abaixo temos como irá funcionar o menu área restrita, este menu é dedicado
ao administrador do sistema ou funcionário da empresa de locação de filmes, o
usuário precisa se logar nesta parte do sistema, caso ele já esteja logado será
direcionado para o home (index.php) caso contrario direcionado para a pagina
de login de usuário.

PHP com Banco de Dados 126


Centro de Educação à Distância do Ceará - CED

Exercício Prático
1) Para exercitarmos um pouco vamos planejar um site, vamos seguir os
passos abaixo.

Escolher um tema para o seu site.


Criar o mapa do site, com as páginas previstas ou link e recursos
para o site.
Desenhe o layout do seu site, da página principal index e outras
páginas que tenham o layout diferente.

2) Crie o projeto SBfilmes na sua IDE de preferência, faça o download do


template e script do banco de dados, execute o script do banco de
dados.

PHP com Banco de Dados 127


Centro de Educação à Distância do Ceará - CED

5.2. Acesso nativo


O PHP pode se conectar a uma variedade de sistemas gerenciadores de banco
de dados (SGBD) disponíveis, Para cada SGBD existe uma variedade de
funções para realizar operações como conexão, consultas retorno, desconexão
e outras. Nesta aula vamos conhecer algumas funções do SGBD Mysql, assim
como uma lista de funções do mesmo.
Abaixo temos uma relação com alguns SGBD’s e um link do site PHP com a
lista completa de funções de acesso.

SGBD Link do site


MSQL (SQL Server) http://www.php.net/manual/pt_BR/book.msql.php
Firebird/InterBase http://www.php.net/manual/pt_BR/book.ibase.php
MySQL http://www.php.net/manual/pt_BR/book.mysql.php
Mysqli (Extensão MySQL http://www.php.net/manual/pt_BR/book.mysqli.php
Melhorada)
ODBC http://www.php.net/manual/pt_BR/book.uodbc.php
Oracle (OCI7 e OCI8) http://www.php.net/manual/pt_BR/book.oci8.php
PostgreSQL http://www.php.net/manual/pt_BR/book.pgsql.php
SQLite http://www.php.net/manual/pt_BR/book.sqlite.php
Tabela 8 - Principais Bancos de Dados suportados em PHP - Fonte http://www.php.net

Agora vamos conhecer como podemos realizar o acesso a um SGBD, iremos


criar uma base de dados para exercícios que serão realizados nas próximas
aulas.
Abaixo temos as algumas funções de acesso ao SGBD Mysql.

Funções utilizadas para acesso e manipulação de dados.


Função Descrição
mysql_affected_rows Obtém o número de linhas atingidas na operação
anterior do MySQL
mysql_close Fecha a conexão MySQL
mysql_connect Abre uma conexão com um servidor MySQL
mysql_db_query Envia uma consulta MySQL
mysql_drop_db Exclui um banco de dados MySQL
mysql_error Retorna o texto da mensagem de erro da operação
MySQL anterior
mysql_escape_string Escapa uma string para usar em uma consulta
MySQL
mysql_fetch_array Obtém uma linha como uma matriz associativa, uma
matriz numérica, ou ambas.
mysql_fetch_assoc Obtém uma linha do resultado como uma matriz
associativa

PHP com Banco de Dados 128


Centro de Educação à Distância do Ceará - CED

mysql_fetch_field Obtém informações sobre uma coluna de um


resultado e retorna como um objeto
mysql_fetch_lengths Obtém o tamanho de cada saída no resultado
mysql_fetch_object Obtém o resultado de uma linha como um objeto
mysql_fetch_row Obtém uma linha como uma array numérica
mysql_field_len Retorna o tamanho do campo especificado
mysql_field_name Obtém o nome do campo especificado em um
resultado
mysql_field_table Obtém o nome da tabela na qual o campo esta
especificado.
mysql_field_type Obtém o tipo do campo especificado em um
resultado
mysql_free_result Libera um resultado da memória
mysql_get_client_info Obtém informações do cliente MySQL.
mysql_get_host_info Obtém informações do servidor MySQL.
mysql_info Obtém informação sobre a consulta mais recente
mysql_insert_id Obtém o ID gerado pela operação INSERT anterior
mysql_list_dbs Lista os bancos de dados disponíveis em um servidor
MySQL
mysql_list_fields Lista os campos de uma tabela MySQL
mysql_list_processes Lista os processos MySQL
mysql_list_tables Lista as tabelas em um banco de dados MySQL
mysql_num_fields Obtém o numero de campos em um resultado
mysql_num_rows Obtém o número de linhas em um resultado
mysql_pconnect Abre uma conexão persistente com um servidor
MySQL
mysql_ping Pinga uma conexão com o servidor ou reconecta se
não houver conexão.
mysql_query Envia uma consulta MySQL
mysql_result Retorna dados do resultado.
mysql_select_db Seleciona um banco de dados MySQL
mysql_set_charset Define o cliente character set
mysql_tablename Retorna o nome da tabela do campo
Tabela 9 - Funções PHP para SGBD MySql

Criação do Script de criação do banco.

PHP com Banco de Dados 129


Centro de Educação à Distância do Ceará - CED

Neste exercício vamos criar um script em PHP para realizar a criação do banco
de dados, que será utilizado na próxima aula e exercícios, chamaremos este
script de criarbd.php.

Linha 2: Nesta linha


utilizamos a função
mysql_connect() e
passamos os dados da
conexão com o banco
de dados, nesta ordem
servidor (localhost),
usuário do banco de
dados (root), e a senha
do banco.
Linha 5: Na linha
anterior 4 criamos uma
variável para receber a
instrução SQL, e nesta
linha usamos esta
função para executar a
instrução SQL,
passamos dois parâmetros o primeiro a instrução SQL e o segundo os dados
da conexão.
Linha 8: Esta função é utilizada para selecionar um determinado banco de
dados, nela informo qual o nome do banco de dados e a variável $dbconn que
contem os dados da conexão com o SGBD, depois na linha 12 passamos o
novo valor para a variável $sql.
Linha 27: Esta função é utilizada para fechar a conexão aberta.
Este é um pequeno exemplo de um script de instalação de aplicativos web,
com ele aprendemos que podemos realizar toda a criação de um banco de
dados através de um script PHP.

5.3. Interface do phpmyadmin


O phpMyAdmin é uma ferramenta de software livre escrito em PHP,
destinado a lidar com a administração do MySQL pela Internet.
Ele suporta varias operações do MySQL. Operações como (gerenciar bancos
de dados, tabelas, colunas, relações, índices, usuários, permissões, etc.), e
você ainda tem a capacidade de executar diretamente qualquer instrução
SQL.

PHP com Banco de Dados 130


Centro de Educação à Distância do Ceará - CED

O phpMyAdmin esta incluso na instalação do Wamp Server, e pode ser feito o


download no site http://www.phpmyadmin.net.

Projeto SBFilmes

Agora com o projeto já criado na sua IDE e o banco de dados rodando, vamos
criar um script para o projeto SBFilmes com os dados inicias usuário e senha,
estes dados são do usuário padrão do sistema.
Abaixo temos o script com o insert do usuário, nas aulas anteriores vimos
como fazer a conexão e a criação do banco de dados e tabelas, neste exercício
utilizará a instrução insert do SQL.

Crie um novo script PHP com o nome insertuser.php, insira o código acima
e depois execute, pronto acabamos de inserir os dados de usuário e senha
na base de dados sbfilmes.
Como podemos observar declaramos quatro variáveis com os dados da
conexão, e inserimos a instrução SQL, com relação ao SQL vimos na
disciplina de banco de dados.

PHP com Banco de Dados 131


Centro de Educação à Distância do Ceará - CED

Exercícios Práticos

1) Crie um script de instalação para um determinado site, o nome da base


de dados será db_restaurante, abaixo o modelo de dados para a
criação do banco, você deverá criar uma página nela deve existir um
botão com o nome de instalar sistema, após o clique do usuário neste
botão inicia a execução do script.

2) Crie um script que realize a inserção de cinco registros na tabela


tb_produtos.

3) Agora modifique o script da questão um para ele realizar o processo de


instalação completo, o seu instalador agora terá que criar uma base de
dados, criar as tabelas e inserir os registros na tabela.

PHP com Banco de Dados 132


Centro de Educação à Distância do Ceará - CED

5.4. Tratamento de erros

Tratamento de erros ou exceções é o nome que se dá a tarefa de elaborar


rotinas que serão executadas sempre que um erro acontecer, durante a
execução de um aplicativo,
É uma tarefa do desenvolvedor tentar imaginar em quais situações o aplicativo
poderia passar por um erro, e prepara-lo para todas situações possíveis.
Abaixo temos alguns métodos para serem usados no tratamento de exceções.
Método Descrição

getMessage() Retorna a mensagem de erro.


getCode() Retorna o código de erro.
getFile() Retorna o caminho do arquivo no qual o correu o
erro.
getLine() Retorna o array com a linha do erro ou as linhas
com os erros.
getTrace() Retorna as ações em forma de um array,
consistido de informações pertinentes ao contexto
em que o erro ocorreu.
getTraceAsString() Retorna toda informação igual ao getTrace(),
exceto que a informação é mostrada como uma
string ao invés de um array.
Tabela 10 – Funções para tratamento de exceções.
Vamos criar um script e realizar o tratamento de exceção, vamos entender o
script abaixo;

Neste script de criação de uma base de dados, realizamos a conexão na linha


3 usamos a função die(), caso a conexão falhe será apresentado ao usuário
uma mensagem de erro.
Para testarmos o nosso script vamos parar o serviço do mysql e tentar rodar o
script.
Para parar o serviço do mysql no windows usando o wamp Server, clique no
ícone do wamp na badeja do sistema, clique no meu Mysql e vá ate o menu
service, depois clique em para serviço, para iniciar novamente é só escolher
iniciar serviço.

PHP com Banco de Dados 133


Centro de Educação à Distância do Ceará - CED

No Linux devemos acessar o terminal e digitar o comando abaixo;

Parar o MySQL
sudo /etc/init.d/mysql stop

Iniciar o MYSQL
sudo /etc/init.d/mysql start

Construindo uma exceção

Este script será chamado de const_excecao.php, nele vamos testar alguns


métodos de tratamento de exceção, quase todas as linguagens de
programação utilizam uma instrução chamada de try/catch, onde o que esta
dentro do bloco try tentará ser executado caso não consiga, será direcionado
para o catch onde será capturado o erro ocorrido.
Linha 2: Nesta linha definimos a localização do arquivo com o seu devido
nome.
Linhas 3 a 12: Neste trecho a instrução try tentará executar a instrução de ler
o arquivo, se o arquivo não existir a instrução throw new entra com a classe
Exception e lança a mensagem de erro, se não é exibida uma mensagem de
sucesso. A linha 12 entra em ação caso o arquivo não exista ou não seja

PHP com Banco de Dados 134


Centro de Educação à Distância do Ceará - CED

encontrado, usando a instrução catch, é criado um objeto $ex da classe


Exception, com este objeto é possível chamar as funções desta classe.

PHP com Banco de Dados 135


Centro de Educação à Distância do Ceará - CED

5.5. Sessão
Sessão é um recurso do PHP que permite que você salve valores (variáveis),
para serem usados ao longo da visita do usuário. Valores salvos na sessão
podem ser usados em qualquer parte do script, mesmo em outras páginas do
site.

Estas variáveis permanecem setadas até o visitante fechar o browser ou a


sessão ser destruída.
Você precisa iniciar a sessão antes de poder setar ou pegar valores dela. Não
há limite de valores salvos na sessão. A sessão é pessoal de cada visitante.

Quando um visitante acessa o site, é gerado um cookie no computador dele


informando um id único de sessão e o PHP usa esse identificador pra
‘organizar’ as sessões entre os visitantes do seu site.
Esse cookie tem validade apenas enquanto o browser estiver aberto.
Você precisa iniciar a sessão antes de iniciar o output, ou seja, antes de
retornar qualquer coisa para o HTML. Antes de dar qualquer echo ou antes de
inserir qualquer HTML fora de blocos php. O início da sessão é uma das
primeiras coisas no começo de todo site.
A sessão precisa ser iniciada em cada página que você for usar ou definir um
valor dela, salvo arquivos que vieram por include, mas é preciso ter iniciado a
sessão uma vez antes do include.
Agora vamos aprender como iniciar uma sessão, abaixo temos um exemplo
com a sintaxe;
Inicia a sessão

session_start();

Depois de iniciada a sessão, podemos definir valores dentro dela, exemplo


abaixo:

$_SESSION['usuario'] = 'jplima';

Quando você precisar exibir o valor salvo na sessão (provavelmente em outras


páginas), veja o exemplo abaixo:

echo $_SESSION['usuario'];

Você pode salvar quantos valores quiser, pode re-definir os valores e usa-los
em echos, argumentos de funções e da forma que preferir.
Agora vamos aprender como deletar uma variável específica da sessão, vamos
usar a função unset(), Exemplo abaixo;

PHP com Banco de Dados 136


Centro de Educação à Distância do Ceará - CED

unset($_SESSION['usuario']);
Deleta uma variável da sessão.
Também podemos destruir toda a sessão de uma só vez, eliminando todas as
variáveis salvas, exemplo abaixo:

session_destroy();

Com isso você tem total controle das sessões no seu site e pode salvar, por
exemplo, o nome de usuário depois que ele fez o login e salvar outra variável
informando que o usuário está logado. Esta é uma prática muito comum em
sistemas de autenticação de usuário.

Na tabela abaixo temos uma referencia para função para sessões.


Função Descrição
session_cache_limiter Obtém e/ou define o limitador do cache atual
session_cache_expire Retorna o prazo do cache atual
session_commit Sinônimo de session_write_close
session_decode Decifra dado de sessão de uma string
session_destroy Destrói todos os dados registrados em uma
sessão
session_encode Codifica os dados da sessão atual como uma
string
session_get_cookie_params Obtém os parâmetros do cookie da sessão
session_id Obtém e/ou define o id de sessão atual
session_is_registered Descobre se uma variável global está
registrada numa sessão
session_module_name Obtém e/ou define o módulo da sessão atual
session_name Obtém e/ou define o nome da sessão atual
session_regenerate_id Atualiza o id da sessão atual com um novo
gerado
session_register_shutdown Função de desligamento da sessão registrada
session_register Registrar uma ou mais variáveis globais na
sessão atual
session_save_path Obtém e/ou define o save path da sessão
atual
session_set_cookie_params Define os parâmetros do cookie de sessão
session_set_save_handler Define a sequência de funções de
armazenamento
session_start Inicia dados de sessão
session_status Retorna o status da sessão corrente.
session_unregister Desregistra uma variável global da sessão

PHP com Banco de Dados 137


Centro de Educação à Distância do Ceará - CED

atual
session_unset Libera todas as variáveis de sessão
session_write_close Escreve dados de sessão e termina a sessão.
Tabela 11 – Funções para sessão.

PHP com Banco de Dados 138


Centro de Educação à Distância do Ceará - CED

Exercício de Aprendizagem
Vamos criar o login de usuário, no projeto SBFilmes criaremos o acesso
do administrador ao sistema, o usuário entra no menu área restrita e se ele
estiver com uma sessão aberta ele direciona para o painel administrativo
caso não esteja logado (com uma sessão aberta) é apresentado a tela de
login. No template baixado existe um diretório chamado admin, nele será
salvo tudo relacionado à área administrativa.

1º passo: Será criar um script de conexão com nossa base de dados sbfilmes,
desta forma toda vez que precisarmos abrir uma conexão há chamaremos.
Este script se chamará de conect_db.php, e será salvo no raiz do site.

Conforme podemos observar na imagem acima, nas linhas 3 a 6, passamos os


dados da conexão.
Na linha 8: Passamos os dados para a função mysql_connect(), e exibimos
uma mensagem de erro caso o mesmo venha a acontecer.
Na linha 10: Passamos a variável correspondente a nossa base de dados, e os
dados da conexão para a função mysql_select_db().
2º passo: Vamos criar um script chamado validarusuario.php que será
responsável pela validação de usuário, Vamos criar este script no diretório
admin, que é o diretório onde será criado este exemplo.
Na linha 3: Fazemos a inclusão do script conect_db.php.

PHP com Banco de Dados 139


Centro de Educação à Distância do Ceará - CED

Na linha 5 e 6: As variáveis $usuario e $senha recebem os valores


correspondentes através do POST, vindos do formulário da página de login do
nosso template.
Linha 9: Passamos a instrução SQL select, esta vai selecionar todos os dados
da tabela onde o campo usuário e senha forem iguais as variáveis $usuario e
$senha.
Caso ocorra um erro, por exemplo; a tabela não exista será disparado uma
mensagem de erro.
Linha 16: Nesta linha temos a variável $linha que vai receber as linhas
afetadas pela consulta, através da função mysql_query().
Linhas 18 a 26: É verificado se foi retornado algum registro na consulta, se o
numero de linhas retornadas for igual à zero, é chamado à página de login
novamente e uma mensagem é exibida. Se não a página de index.php é
chamada, esta página de index é a que corresponde a área administrativa do
site.
2º passo: Agora vamos alterar a nossa página de login.php do template
sbfilmes, temos que localizar no corpo da página a div content, como mostrado
na imagem abaixo;

PHP com Banco de Dados 140


Centro de Educação à Distância do Ceará - CED

No formulário desta página vamos definir o action chamando o script


validarusuario.php.
Com estes passos executados a nossa validação de usuário pelo banco já
estar funcionando. Vamos testar!
Agora vamos gerenciar as sessões do nosso projeto, para esta tarefa vamos
alterar o nosso script validarusuario.php
3º passo: Na instrução else, vamos acrescentar as linhas abaixo;

Linhas 24 a 26: Definimos três variáveis, onde cada variável recebe seu valor
correspondente ao campo na tabela do banco de dados, usamos a função
mysql_result(), que retorna o valor do campo especificado.
Linha 28: Inicializar a sessão.
Linhas 30 a 32: Grava as variáveis na sessão.
4º passo: Neste passo vamos inserir um treco de código PHP na página
principal da área administrativa, chamada index.php. Desta forma o usuário só
terá acesso a esta página se estiver logado.

PHP com Banco de Dados 141


Centro de Educação à Distância do Ceará - CED

Linha 4: Iniciamos uma nova sessão.


Linha 7 a 12: Se a variável $_SESSION[id] estiver vazia exibir um alert() e
redirecionar para a pagina de login.
Nesta mesma página vamos inserir o nome do usuário logado no sistema,
neste exemplo vamos inserir o nome do usuário logado, temos que localizar a
div content, para colocarmos o nome do lado do titulo Painel Administrativo.

Na linha 128: Exibimos o valor da variável de sessão $_SESSION[nomeUser].

5º Passo: Agora vamos criar o script PHP para realizar o logout do sistema
que se chamará logout.php.
Sempre que formos trabalhar com
sessão temos que iniciar a sessão,
neste exemplo apagamos as
variáveis especificas e depois
destruímos todas as sessões.
Linha 5 a 7: Destruindo as variáveis
de sessão criadas.
Linha 9: Destrói todas as sessões
que foram criadas, nas linhas de
código seguintes redireciona para a
página de login.

Na página index.php da área restrita, vamos localizar o item de menu sair, na


linha 100 chamamos o script de logout criado.

PHP com Banco de Dados 142


Centro de Educação à Distância do Ceará - CED

PHP com Banco de Dados 143


Centro de Educação à Distância do Ceará - CED

5.6. CRUD
Nesta aula vamos realizar o desenvolvimento do nosso CRUD (Create, read,
update e delete ), vamos fazer um exemplo mais simples antes de implementar
em nosso template do projeto SBFilmes.
Teremos dois projetos um será o sbfilmes e o outro cursophp_mysql.

5.6.1. Inserção
Nesta aula vamos aprender duas maneiras de realizar uma inserção de dados
na tabela, estes exemplos serão feitos no projeto cursophp_mysql.

1ª Forma de inserção: Nesta teremos a seguinte estrutura de arquivos;


Uma página web com a extensão PHP chamada de cadastro_1.php.
Um arquivo PHP chamado conect_db.php, que será responsável pelo
gerenciamento da conexão com nossa base de dados.
Um arquivo PHP chamado insere_cidade.php, que será responsável de
inserir as informações em nossa base de dados.
Para estes exemplos usaremos nossa base de dados criada na aula
anterior, onde criamos o script de geração do banco de dados.

Vamos criar o script de conexão com o banco de dados.

conect_db.php: Conforme observamos na imagem, foram criadas as variáveis


abaixo;

$hostname_db = "localhost";=>Nesta variável armazenamos o nome do


servidor de banco de dados, que é a maquina onde o seu banco de dados esta
instalado, em nosso exemplo estamos acessando a nossa própria maquina,
meu servidor local, que pode ser acessado pelo nome localhost ou pelo IP
127.0.0.1.

$database_db = "db_php_mysql"; => Nesta variável determino o nome da


nossa base de dados, no nosso caso "db_php_mysql".

$username_db = "root"; => Esta por sua vez define o nome do usuário de
acesso ao banco de dados, em nosso exemplo usaremos o usuário root, porem
pode ser criado um usuário especifico para o banco de dados do seu projeto
web, que serão definidos por você ou pelo DBA da empresa.

PHP com Banco de Dados 144


Centro de Educação à Distância do Ceará - CED

$password_db = "270184"; => Nesta é armazenada a senha de acesso ao


banco de dados do seu projeto.

ATENÇÃO: O usuário e senha do banco de dados normalmente não


é o mesmo de acesso ao sistema operacional, caso esteja usando o
Wamp Server por padrão não é definida a senha do banco de dados.

Continuando a analise deste script;

Linha 8: Nesta linha temos a declaração da variável $dbconn que irá receber
a função mysql_connect( ), nesta função passamos três parâmetros o nome
do servidor de banco de dados, o usuário e a senha de acesso ao banco de
dados. Ambos definidos nas linhas superiores. A função die( ) vai abortar a
execução da aplicação, é utilizado para tratamento de erros, neste exemplo
caso a conexão com o banco falhe ela será chamada.
Linha 10: A função mysql_select_db() é responsável por selecionar a base de
dados, temos que passar dois parâmetros, um é o nome da base de dados o
outro é os dados da conexão.

Agora vamos criar o cadastro_1.php, conforme imagem abaixo, no action do


formulário chamaremos o script insere_cidade.php, onde enviaremos os
dados da pagina cadastro_1.php para
este script, o script irá executar a inserção

dos dados.

Vamos codificar o script insere_cidade.php

PHP com Banco de Dados 145


Centro de Educação à Distância do Ceará - CED

Linha 3: Fazemos a inclusão do script conect_db.php, este script contem os


dados da conexão.
Linha 6: Nesta linha temos o valor do campo nome recebido pelo formulário.
Linha 9: Utilizamos a instrução SQL insert, que realizar a inserção de registros
no banco de dados.
Linha 11: A função mysql_close é chamada para encerrar a conexão.
Linhas 14 a 17: Após a inserção redirecionar para a página de cadastro.

2ª Forma de inserção: Neste exemplo faremos a mesma inserção, porem a


diferença é que iremos criar uma função para inserção na própria página de
formulário, usaremos o mesmo script de conexão do exemplo anterior.

Vamos dividir em alguns passos este exemplo.


1º Passo: Criar uma página com o nome cadastro.php.
2 º Passo: Criar uma função para salvar os dados em nossa base de dados.

Linha 10: Para evitar que dados sejam enviados a tabela quando a página for
atualizada, inserimos o if com a função isset(), se a variável do post não
estiver vazia as linhas posteriores serão utilizadas.

PHP com Banco de Dados 146


Centro de Educação à Distância do Ceará - CED

3º Passo: Na estrutura da página no input submit, vamos inserir o onclik e


chamar a função salvar.

Exercício Prático
1) Crie um formulário de cadastro de frutas com os seguintes campos
id_fruta, nome_fruta, peso, você deverá criar este banco de dados
assim como a tabela para armazenar os dados.
Neste exercício teremos que criar;
Um banco de dados.
Uma tabela conforme especificações.
Um formulário de cadastro.
Um script de conexão com o banco.
Um script para inserção dos dados do formulário.

Projeto SBFilmes

Para exercitarmos um pouco vamos realizar o cadastro de categoria de


filmes da área administrativa.

Agora temos que cadastrar as cidades em nosso banco de dados sbfilmes.

5.6.2. Alteração
Para realizarmos uma alteração nos dados teremos que listar, e depois
escolher o que será alterado.
Vamos entender como funcionará.

PHP com Banco de Dados 147


Centro de Educação à Distância do Ceará - CED

Quando o usuário escolher um registro para alterar ou excluir, será


passado um parâmetro pela URL, como no exemplo anterior o id.

Temos uma página O parâmetro


para listar os recebido pelo
registros, nele método GET, neste
teremos um link para exemplo o id, será
a página de alterar e usado na consulta
outra para excluir. SQL, que vai trazer
Exemplo; os dados onde o
(formalterar.php?id= ) campo id for igual a
variável $id.
No caso do excluir será chamado o script PHP
excluir, ele vai receber o id passado e executar a
instrução DELETE no banco de dados.

Após estes dados recebidos e a


instrução SQL executada os
O script alterar vai dados serão preenchidos no
receber os dados formulário.
vindos do No action deste formulário
formulário pelo chamamos o script PHP
método POST, e alterar.php, quando o usuário
der um clique no botão alterar
realizará o UPDATE
o script será executado.
no banco. Depois
retorna para a
página inicial.

Vamos usar a tabela de cidades que já inserimos alguns registros nela,


utilizaremos ela para listar os dados cadastrados, vamos criar uma página
chamada de manutenção_dados.php, criaremos também um estilo para a
nossa página de manutenção.

O resultado final desta aula pode ser visto na imagem abaixo;

PHP com Banco de Dados 148


Centro de Educação à Distância do Ceará - CED

Vamos criar primeiro nossa folha de estilo, e salvar em um diretório chamado


css no nosso projeto cursophp_mysql, você pode fazer o download desta folha
de estilo no link
https://mega.co.nz/#!jYRUGJTZ!EWsQUWfUjXfb9l9vfoNqehHz9eQ2MIU35thC
PlNxx6c

Em nossa página de manutenção vamos chamar a folha de estilo.

Realizar a inclusão do conect_db.php => <?php require_once


'conect_db.php'; ?>, que pode ser inserido no inicio da página.

Abaixo temos a estrutura HTML da tabela:

PHP com Banco de Dados 149


Centro de Educação à Distância do Ceará - CED

Agora vamos inserindo o código PHP para preencher o conteúdo da tabela

Linha 28: Nesta linha utilizamos a função mysql_query() para listar os


registros da tabela, o resultado da execução da query será armazenada na
variável $resultado.
Linha 29: Se a variável $resultado estiver preenchida, ou seja, com registros o
conteúdo da instrução if é executado.
Linha 30: Nesta linha usamos o while para povoar as linhas com os registros
da tabela, dentro do parêntese no while temos, a variável $row que recebe o
resultado da função mysql_fetch_assoc(), que obtém uma linha do resultado
como uma matriz associativa.
Linha 35 e 37: Nestas linhas obtemos o valor de cada campo da tabela, a
variável $row foi preenchida com os registros, então dentro dos [ ] passo o
nome do campo da minha tabela.

PHP com Banco de Dados 150


Centro de Educação à Distância do Ceará - CED

Linha 38 e 39: Aqui criamos os links para chamar a página alterar, passando
como parâmetro da URL o id, neste exemplo estaremos trabalhando com o
método get na página de alterar.
Um ponto muito importante desta etapa é a passagem de parâmetro pela URL,
para isso temos que ter a página que iremos chamar, por exemplo; alterar.php
+ ( ?id= ).

Agora vamos criar a página para alterar os dados, chamaremos de alterar.php,


não podemos esquecer de fazer o include do script de conexão com o banco.

Linha 12: Criamos uma variável que vai receber o valor do método get.
Linha 13: Agora iremos fazer uma consulta baseado no id recebido do GET,
selecionar todos os campos onde o idt_cidade for igual a variável $idAlt.

Vamos criar o script alterar_cidade.php, este script é responsável por receber


os dados do formulário alterar.php, e executar a instrução SQL Update.

Linha 5: Faço a inclusão do script de conexão com o banco de dados.

Linha 8: Escrevemos a instrução SQL para fazer a atualização dos dados,


neste exemplo alteramos apenas um campo da tabela, porem pode ser feito

PHP com Banco de Dados 151


Centro de Educação à Distância do Ceará - CED

com todos os campos da tabela, por exemplo; mysql_query("UPDATE Tabela


SET Campo1='valor1', Campo2='Valor2', Campo3='Valor3'").
No exemplo acima fazemos a atualização do campo nome_cidade onde
idt_cidade for igual a $id a variável recebida.

Linha 10: Libera um resultado da memória associada ao identificador de


resultado, apenas precisa ser chamada se você esta preocupado sobre quanta
memória esta sendo usada, em consultas que retornam grandes conjuntos de
resultados. Toda a memória associada a um resultado é automaticamente
liberada ao final da execução do script.

PHP com Banco de Dados 152


Centro de Educação à Distância do Ceará - CED

5.6.3. Exclusão
Agora vamos para exclusão de registros, seguindo da página de manutenção,
vamos criar um script PHP chamado excluir.php, vamos receber uma variável
da URL para determinar que registro será excluído.

Linha 4: A variável $id recebe o valor passado pelo método GET. Este id vem
do formulário de manutenção e foi passado pela URL (exluir.php?id=).
Linha 5: Nesta linha executamos a instrução SQL delete, que realiza a
exclusão do registro onde o idt_cidade for igual a variável $id, depois na linha
7 fechamos a conexão.

Projeto SBFilmes

Em nosso projeto SBFilmes vamos fazer o cadastro de cliente, este cadastro é para o
cliente realizar a locação dos filmes, Nesta situação vamos inserir os dados do cliente
e depois realizar a autenticação dele no sistema área do cliente. Vamos seguir os
passos do exercício de aprendizagem.

PHP com Banco de Dados 153


Centro de Educação à Distância do Ceará - CED

Exercício de Aprendizagem

Neste exercício vamos desenvolver a página de cadastro de cliente, primeiro vamos


entender os campos da tabela de cliente.

Esta tabela também será usada na validação da área do cliente,


os dados inseridos no cadastro são; nome, data de nascimento,
RG, CPF, email, o id da cidade, telefone, rua, numero e sua
senha.

Para campo id_cidade teremos uma lista de nomes de cidades


no formulário, e o que será enviado para o banco é apenas o id
da mesma.

Os campos para a validação do cliente no próximo exercício


são; o email e a senha_cli.

O campo Status serve para criamos um bloqueio, caso o cliente


tenha alguma pendência financeira, setamos este campo com
B(bloqueado) para ele não ter acesso a fazer novas locações, e
L (liberado) ou vazio quando estiver tudo ok.

1º Passo: Vamos escolher uma página do template, nela criaremos um


formulário chamado cad_cliente.php.

Depois de criado devemos fazer a inclusão do script conect_db.php, que tem


os dados da conexão com o banco de dados sbfilmes.

Na div content do formulário cad_cliente, criaremos os campos para o cliente


inserir seus dados.

PHP com Banco de Dados 154


Centro de Educação à Distância do Ceará - CED

Na linha 124 do nosso exemplo, vamos criar uma lista com os nomes das
cidades, estes registros de cidades vem da tabela t_cidades, o nome desta tag
select é cidade.
Linha 126: Nesta linha fazemos uma consulta pegando todos os campos da
tabela t_cidades.
Linha 127: Agora com um loop (while) varremos todas as posições da matriz
associativa, que foi obtida pela função mysql_fetch_assoc ().
Linha 129: Aqui passamos o id da cidade no atributo value da tag option,
depois o nome da cidade, os campos id_cidade e cidade são da tabela
t_cidade.

Abaixo a visualização do formulário pronto.

PHP com Banco de Dados 155


Centro de Educação à Distância do Ceará - CED

2º Passo: Codificar o script salvar_cliente.php, inicialmente fazemos a


inclusão do script conect_db.php, e depois criamos as variáveis que
receberam os dados do formulário linha 5 a 14.

Em nosso formulário de cadastro temos o campo data de nascimento, o tipo de


dados data do SGBD MySql trabalha com o padrão de data americano(ano –
mês - dia), diferente do padrão brasileiro (dia-mês -ano), por conta dessa
diferença vamos criar uma função de conversão de data.

Linha 16: Aqui criamos uma função converter_dt, esta função recebe como
parâmetro uma data, na linha 18 explodimos o valor recebido pelas barras (/),
para criar um array das partes, usamos a função explode() do PHP. Na linha
22 fazemos a inversão das posições e incluímos as barras, estamos pegando
as partes da data e concatenando. Ao fim desta função retornamos a data
modificada.

Na linha 26: Antes de passar a data para o banco de dados, temos que
declarar a variável $dt_nasc_novo que vai receber o retorno da função
converter_dt(), esta recebe a data vinda do formulário no padrão brasileiro e
converte para o americano.

Com esta função conseguimos resolver o problema de datas, no formulário


podemos usar o padrão brasileiro, que antes de ir para o banco esta mesma
data é convertida para o padrão americano, posso utilizar a mesma função
para exibir os dados para o usuário no padrão brasileiro, é só modificar a
posição do array.

PHP com Banco de Dados 156


Centro de Educação à Distância do Ceará - CED

Lembrando que esta função não altera o formato de data do banco, a


modificação é feita apenas para interação com o usuário.

3º Passo: Continuando o nosso exemplo, Agora vamos criar a nossa query de


inserção, neste exemplo de insert após o nome da tabela entre parênteses,
passamos os campos que queremos inserir, como podemos observar
colocamos apenas os campos os quais queremos inserir dados nele, com suas
respectivas variáveis. Após os dados inseridos e não havendo erros, a página
de cadastro de cliente será chamada para que possa ser feito outro cadastro,
ou direcionar para o index.

Projeto SBFilmes

Agora para testarmos o cadastro vamos desenvolver o login da área de


cliente, através desta área é que o cliente poderá realizar as locações. O
nome de usuário do cliente é o seu email e a senha será armazenada no
campo senha_cli, da tabela t_cliente.

Crie o cadastro de filmes da área administrativa, nesta tarefa teremos


que criar um script de upload para enviar ao servidor as imagens das
capas dos filmes.

Exercício Prático

PHP com Banco de Dados 157


Centro de Educação à Distância do Ceará - CED

Faça um programa web que realize um cadastro de contas bancárias com as


seguintes informações: número da conta, nome do cliente, CPF e saldo. O
banco permitirá o cadastramento de contas com o mesmo CPF e não poderá
haver mais que uma conta com o mesmo número da conta. Crie o menu de
opções a seguir.

Menu de opções:
1. Cadastro de contas de determinado cliente.
2. Login do cliente.
3. Visualizar contas de determinado cliente, somente se estiver logado.
a. O cliente pode excluir uma conta.
4. Alterar dados pessoais do Cliente.
5. Saque onde o valor é subtraído do seu saldo.
6. Deposito onde o valor será acrescentado ao seu saldo.
7. Sair (logout).

PHP com Banco de Dados 158


Centro de Educação à Distância do Ceará - CED

5.6.4. Usando SQL no PHP

Nestas aulas vamos trabalhar com algumas query SQL usando o PHP,
veremos algumas consultas com relacionamento de tabelas e um exemplo de
paginação de uma consulta, podemos utilizar todas as instruções SQL do
MySql em seu código PHP. Abaixo temos algumas cláusulas SQL que podem
ser uteis.

Cláusula like – verifica se o conteúdo do dado contém a string que está antes
do % (José%), após o % (%Ana) ou entre o % (%usa%). Este comando é
utilizado com a cláusula where.
Sintaxe: select [coluna] from [tabela] where [coluna] LIKE ‘string’;
Ex. select * from pessoa where nm_pessoa like 'J%';

Cláusula between – verifica se o conteúdo do dado está entre um limite


mínimo e máximo.
Sintaxe: select [coluna] from [tabela] where [coluna] BETWEEN ‘limite inferior’
and ‘limite superior’
Ex. select * from pessoa where salario between 2600 and 3000;

Cláusula in – verifica se o conteúdo do dado é igual a uma das opções


oferecidas.
Sintaxe: select [coluna] from [tabela] where [coluna] IN (‘opção1’, ‘opção 2’);
Ex. select * from pessoa where sexo in (‘M’, ‘F’);

Cláusula order by – ordena o resultado da seleção de uma coluna.


Sintaxe: select [coluna] from [tabela] ORDER BY [coluna];
Ex. select * from pessoa order by nm_pessoa;

Cláusula group by – agrupa o resultado da seleção eliminando as repetições


contidas em uma coluna.
Sintaxe: select [coluna] from [tabela] GROUP BY [coluna];
Ex. select cpf, cd_pessoa from pessoa group by cpf, cd_pessoa;

PHP com Banco de Dados 159


Centro de Educação à Distância do Ceará - CED

Consultas SQL - Filmes de uma categoria


Neste exemplo vamos criar uma pagina chamada consultas_sql.php, abaixo
temos a visualização desta página.

A proposta deste exemplo é criar uma consulta de filmes listando-os pela


categoria, iremos selecionar uma categoria e serão mostrados abaixo os filmes
que pertencem a ela.

Vamos iniciar codificando a página, nas primeiras linhas temos a inclusão do


script conect_db.php, e na linha 2 vamos setar o charset, para resolver
problemas com acentuação.

Linhas 13 a 18: Temos uma consulta que lista todos os campos da tabela t_categoria,
na linha 17 passamos no value do <option> o idcategoria este valor será usado para
fazer outra consulta.

PHP com Banco de Dados 160


Centro de Educação à Distância do Ceará - CED

Continuando o script na linha 24, declaramos a variável $idcat ela vai receber o valor
(value) da tag <select> da linha 17, através do método POST.

Linhas 25 a 28: Nestas linhas criamos a query da consulta, com a instrução


SQL SELECT selecionamos os campos idfilme, titulo, nome estes campos são
da tabela t_filme e t_categoria, onde o id da tabela t_categoria(idcategoria) for
igual a o idcategoria da tabela t_filme (categoria_idcategoria), desta forma
garanto que só serão listados o idcategoria que existir na tabela t_filme,
evitando assim registros duplicados, agora passo o idcategoria da tabela
t_categoria for igual a variável $idcat, como podemos observar neste exemplo
usamos aspas simples, podendo também usar a concatenação de strings.
Linhas 30 a 35: Agora é só executar a query e dentro do loop while passar os
campos que serão exibidos na página.

Consulta paginada
Neste exemplo vamos criar uma consulta, para listar apenas uma faixa de
registro em cada página usaremos a instrução SQL limit, na imagem abaixo
temos o exemplo desta aula.
Vamos utilizar a tabela t_filme do banco de dados sbfilmes, vamos usar os
campos titulo e fotocapa neste exemplo.

PHP com Banco de Dados 161


Centro de Educação à Distância do Ceará - CED

Estrutura inicial da página


Abaixo temos o include da conexão da base de dados sbfilmes, e o link dos
stilos.

Dentro da body na linha 35, declaramos uma variável chamada $maximo,


através dela vamos determinar quantos registros serão mostrados por página.

PHP com Banco de Dados 162


Centro de Educação à Distância do Ceará - CED

Linha 37: Declaramos a variável $pagina que vai receber o valor do método
GET, abaixo temos uma estrutura condicional, se a variável $pagina estiver
vazia o valor um é atribuído à página.
Linhas 42 a 43: Nestas linhas fazemos um calculo para determinar o registro
inicial.
Linha 45: Nesta linha fazemos uma consulta para listar todos os registros da
tabela t_filme, para utilizar esta query na linha abaixo.
Linha 47: Armazenamos na variável $total o numero de linhas de um conjunto
de resultados, que foi obtido pela função mysql_num_rows().

Conteúdo da página
Neste trecho do código dando continuidade ao trecho anterior, iniciamos a
geração do conteúdo que será apresentado na página.

Linha 52: Nesta linha criamos a query para obter os registros da tabela t_filme,
usamos a cláusula limit que retorna o limite entre dois valores, onde passamos
a variável $inicio que teve seu valor calculado nas linhas anteriores, e a
variável $maximo que definimos o valor da mesma no inicio do código.

Linha 54: Agora passamos a query SQL que esta armazenada na variável
$sql, para a função mysql_fetch_object(), que retorna um objeto com
propriedades que correspondem a linha obtida, sendo armazenado na variável
$linha.

PHP com Banco de Dados 163


Centro de Educação à Distância do Ceará - CED

Linha 58: Nesta linha passamos o valor coresponde do campo da tabela para
ser exibido nos espaços definidos.

Navegação de páginas

Neste trecho vamos trabalhar a navegação de pagina, criando os links com o


numero de páginas e com os links próximo e anterior.
Linha 75: Nesta linha criamos a variável $menos para decrementar a página,
passar o valor $pagina -1.
Linha 76: Agora criamos a variável $mais para incrementar a página,
passando o valor de $pagina + 1.

Linha 77: Aqui temos a variável $pgs que recebe o valor da função ceil(), esta
retorna o próximo maior valor inteiro, arredondando para cima do valor, se
fracionário. Entre parênteses estamos dividindo o total de registros pelo
Maximo de registros obtido pela consulta.

PHP com Banco de Dados 164


Centro de Educação à Distância do Ceará - CED

Nas linhas 78 a 82: Temos estruturas condicionais para determinar se $pgs


(páginas) é maior ou menor, se $menos maior que zero criar o link com a
localização atual do script através da variável global $_SERVER.

Linha 84: Nesta linha temos uma estrutura de repetição “for”, para criar a
numeração das páginas e acrescentar o link das mesmas.
Linha 91: Nesta estrutura condicional temos se $mais menor ou igual a $pgs,
criar o link com a localização da página.

PHP com Banco de Dados 165


Centro de Educação à Distância do Ceará - CED

5.6.5. Consulta
Nesta aula vamos desenvolver um formulário de pesquisa, iremos acrescentar
nele o link para alterar e excluir.
Vamos fazer uma consulta de cidades pelo nome, usaremos a base de dados
db_php_mysql, este exemplo é bem pratico e pode ser implementado com
qualquer tabela.
Abaixo temos o resultado final deste exemplo.

Vamos criar uma nova página e chamaremos ela de consultar.php, abaixo


temos a codificação da página.

Na linha 3: Temos a variável de pesquisa, que vai receber pelo método POST
o valor digitado pelo usuário no input.
Abaixo, na linha 30 temos a construção da nossa query, que vai selecionar
todos os campos da tabela t_cidade onde o nome da cidade iniciar com o valor
digitado pelo usuário no input.

PHP com Banco de Dados 166


Centro de Educação à Distância do Ceará - CED

Consulta com filtros

A proposta é fazer aqueles formulários em que temos 2 ou 3 ou mais inputs,


que servirão de filtro para a consulta que faremos na base de dados. Porém, o
usuário pode querer preencher apenas um desses campos, dois deles, ou
todos, e a nossa query, deve se adequar a esta realidade, mandando para o
servidor apenas a consulta correta. Abaixo está a uma solução para o
problema. Usando um array, e alguns if’s,

Estrutura HTML

PHP com Banco de Dados 167


Centro de Educação à Distância do Ceará - CED

Continuando a codificação da nossa página, na linha 21 temos uma estrutura


condicional, se o método submetido for igual ao POST, será criando um array
para a cláusula where.
Nas linhas 25 a 27: Temos as variáveis recebendo o valor de retorno da
função getpost(), nesta função passamos um valor como parâmetro.
Nas linhas 30 e 32: Utilizamos uma estrutura condicional para, se $nome for
verdadeiro, estiver preenchido o array $where[ ] receber o trecho da consulta.

Linha 34: Aqui temos a query que lista todos os campos da tabela t_cliente,
que é o inicio da nossa query.
Na linha 35: Temos uma condição que conta os elementos de um array.
Na linha 36: fazemos a concatenação da query, e a utilização da função
implode() que junta os elemento da matriz $where na string $sql.
Linha 39: Aqui criamos uma função de filtro anti injection, é uma forma de
proteger seu código contra ataques de injeções de código PHP na sua
consulta.

Agora vamos executar a nossa query, passando a variável $sql para a função
mysql_fetch_assoc().

PHP com Banco de Dados 168


Centro de Educação à Distância do Ceará - CED

5.7. Relatórios.
Nesta aula vamos aprender a criar relatório em PDF usando PHP, para esta
prática vamos utilizar a classe FPDF, é uma classe para PHP de grande
utilidade no processo de criação de relatórios em formato PDF, utilizando
funções simples e poderosas. O FPDF é um Software Livre (e gratuito), o que
significa que você poderá utilizá-lo livremente para uso pessoal ou comercial,
além de poder modificá-lo e estudar seu código-fonte, ao contrário da PDFlib,
que exige o pagamento de licenças para uso comercial.
O FPDF possui suporte às principais funções para geração de relatórios, como
por exemplo:

Formatação de cabeçalho (Header) e rodapé (Footer);


Quebra de página automática;
Quebra de linha e justificação de texto automática;
Suporte a imagens (JPEG e PNG);
Suporte a fontes TrueType e Type1;

Instalando o FPDF

Para utilizarmos precisamos fazer o download no site http://www.fpdf.org e


baixar a última versão do FPDF, depois, vamos descompacta-la no diretório
raiz do nosso site, como podemos observar sua instalação é bem simples.
No site desta classe podemos encontrar vários tutoriais sobre sua utilização,
neste exemplo vamos criar um modelo para ser utilizado, depois podemos
visitar o site para nos aprofundarmos.

Vamos criar um formulário com uma lista drop-down (<select>), nela vamos
listar os nomes de clientes cadastrados na base de dados sbfilmes, conforme
imagem abaixo, quando o usuário der um clique no botão imprimir, será
enviado via POST o id do cliente selecionado, o script modelo_pdf2.php
recebe o valor da variável e lista os dados do cliente selecionado no formulário.

Abaixo temos o formulário e o resultado da geração do PDF.

PHP com Banco de Dados 169


Centro de Educação à Distância do Ceará - CED

Vamos criar o formulário, a pagina web será chamada de form_pdf.php,


inicialmente iremos incluir o script conect_db.php com os dados da conexão
da base de dados sbfilmes.

No action do formulário chamaremos o script modelo_pdf2.php.


Agora vamos criar o script modelo_pdf2.php, inicialmente iremos incluir a
classe fpdf.php, e depois o script conect_db.php.

PHP com Banco de Dados 170


Centro de Educação à Distância do Ceará - CED

Linha 5: Criamos a classe pdf que vai herdar os métodos e objetos da classe
FPDF.
Linha 7: Vamos criar uma função chamada Header, que será o topo da nossa
página em pdf.
Linhas 9 a 17: Nestas linhas da função Header, temos o método Image onde
definimos a imagem que irá aparecer em nosso arquivo pdf, onde (10) e (6) são
as coordenadas da imagem no documento, (30) representa o tamanho da
imagem em milímetros, posso passar a altura e a largura utilizando dois valores
(30), (60), (se omitido é utilizado o tamanho original da imagem).
Outro parâmetro que pode ser passado e o formato da imagem (os seguintes
formatos são válidos: jpg, jpeg, png). Se não especificado, esse valor será
determinado a partir da extensão do arquivo. Abaixo temos um exemplo com
todos os parâmetros:
$pdf->Image('logo.jpg',4,5,150,70,jpg);
Na linha 11 estamos setando a fonte pelo método SetFont(), passamos três
parâmetros básicos, o nome da fonte (Arial), o atributo de formatação B é para
deixar em negrito e o I para itálico, o valor (15) representa o tamanho da fonte.
Na linha 13 temos o método cell() que será bastante utilizado, então vamos
entender como este método funciona.
Método Cell()

PHP com Banco de Dados 171


Centro de Educação à Distância do Ceará - CED

Cria uma célula de tamanho, texto, borda e alinhamento configurados pelo


programador. Sintaxe:
Cell(float width [, float height [, string texto [, borda [, int ln [, string
alinhamento [, int fill [, mixed link]]]]]]])

Onde width é a largura e height, a altura da célula. Além destes parâmetros,


em texto informa-se o conteúdo da célula(string texto). A opção borda deve
ser preenchida com 0(zero), para retirá-la, ou 1 para colocar a borda. ln indica
para onde vai o cursor após a chamada da função Cell(), e seus valores podem
ser 0 para a direita, 1 para o começo da próxima linha e 2 para baixo.

Alinhamento pode ser preenchido com L para a esquerda (default), C para


centralizado e R para a direita.
Em fill, devem-se informar os valores 0 para transparente (default) e 1 para
preenchimento de fundo da célula.
Em link, poderia se utilizar a URL ou identificador retornado pela função
AddLink().
Na linha 20: Temos a função Footer que é o nosso rodapé, na linha 22 temos
função SetY, que muda o cursor para a coordenada em y desejada. SetY(float
coordenada);

Continuando o nosso script, na linha 31 cria-se um objeto. Com os valores


default para página são: tamanho A4 e no modo Retrato, com as medidas em
milímetros (mm).

Para alterar os valores padrões deste objeto preciso passar os parâmetros


deste objeto.
Vejamos a sintaxe abaixo PDF() é:
PDF([String Orientação [,String Unidade [,mixed formato]]]);
O parâmetro Orientação pode ser preenchido com:

PHP com Banco de Dados 172


Centro de Educação à Distância do Ceará - CED

P: Portrait (Retrato);
L: Landscape (Paisagem);
Em Unidade podemos informar os valores:
pt: para pontos;
mm: para milímetros;
cm: para centímetros;
in: para polegadas;
E em Formato:
A3;
A4;
A5;
Letter;
Legal;
Na linha 32: Defini um alias para o número de páginas, se não for informado
nenhum assume o default.
Na linha 33: Adiciona uma nova página.
Linha 37: Nesta linha recebemos o valor da tag <select> que será
armazenado na variável $id_cliente.
Linha 39: Agora faremos a consulta para obter os dados do cliente, através do
valor selecionado no formulário, vamos trazer todos os dados do cliente onde o
idcliente que é o nome do campo da tabela, for igual a $id_cliente, que obteve
o valor através do método POST do formulário.
Linhas 40 a 46: Temos o laço onde ira adicionar as cell() com os valores
obtidos da consulta, concatenando o nome do campo para mostrar no pdf e o
valor do registro da tabela.
Linha 49: Nesta linha é criado o arquivo PDF através do método output(). Se o
navegador tiver o plugin Adobe Acrobat Reader instalado, o documento será
aberto pelo próprio navegador. Caso contrário, ele pedirá para fazer o
download do PDF gerado.

PHP com Banco de Dados 173


Centro de Educação à Distância do Ceará - CED

6. Frameworks para desenvolvimento em PHP

Os frameworks facilitam o desenvolvimento de software, permitindo que os


programadores se ocupem mais com os requesitos do software do que com os
detalhes tediosos, de baixo nível do sistema.

Com o uso de frameworks, os programadores tem o controle de seu tempo e


de seus códigos-fonte, as tarefas repetitivas são minimizadas, os projetos são
concluídos em menos tempo, os padrões são seguidos.

Os diversos frameworks de desenvolvimento agilizam o processo de criação e


manutenção de aplicativos web. Cada framework tem as suas particularidades,
nestas aulas vamos conhecer um pouco de algumas dos frameworks mais
utilizados, dependendo da sua necessidade escolherem qual melhor se
encaixa em seu projeto.

6.1. Soluções de framework do PHP

Abaixo serão apresentados alguns frameworks que vamos conhecer que são:
CakePHP, Symfony, Zend Framework e Solar Framework.
Os frameworks são bastante utilizados em projetos complexes, e que utilizam
algum padrão de desenvolvimento como MVC, que é a separação da estrutura
da aplicação em três partes distintas: Modelo, Visão e Controle:
• Modelo: gerencia os dados da aplicação.
• Visão: gerencia a saída gráfica e textual da parte da aplicação visível ao
usuário.
• Controle: interpreta as entradas de mouse e teclado do usuário, comandando
a Visão e o Modelo para se alterarem de forma apropriada.
Os frameworks, sejam elas escritas em PHP ou em qualquer outra linguagem,
oferecem ao programador um conjunto de códigos prontos que permitem
realizar as tarefas mais básicas no desenvolvimento de um aplicativo. Por
oferecer essa estrutura básica, os frameworks tornam o desenvolvimento mais
rápido e reduzem o volume de código repetitivo escrito pelo programador.

PHP com Banco de Dados 174


Centro de Educação à Distância do Ceará - CED

6.2. O CakePHP Framework

O CakePHP é um Framework para desenvolvimento de aplicações web no


padrão MVC
(Models-Views-Controllers) e ActiveRecord.
A idéia principal é ser um framework estruturado, que permita a usuários PHP
de todos os níveis desenvolverem aplicações web robustas sem perda da
flexibilidade.
Softwares que atendem os requisitos e que são de rápida
manutenção/alteração, e também aqueles que são implementados usando
boas práticas de desenvolvimento e padrões, são os chamados Bons
Softwares.
Com o CakePHP, a construção de um software assim se torna fácil. Com este
Framework, também é possível implementar usando Test-Driven-Development
(TDD), ou seja, desenvolvimento orientado a testes. Este fato permite que tudo
na aplicação possa ser testado e torna essa ferramenta muito poderosa.
O site oficial deste framework é http://cakephp.org/, abaixo temos as principais
características deste framework;
Construir rapidamente
Use os recursos de geração e estrutura de código para criar rapidamente
protótipos.

Não Configuração
Nada de XML complicado ou arquivos YAML. Basta configurar seu banco de
dados e você estará pronto para utilizar.

Licença amigável
CakePHP é licenciado sob a licença MIT que o torna perfeito para o uso em
aplicações comerciais.

Baterias incluídas (Blocos)


As coisas que você precisa são built-in. Traduções, acesso de banco de dados,
caching, validação, autenticação e muito mais são todos construídos em um
dos quadros originais PHP MVC.

Limpe Convenções MVC


Em vez de ter de planejar aonde as coisas vão, o CakePHP vem com um
conjunto de convenções para orientá-lo no desenvolvimento de sua aplicação.

Proteger
CakePHP vem com built-in ferramentas para validação de entrada, proteção
CSRF, proteção adulteração Form, prevenção de injeção SQL, prevenção XSS,
ajudando você a manter seu aplicativo seguro.

PHP com Banco de Dados 175


Centro de Educação à Distância do Ceará - CED

6.3. O Solar Framework

Solar é um framework de aplicações web para PHP 5. É a ideia de Paul M.


Jones. Outros desenvolvedores estão trabalhando em componentes adicionais
para o pacote de distribuição de projeto padrão, tudo sob a nova licença BSD,
o download dela pode ser encontrado em http://solarphp.com/.

Este framework permite Integração completa dos padrões de desenvolvimento,


como: MVC, Query Objetos, Lazy Load. Abaixo temos algumas características
deste framework.

Elegante e consistente: A própria base de código é fácil de


compreender, adere a convenções de nomenclatura bem
documentadas, e apresenta forte integridade conceitual.
Nome Completo E-spacing: As classes solares têm o seu próprio PHP
5.2, tornado mais fácil para misturar e combinar componentes de outras
bibliotecas e frameworks.

Configurações herdadas de classe: Defina um valor no arquivo de


configuração para uma classe, e todos os seus filhos herdam esses
valores por padrão.

Localização herdada por classe: Defina as strings de locale para uma


classe, e todos os seus filhos herdam.

Segurança fácil de usar: Segurança de profundidade contra injeção de


SQL, cross-site scripting, cross-site request forgery e outros exploits
comuns.

Modelo de sistema robusto: Que permite criar formulários


automaticamente a partir de objetos de registro.

Filtragem de dados: Extensível para validar e limpar entradas (input) do


usuário.

PHP com Banco de Dados 176


Centro de Educação à Distância do Ceará - CED

PHP com Banco de Dados 177


Centro de Educação à Distância do Ceará - CED

6.4. O symfony Framework

A primeira versão do symfony foi lançada em Outubro de 2005 pelo fundador


do projeto Fabien Potencier. Fabien é o CEO da Sensio
(http://www.sensio.com/), uma agência web francesa muito conhecida pelos
seus pontos de vista inovadores sobre desenvolvimento web.
symfony é um framework completo projetado para aperfeiçoar o
desenvolvimento de aplicações web, através de várias características. Para
começar ele separa um aplicativo web das regras do negócio, lógica e
apresentação. Ele contém diversas ferramentas e classes que visam reduzir o
tempo de desenvolvimento de uma complexa aplicação web. Além disso, ele
automatiza tarefas comuns, para que o desenvolvedor possa se concentrar
inteiramente nas especificidades da aplicação. O resultado final dessas
vantagens é que não há necessidade de reinventar a roda a cada vez que um
novo aplicativo web é construído.

O symfony foi escrito inteiramente em PHP 5. Ele foi testado em vários projetos
do mundo real, é na verdade, no uso de alta demanda em sites de negócio. Ele
é compatível com a maioria das bases de dados disponíveis, incluindo o
MySQL, PostgreSQL, Oracle e Microsoft SQL Server. No site do projeto
http://symfony.com/, podemos fazer o download deste framework.
Ele roda em plataformas Windows e Unix. Abaixo temos às suas
características.

Características symfony
O symfony foi construído a fim de cumprir os seguintes requisitos:

Fácil instalação e configuração em mais plataformas (garantido para


trabalhar no padrão Unix e Windows).
Mecanismo de banco de dados independente.
Simples de usar, na maior parte dos casos e suficientemente flexível
para se adaptar aos casos complexos.
Baseado na premissa de convenção sobre a configuração, o
desenvolvedor precisa configurar apenas o convencional.
Compatível com a maioria das melhores práticas web e padrões de
design.
Código legível, documentação e fácil manutenção.

PHP com Banco de Dados 178


Centro de Educação à Distância do Ceará - CED

Fácil de estender, permitindo a integração com outras bibliotecas.

PHP com Banco de Dados 179


Centro de Educação à Distância do Ceará - CED

6.5. O Zend Framework


A ZEND é uma empresa fundada em 1999 por Andi Gutmans e Zeev Suraski e
é a responsável pela manutenção e desenvolvimento de produtos e serviços
para a linguagem PHP. O Zend Framework foi lançado no dia 04 de março de
2006 e inclui diferentes componentes desenvolvidos em PHP5 para prover alta
qualidade para desenvolvimento de aplicações web e web services.

O Zend Framework fornece código limpo estável, é baseada em PHP e


orientada a objetos, usa o paradigma MVC, possui contribuidores de software
livre, contribuidores que assumem responsabilidade pelo fato de seu código
não ser propriedade intelectual de terceiros, podemos fazer o download do
framework no site http://framework.zend.com/.

Este framework tem como meta facilitar sua vida de programação, não apenas
em geral, instituindo o padrão MVC, mas também para coisas específicas que
você tende a fazer o tempo todo, como acessar bancos de dados e geração de
arquivo PDF.

A estrutura componente do Zend Framework 2 é único, cada componente é


projetado com poucas dependências em outros componentes. Segue o
princípio de projeto orientado a objetos sólidos.

Essa arquitetura flexível permite aos desenvolvedores usar quaisquer


componentes, na tabela abaixo vamos conhecer estes componentes.

Componentes da Zend Framework incluem:

PHP com Banco de Dados 180


Centro de Educação à Distância do Ceará - CED

Zend_Controller Esse módulo fornece o controle geral para o


aplicativo. Converte pedidos em ações específicas e
assegura que sejam executados.

Zend_Db Esse é baseado em PHP Data Objects (PDO) e


fornece acesso a bancos e dados de forma genérica.

Zend_Feed Esse facilita o consumo de alimentações RSS e


Atom.

Zend_Filter Esse fornece funções de filtragem de string, como


isEmail() e getAlpha().

Zend_InputFilter Para Zend_Filter, esse é projetado para trabalhar


com arrays como entradas de formulário.

Zend_HttpClient Esse possibilita executar pedidos HTTP facilmente.

Zend_Json Esse possibilita converter objetos PHP facilmente em


JavaScript Object Notation e vice-versa.

Zend_Log Esse fornece funcionalidade de criação de log de


propósito geral.

Zend_Mail Esse possibilita que você envie texto e e-mail MIME


com diversas partes.

Zend_Mime Esse é usado pelo Zend_Mail para ajudar a


decodificar mensagens MIME.

Zend_Pdf Esse possibilita criar novos documentos PDF e


carregar e editar documentos PDF existentes.

Zend_Search Esse possibilita executar procuras sofisticadas em


seu próprio texto. Por exemplo, é possível construir
um mecanismo de procura que retorne resultados
baseados na relevância ou em outros fatores.

Zend_Service_Amazon, Esses fornecem fácil acesso a essas APIs de serviço


Zend_Service_Flickr e da Web.
Zend_Service_Yahoo

Zend_View Esse manipula a parte "view" do padrão MVC.

Zend_XmlRpc Esse possibilita criar facilmente um cliente XML-


RPC. (Os recursos do servidor são planejados para o

PHP com Banco de Dados 181


Centro de Educação à Distância do Ceará - CED

futuro).

Tabela 12 - Componentes da Zend Framework

PHP com Banco de Dados 182


Centro de Educação à Distância do Ceará - CED

Referências Bibliográficas

Niederauer, J. Web Interativa com Ajax e PHP. Novatec.

Silva, M. S. JQuery A Biblioteca

Almeida, R. S. Php Para Iniciantes. CIENCIA MODERNA.

Bibeault, B., & Katz, Y. Jquery em Ação. Alta Books .

Dall´oglio, P. Php - Programando com Orientação a Objetos - 2ª Ed. 2009. NOVATEC.

http://jquerymobile.com/demos/1.0rc1/docs/api/events.html. (s.d.). Acesso em 13 de 11 de


2012, disponível em jquerymobile:
http://jquerymobile.com/demos/1.0rc1/docs/api/events.html.

http://jquerymobile.com/demos/1.2.0/docs/pages/index.html. (s.d.). Acesso em 20 de 11 de


2012, disponível em jquerymobile: http://jquerymobile.com

Legnstorf, J. Pro Php e Jquery. Php Para Iniciantes.

Morrison, M. Use a Cabeça Javascript. Alta Books .

Powers, S. Aprendendo Javascript. Novatec.

Rutter, J. Smashing Jquery - Interatividade Avançada Com Javascript Simples. Bookman.

Silva, M. S. Javascript - Guia do Programador. Novatec.

Silva, M. S. jQuery Mobile Desenvolva aplicações web para dispositivos móveis. Novatec.

Silva, M. S. Jquery Ui - Componentes de Interface Rica Para Suas Aplicações Web. Novatec .

do Programador JavaScript. Novatec.

PHP com Banco de Dados 183

Você também pode gostar