Escolar Documentos
Profissional Documentos
Cultura Documentos
Linguagem de Programao
para Web
Ewerton Mendona
2014
Presidenta da Repblica
Dilma Vana Rousseff
Vice-presidente da Repblica
Michel Temer
Secretrio de Educao
Jos Ricardo Wanderley Dantas de Oliveira
Ministro da Educao
Jos Henrique Paim Fernandes
Coordenao do Curso
Joo Ferreira
Coordenao de Design Instrucional
Diogo Galvo
Reviso de Lngua Portuguesa
Letcia Garcia
Diagramao
Izabela Cavalcanti
Sumrio
INTRODUO .......................................................................................................................3
1.COMPETNCIA 01 | INTRODUO PROGRAMAO PARA WEB E CONSTRUO DO
AMBIENTE DE DESENVOLVIMENTO ......................................................................................4
1.1 Programao para Web ...................................................................................... 4
1.2 PHP: Histrico e Definio .................................................................................. 6
1.3 Servidor de Teste................................................................................................ 8
1.4 IDE ................................................................................................................... 14
1.5 Testando o Ambiente ....................................................................................... 19
1.6 Projeto ............................................................................................................. 24
CONCLUSO .......................................................................................................................88
REFERNCIAS .....................................................................................................................89
MINICURRCULO DO PROFESSOR .......................................................................................90
INTRODUO
Este o nosso caderno de estudos da disciplina de Desenvolvimento para
Web. Nele encontraremos informaes introdutrias sobre a linguagem de
programao para sites chamada de PHP.
Chamamos o PHP de uma linguagem porque ela uma forma de comunicao
com o computador. Ela possui regras de gramtica e ortografia muito rgidas,
ou seja, o computador s entende da maneira correta. Um errinho de grafia
ou uma troca de lugar e o interpretador no vai entender o que voc quer que
ele faa. Por isso, tenha muita ateno e cuidado ao escrever os cdigos. Se
algo der errado, verifique letra a letra, palavra a palavra e linha a linha, para
ver se voc no escreveu algo errado. A maior parte dos erros no comeo do
aprendizado acontece devido a problemas de digitao.
Outro ponto de extrema importncia a sua dedicao na execuo dos
exemplos e atividades. O ser humano aprende por repetio. A cada exemplo
visto e atividade realizada voc entende melhor um conceito. Repita os
exemplos e atividades at se sentir confortvel com a ideia apresentada.
Programao uma arte na resoluo de problemas e, muitas vezes, vamos
ter que usar a criatividade para resolver algo com os comandos que temos,
porque nem tudo pode ser copiado de algum lugar. Mas para chegarmos a
este ponto, precisamos repetir, repetir e repetir. Quando terminar os
exemplos e atividades disponibilizados, procure outros exemplos na internet e
se dedique para entender como o problema resolvido. Assim, logo voc
estar criando suas prprias solues.
Vamos comear com um pouquinho de histria sobre o PHP e criando um
ambiente de desenvolvimento para podermos trabalhar confortavelmente e
testar as aplicaes em nosso prprio computador, sem precisar enviar para
um servidor de pginas na web.
Bom estudo.
Competncia 01
1.COMPETNCIA 01 | INTRODUO PROGRAMAO PARA WEB
E CONSTRUO DO AMBIENTE DE DESENVOLVIMENTO
Antes de contarmos um pouquinho da histria do PHP, vamos falar um pouco
sobre linguagem de programao, diferentes tipos de linguagem de
programao e onde o PHP est nesta classificao.
Depois vamos construir um ambiente de desenvolvimento para web passo a
passo. Precisaremos baixar e instalar alguns programas gratuitos, faremos um
teste construindo nossa primeira aplicao, o famoso Hello world! do
mundo da programao.
Por fim, veremos como ficar a aplicao que iremos desenvolver nas
prximas competncias.
E ento, prontos para comear?
1.1 Programao para Web
O computador ainda no entende exatamente o que o ser humano fala. O que
o computador entende so zeros e uns. Graas velocidade que possui, ele
pode ler uma gigantesca quantidade de zeros e uns e fazer coisas incrveis,
mas, para os seres humanos impossvel instruir o computador desta forma.
Por isso, foram criados cdigos que do ordens bsicas. A organizao dessas
ordens uma gramtica e seu conjunto de palavras chaves sua ortografia, e
assim temos uma linguagem. Uma forma de comunicao com um
computador que diz a ele o que para ele fazer e quando.
Dessa forma podemos escrever mais facilmente e pedir para uma aplicao
traduzir esta linguagem para a que o computador entenda, ou seja, dizemos
que uma linguagem mais prxima dos seres humanos de alto nvel, j a
linguagem de zeros e uns de baixo nvel.
Tcnico em Informtica
Competncia 01
Essa traduo pode possuir duas abordagens: compilativa e interpretativa.
Na compilao a traduo feita de uma vez. Todo o programa traduzido
para a linguagem de baixo nvel e pode ser executado indefinidamente sem
precisar ser compilado novamente. como se um tradutor de ingls pegasse
um livro e traduzisse ele para o portugus. O livro traduzido pode ser
impresso vrias vezes sem precisar ser traduzido novamente. Como exemplos
de linguagem compilativas temos Pascal e C.
Na interpretao a traduo realizada enquanto as linhas so lidas. Toda vez
que a linha lida traduzida e executada. como se um tradutor estivesse
em uma palestra e enquanto o palestrante fala ele vai traduzindo para o
pblico. Se o palestrante repetir tudo de novo, em um momento que ele
precise explicar novamente para algum, o tradutor ter que traduzir
novamente. Ento, se uma linha for lida mil vezes em um cdigo, ser
interpretada e executada mil vezes. Como exemplo de linguagens
interpretativas temos o PHP, Python e JavaScript.
A forma como a internet construda privilegia as linguagens interpretativas.
Observe a Figura 1. No passo 1, o usurio solicita uma pgina para um
servidor web. O servidor percebe que a pgina solicitada uma aplicao em
PHP e solicita sua interpretao no passo 2. Como resultado, o interpretador
pode criar uma pgina web com o resultado da computao e envia como
resposta para o usurio no passo 3.
Competncia 01
Tcnico em Informtica
Competncia 01
links para a comunidade de desenvolvedores e o cdigo-fonte do PHP.
Por ser uma linguagem de programao que executada do lado do servidor,
ela deve ser instalada junto a um servidor de pginas web. Se voc for
contratar um servio de hospedagem de websites deve verificar se no servidor
est instalado o PHP e qual a verso.
Agora vamos pegar um pouco mais de intimidade com o PHP conhecendo um
pouco de sua histria de vida.
No incio da dcada de 90, as pginas web pouco faziam. Naquela poca as
pessoas escreviam uma pgina e depositavam em um servidor web para
serem acessadas. Apenas isso. Se o autor quisesse que ela mudasse algo, ele
teria que editar a pgina e reenviar. No existiam aplicativos web, ecommerce, nem blogs, como conhecemos hoje.
Ento, em 1994, um programador chamado Rasmus Lerdorf, criou uma srie
de programas do tipo CGI que faziam computao em pginas web. Esse
conjunto de ferramentas foi chamado de Personal Home Page Tools. O PHP
comeou desta forma. E a ideia era muito boa.
Com o tempo, Rasmus foi melhorando suas aplicaes e em 1997 ele lanou o
PHP/FI, o FI de Forms Interpreter, que era um interpretador de comandos
SQL. O que possibilitou o uso de bancos de dados.
Outros programadores entraram para o time de desenvolvimento do PHP, at
que Zeev Suraski lanou o PHP 3.
Pouco tempo depois, Zeev e Andi Gutmans, escreveram o PHP 4, que
substituiu totalmente o PHP 3 e deu muito mais recursos e poder ao PHP,
alm de implantar um novo paradigma de programao: a orientao a
objeto. Nesta competncia, utilizaremos o paradigma procedura, que mais
fcil de ser entendido. Na prxima, aprenderemos a programar em PHP em
orientao a objetos, que o paradigma dominante atualmente.
Competncia 01
1.3 Servidor de Teste
Um servidor um programa de computador que serve algo. Podemos ter um
servidor de e-mail que serve e-mails, um servidor de stream de vdeos que
quem envia o vdeo, como no YouTube, e tambm temos um servidor que
serve as pginas web.
A instalao do PHP deve ser feita em um servidor web j instalado. Ento,
para testarmos nossas pginas PHP precisamos de uma empresa que fornea
isso? No.
Podemos instalar um servidor em nosso computador junto com o PHP e
testarmos nosso cdigo PHP localmente. A isso, damos o nome de servidor
local. Atente para o fato de que nosso servidor local, ou seja, as pginas
apenas sero vistas em nosso computador.
Quando nossa programao estiver pronta, podemos envi-las para um
servidor que contratarmos para que seja disponibilizada mundialmente.
Existem algumas empresas que disponibilizam pequenas aplicaes PHP de
forma gratuita, algumas colocam propaganda nas pginas como forma de
rendimento.
Parece muito complicado? O pessoal do Apache Friends tambm achou e
desenvolveu um pacote j com tudo de que precisamos para testar as pginas
PHP, e o melhor, sem precisar instalar nada. Voc pode levar todo o seu
projeto, junto com servidor, banco de dados, etc., prontinho no pen drive. E
ainda mostrar no computador do cliente ou continuar o desenvolvimento em
outros computadores sem se preocupar em instalar o servidor de teste. Legal,
n?
Ento, vamos baixar esse pacote mgico, seu nome XAMPP. O link para o
site est na legenda da Figura 2. Ele todo em portugus. Voc ir baixar o
arquivo apontado na Figura 3, que a verso portable.
Portable o tipo de
programa que pode
ser executado em
uma mquina sem
que precise ser
instalado. timo
para ser
transportado
utilizando um pen
drive.
Tcnico em Informtica
Competncia 01
Figura 2 Link para o site www.apachefriends.org/pt_br/index.html , voc pode baixar a verso para seu
sistema operacional por aqui.
Fonte: prprio autor.
Competncia 01
Descompacte o arquivo em um bom lugar, preferencialmente na raiz de seu
sistema operacional, e memorize sua localizao. Dentro h vrios programas,
entre eles o Apache, que um servidor de pginas web com o PHP j
instalado e o banco de dados web MySQL. Alm disso, o pessoal ainda
colocou o phpMyAdmin, um aplicativo web feito com PHP para gerenciar os
bancos do MySQL. Com ele voc pode criar as tabelas, campos, visualizar e
gerenciar tudo no MySQL.
Antes de podermos testar o servidor, temos que configurar sua localizao.
No se preocupe que tudo ser muito fcil. Dentro da pasta que voc
descompactou procure o arquivo setup_xampp.bat e execute-o. O que ele faz
descobrir onde esto os servidores. Isso s preciso porque voc pode levar
esta pasta no pen drive para outros lugares, assim a localizao pode mudar
muito. Sempre que voc mudar a pasta de lugar, vai ter que executar este
arquivo para configura a localizao, mas se no mudar de lugar no precisa
repetir o processo.
Ir aparecer a janela da Figura 4. Aguarde at aparecer uma mensagem
dizendo que a atualizao foi realizada. Pressione, ento, qualquer tecla para
que a janela desaparea.
10
Tcnico em Informtica
Competncia 01
11
Competncia 01
12
Tcnico em Informtica
Competncia 01
Para desligar tudo voc primeiro deve clicar nos botes Stop e esperar para
desligar os servidores, depois pressionar o boto Quit apontado na Figura 7.
Se no fizer isso, o painel de controle pode desligar e deixar os servidores
funcionando. Tenha ateno!
Agora que tudo est instalado, configurado e funcionando vamos testar nosso
ambiente de teste. Abra seu navegador preferido e digite o endereo
http://localhost/xampp/. A pgina da Figura 8 deve abrir. Selecione a
linguagem Portugus (Brasil) e vai aparecer a pgina da Figura 9. Esta pgina
no est na internet, foi servida pelo seu servidor local.
13
Competncia 01
14
Tcnico em Informtica
Competncia 01
APTANA foi desenvolvido em Java. O Java tambm gratuito. Outra coisa,
Java e JavaScript so linguagens diferentes. Ento vamos l?
V para o site da Oracle neste endereo: www.oracle.com/technetwork/j
va/javase/downloads/index.html
Vai aparecer a pgina da Figura 10. Clique no boto apontado na imagem.
Voc ir para a pgina da Figura 11.
15
Competncia 01
Depois de instalado, voc ser direcionado a uma pgina onde pode,
opcionalmente, criar uma conta na Oracle para registrar sua instalao. Mas
voc no precisa fazer isso.
16
Tcnico em Informtica
Competncia 01
Quase pronto. Vamos agora baixar o Aptana pelo site, Figura 13:
www.aptana.com/
Clique no boto azul e voc ser direcionado para a pgina de downloads da
Figura 14. Clique no boto azul para fazer o download do instalador do
Aptana. Caso queira baixar para outro sistema operacional, clique no boto
cinza que diz Customize your downloads. Voc poder escolher a verso
Linux ou MacOS.
17
Competncia 01
Figura 14 Pgina de downloads do Aptana. O boto Customize Your Download exibe verses para
outros sistemas operacionais.
Fonte: prprio autor.
18
Tcnico em Informtica
Competncia 01
Vai aparecer uma caixa de dilogo solicitando a pasta, que ser o Workspace,
o espao de trabalho onde sero guardados os arquivos de seus projetos.
Escolha a pasta htdocs que est dentro da pasta do XAMPP. Assim, seus
projetos j ficam logo no local onde sero testados.
Depois disso, ir parecer outra caixa de dilogo de configurao do Git.
Marque a nica opo que a caixa disponibiliza e pressione OK.
Por fim o Windows ir lhe perguntar sobre a permisso de acesso, permita.
Pronto, instalao concluda.
1.5 Testando o Ambiente
Agora que temos tudo pronto, vamos testar o nosso ambiente de
desenvolvimento. Para isso, vamos fazer uma pgina simples em PHP, o nosso
Hello world!.
Na pasta htdocs no
XAMPP ficam as
pastas contendo os
sites que podem ser
acessados. Em alguns
outros servidores
pode ter o nome de
www.
Assista ao vdeo
abaixo que d dicas
extras e demonstra
todo o processo de
instalao. Seria bom
que voc assistisse
antes de instalar.
Caso voc precise de
mais detalhes
explicativos sobre a
instalao do Aptana
Studio 3, assista a este
vdeo tutorial no
YouTube.
www.youtube.com/w
atch?v=0XMTl8Y9Yu0
19
Competncia 01
No Aptana Studio 3 cada site que produzimos um projeto. Ento, a primeira
ao a tomar criar um projeto. No Aptana h diversas formas de se fazer
isso, uma delas utilizando o menu textual. Selecione File > New > Project... ,
como na Figura 16.
20
Tcnico em Informtica
Competncia 01
Ir aparecer uma nova janela e voc deve colocar o nome do projeto. Vamos
colocar o nome do projeto helloworld. Observe na Figura 18.
No painel do App Explore aparece o nome do projeto. J no painel do Project
Explorer voc poder ver todos os projetos de seu workspace. Observe
tambm na Figura 18.
Como o projeto
destinado web,
no utilize
espaamentos para
nomes compostos
ou caracteres. Voc
tambm deve ter
este cuidado para
os nomes dos
arquivos das
pginas. No so
em todos os casos
que podemos
utilizar qualquer
nome de arquivo,
ento, evite.
Figura 18 Janela para nomear o projeto. Do lado esquerdo, o painel App. Explorer j com o
projeto criado.
Fonte: prprio autor.
21
Competncia 01
Se voc for pasta htdocs, local onde criamos nosso workspace, estar l
nosso projeto helloword no formato de uma pasta.
S que nosso projeto est vazio, vamos ento fazer nossa primeira aplicao
web super simples em PHP, para testarmos se tudo est funcionando.
No painel App Explorer clique em qualquer lugar em sua rea preta com o
boto direito. Ir aparecer um menu contextual, selecione New From
Template > PHP > PHP Template, como na Figura 19. Ir aparecer uma janela
perguntando o nome do arquivo. Escreva index.php e clique em Finish.
22
Tcnico em Informtica
Competncia 01
Figura 21 Painel App Explorer exibe o arquivo index.php no projeto helloworld. Ao lado o arquivo
index.php aberto e exibindo seu contedo.
Fonte: prprio autor.
Existe uma
configurao em
todo servidor web
que configura a
primeira pgina a
ser lida de um site
como index.html ou
index.htm ou
default.html ou
default.htm, mas
tambm aceito
index.php quando o
PHP est instalado
no servidor.
Para finalizar vamos editar o arquivo. Apague a linha onde est escrito
phpinfo(); e escreva echo Oi mundo!;. Por enquanto, irei explicar apenas
que esta linha escreve o que est escrito entre aspas. Clique no cone indicado
23
Competncia 01
na Figura 22 para salvar o arquivo.
Figura 22 cone que salva o arquivo editado. Tambm acessvel utilizando as teclas de atalho
Ctrl + S.
Fonte: prprio autor.
1.6 Projeto
Apenas aprender a nos comunicar com o computador para transmitir ordens
no suficiente. Ns temos que saber o que pedir. Para isso, uma aplicao
web foi desenvolvida como exemplo de utilizao da tecnologia. Nela foram
utilizados um CSS personalizado e o Bootstrap, para que ele ficasse mais
atrativo. Voc no precisa entender o Bootstrap para aprender PHP, mas
Este vdeo
demonstra o nosso
passo a passo de
teste e contm mais
algumas
informaes sobre
a administrao de
projetos no Aptana
Studio 3. Seria
muito bom que
voc assistisse.
www.youtube.com/
watch?v=MD69zTM
obSM
24
Tcnico em Informtica
Competncia 01
como o PHP gera pgina HTML muito importante que voc j domine o
HTML e o CSS.
Para faz-lo essencial que se dedique nas prximas competncias para
entender todas as palavras chaves e estruturas da linguagem PHP. No fique
com dvidas. Caso o caderno de estudos ou os vdeos disponibilizados no
sejam suficientes, procure ajuda no frum do AVA. Se mesmo assim ainda no
resolver, dedique-se mais um pouco e procure tutoriais na internet ou vdeo
tutoriais no YouTube. Tem muita gente legal disposta a ajudar sem receber
nada em troca e s vezes uma forma diferente de explicar pode ajudar
bastante, mas tudo depende de seu esforo.
25
Competncia 02
2.COMPETNCIA 02 | FUNDAMENTOS DA LINGUAGEM PHP
Esta competncia muito importante. Ela a base para todo o resto. Seu
comprometimento no estudo dela deve ser total, pois a fundao para as
prximas competncias at finalizarmos o sistema PorpcornTV. Assim, faa
todos os exemplos e atividades e os repita para a melhor compreenso.
Aqui, aprenderemos as palavras-chaves bsicas e a forma de orden-las.
Assim, as ordens passadas para o computador faro sentido e ele poder
cumpri-las.
2.1 Pginas PHP
26
Tcnico em Informtica
Competncia 02
misturado. Para que o servidor saiba que so pginas PHP, ao invs de
colocarmos a extenso .html, colocamos .php. Podemos enviar para o
servidor uma pgina PHP contendo apenas cdigo HTML. O servidor vai ter
todo o trabalho descrito na Figura 25 e ir retornar mesma pgina, sem
realizar qualquer computao. Quando formos fazer nosso sistema de
locadora teremos casos como este.
27
Competncia 02
O comando echo escreve o que est logo aps, entre aspas duplas. Vamos
escrever Oi mundo!, utilizando PHP. Veja a Figura 26 que exibe o contedo
de oi.php.
Na sesso 2.5 vimos como testar o ambiente. Teste esta pgina para ver o
resultado exibido na Figura 27. Tenha certeza de ter ligado o XAMPP
adequadamente como explicado na sesso 2.3.
Voc pode abrir e
fechar vrias sesses
de cdigo PHP
misturados na mesma
pgina HTML.
Lembre-se de sempre
comear com <?php e
terminar com ?>
antes de comear
outra sesso.
28
Tcnico em Informtica
Competncia 02
Para fazer um comentrio de vrias linhas colocamos no comeo /* e no final
das linhas */. As linhas comentadas so ignoradas pelo interpretador na hora
da computao. Veja o exemplo na Figura 28.
2.3 Variveis
Variveis so como gavetas ou caixas na memria do computador onde
guardamos algo. Para trabalhar com dados, precisamos guardar seus valores
em um lugar que seja fcil de encontrar mais tarde. Por isso, cada gaveta da
memria deve ser etiquetada. Estas gavetas chamam-se variveis.
muito parecido com matemtica. Veja o exemplo:
O aprendizado ser
mais rpido e
eficiente se voc
exercitar, ento
faa a seguinte
atividade.
Desenvolva uma
pgina PHP que
escreve seu nome
em uma tag <H1>
(como foi feito no
exemplo, utilizando
o comando echo) e
o motivo de voc
querer aprender
PHP em uma tag
<P> logo abaixo da
<H1>.
x=2
y=5
z=x+y
Na matemtica ns utilizamos as letras para representar um valor. Dessa
forma podemos entender que z representa o valor de 7 em nosso exemplo.
Em PHP estas letras so as variveis.
Da mesma forma que na matemtica, as variveis em PHP podem ser
utilizadas para guardar valores (x=2) e expresses (z=x+y).
O nome das
variveis pode ser
composto de mais
de uma letra.
Coloque nomes que
relacionem com o
contedo da
varivel. Outro
ponto: podemos
guardar no s
valores nas
variveis, mas
tambm outras
coisas.
29
Competncia 02
2.3.1 Nome de Variveis
O nome da varivel no precisa ter apenas uma letra, como x e y. Seria muito
melhor que descrevessem o que ela guarda, por exemplo, idade, nome,
volume, etc.
Voc pode colocar qualquer um desses, desde que respeite as regras abaixo:
Uma varivel deve comear com o sinal de cifro $, seguido pelo nome da
varivel;
O nome de uma varivel deve comear com uma letra ou com os
caracteres de sublinhado;
O nome de uma varivel s pode conter caracteres alfanumricos e
sublinhados (Az, 0-9 e _ );
O nome de uma varivel no deve conter espaos;
PHP distingue maisculas de minsculas, dessa forma $nome, $Nome,
$NOME e $nOmE so variveis diferentes.
Quando guardamos
uma sequncia de
caracteres
utilizamos as aspas
duplas para marcar
seu comeo e seu
fim, como no
exemplo anterior.
30
Tcnico em Informtica
Competncia 02
2.3.3 Escopo de uma Varivel
No podemos acessar nossas variveis em qualquer lugar do cdigo. Elas
pertencem a um determinado local, a este local chamamos de escopo.
Temos quatro tipos de escopo:
Local;
Global;
Esttico;
Parmetro.
31
Competncia 02
dela so apagadas.
2.3.3.2 Escopo Global
Uma varivel que declarada fora de uma funo tem um escopo mais
abrangente sendo classificada como global.
Uma varivel global pode ser acessada em qualquer lugar do programa,
menos dentro de uma funo.
Mas podemos chamar uma varivel global dentro de uma funo, utilizando a
palavra chave global. Vamos ver um exemplo na Figura 30:
32
Tcnico em Informtica
Competncia 02
Esta aplicao escreve 012, mostrado que o valor persistiu depois que a
funo foi encerrada.
2.3.3.4 Escopo de Parmetro
Podemos passar valores para as funes atravs dos parmetros. Veremos
melhor funes e parmetros na prxima competncia, mas por agora
entenda que variveis de parmetro possuem escopo local. Vamos ver um
exemplo na Figura 32.
33
Competncia 02
sequncia de caracteres, por exemplo, que formem o nome Fulano de Tal. A
essa sequncia de caracteres damos o nome de string. O PHP tem diversas
funes que manipulam strings. Vamos ver algumas delas mais adiante.
Podemos utilizar strings diretamente ou guardar em uma varivel. Veja o
exemplo abaixo na Figura 33.
Atente para a
utilizao de aspas
duplas para marcar
o incio e o fim da
sequncia de
caracteres.
34
Tcnico em Informtica
Competncia 02
2.4.2 Funo strlen( )
Entregamos como parmetro desta funo uma string e ela conta a
quantidade de caracteres. A Figura 35 mostra um exemplo.
escrito 10.
A resposta do
exemplo 10 e no
11 porque em PHP
comeamos a contar
de zero e no de um.
2.5 Operadores
Os operadores servem para executar uma operao em uma expresso, como
as operaes de soma, subtrao, multiplicao e diviso. muito parecido
como a matemtica, mas em linguagens de programao temos vrios outros.
Em PHP temos os seguintes operadores:
Operadores Aritmticos;
Operadores de Atribuio;
Faa um algoritmo
(programa) que
guarda seu nome
completo em uma
varivel string,
exibindo-o
concatenado com a
quantidade de letras
e a posio de incio
de seu ltimo nome.
35
Competncia 02
NOME
DESCRIO
EXEMPLO
RESULTADO
x+y
x-y
x*y
x/y
x%y
-x
Adio
Subtrao
Multiplicao
Diviso
Mdulo
Negativo
Soma de x e y
Subtrao de x e y
Produto de x por y
Quociente de x por y
Resto da diviso de x por y
Inverte o sinal de x
2+2
7-2
3*2
4/2
5%2
-2
4
5
6
2
1
2
COMO SE FOSSE...
x=y
x=y
x += y
x -= y
x *= y
x /= y
x %= y
x .= y
x=x+y
x=xy
x=x*y
x=x/y
x=x%y
x=x.y
DESCRIO
NOME
DESCRIO
++x
x++
--x
x- -
pr-incremento
ps-incremento
pr-decremento
ps-decremento
NOME
DESCRIO
EX.
RES.
x == y
x != y
x <> y
x>y
x<y
Igual
No igual
Diferente
Maior que
Menor que
Maior que ou
igual
Menor que ou
igual
2 == 3
2 != 3
2 <> 3
3>2
2<3
false
true
true
true
true
3 >= 3
true
2 <= 3
true
x >= y
x <= y
36
Tcnico em Informtica
Competncia 02
2.5.5 Operadores Lgicos
OPERADOR
NOME
x and y
x or y
ou
x && y
x || y
ou
!x
no
DESCRIO
EXEMPLO
x=1; y=9
(x < 3 and y > 5)
x=1; y=9
(x == 1 or y == 2)
x=1; y=9
(x < 3 && y > 5)
x=1; y=9
(x == 1 || y == 2)
x = 1, y = 9
!(x == y)
RESULTADO
true
true
true
true
true
2.6 Echo
J utilizamos algumas vezes o echo para escrever os resultados da
computao, mas o que est sendo exibido texto sem as tags HTML.
Podemos melhorar esta sada colocando qualquer tag HTML na string.
No s podemos escrever tags, como tambm podemos colocar as variveis
na string e o interpretador PHP vai substituir seus nomes pelos respectivos
valores. Observe o exemplo da Figura 38 e veja o resultado na Figura 39.
Os operadores de
incremento e
decremento so os
mais difceis de
entender. Estude o
exemplo por mais
tempo at
compreender
porque foi exibido
para x 9, 9 e depois
10.
37
Competncia 02
Utilizamos apenas a
tag <h1> devido ao
espao deste
caderno, mas uma
pgina web tem
diversas outras
tags. Faa um
algoritmo que
escreva uma pgina
web simples, mas
completa.
2.7 If...Else
Linguagens de programao tm duas estruturas em comum: estruturas de
38
Tcnico em Informtica
Competncia 02
repetio e estruturas de condicionais. O if...else uma estrutura condicional.
Ela verifica uma condio, se for verdadeira faz algo, seno faz outra coisa.
Vamos ver sua sintaxe.
if (condio) comando;
if (condio) {
// Bloco de cdigo. Aqui pode ter vrias linhas.
}
Chegou a hora de
exercitar. Faa um
algoritmo que
tenha uma varivel
com a hora do
momento em que
voc est fazendo
este exerccio, por
exemplo, 3hs da
tarde. Utilize
if...else para dar
Bom dia! se for
menor que 12 e
Boa tarde! se no
for. Veja se
consegue dar
tambm Boa
noite! se passar
das 18.
39
Competncia 02
2.8 Switch
A estrutura if...else verifica se uma condio verdadeira ou falsa. No
entanto, podemos ter situaes onde o resultado da verificao pode ser de
mais de duas possibilidades. A escolha de um menu um exemplo dessa
situao, onde podemos ter vrias opes de escolha. Apesar de podermos
utilizar vrias estruturas de if...else para verificar o resultado da condio,
sero necessrias vrias linhas. Para encurtar e melhorar o entendimento
que foi criada a estrutura switch.
Switch uma estrutura de condio, assim como o if...else, que verifica uma
condio com vrias possibilidades de resposta. Sua sintaxe est abaixo:
switch (n) {
case x:
cdigo a ser executado se n igual a x;
break;
case y:
cdigo a ser executado se n igual a y;
break;
...
default:
cdigo a ser executado se n no for nenhuma das opes anteriores.
}
40
Tcnico em Informtica
Competncia 02
A Figura 43 mostra um exemplo.
O exemplo acima retorna Rockn Roll, baby!. Voc pode mudar o valor da
varivel $musica para ver os outros resultados. Tambm pode colocar um
valor que no existe nas opes para exibir a opo default.
2.9 Array
Um array uma varivel que guarda variveis. Ela muito til para armazenar
colees de um tipo, por exemplo, uma lista de nomes, onde cada nome
uma string. Se compararmos uma varivel a uma gaveta onde colocamos
coisas, um array um armrio com vrias gavetas ( Figura 44). Arrays tambm
so chamados de matrizes, como em matemtica.
Vamos fazer um
exerccio utilizando
switch.
Faa o mesmo
algoritmo da sesso
anterior, dessa vez
utilizando switch ao
invs do if...else.
Utilize as opes de
manh, tarde e
noite para os
cases. E exiba um
Bom dia!, Boa
tarde! e Boa
noite!
correspondente ao
valor da varivel
condicional. Caso
no seja nenhuma
das opes, escreva
um Ol!.
Imagine que voc possui uma lista de nomes de clientes. Se voc quiser
41
Competncia 02
guardar cada um dos nomes, vai precisar de uma varivel para cada nome.
Mas se sua lista de clientes for enorme, a vai ficar confuso ter tantas variveis
assim. Um array pode guardar toda a lista em uma nica varivel e podemos
localizar cada uma das gavetas do array por um ndice. Este ndice como
uma etiqueta na gaveta.
Em PHP podemos ter dois tipos de matrizes:
Matrizes indexadas;
Matrizes associativas.
42
Tcnico em Informtica
Competncia 02
2.9.1.1 Contando os Elementos de um Array
A funo count( ) nos d o total de elementos de um array. A Figura 47 nos
traz um exemplo. Essa funo de muita importncia, por isso decore-a bem.
Ela usada em estruturas de repetio para listas, de forma mais prtica do
que no exemplo da Figura 46. Estudaremos a estrutura de repetio mais
adiante.
Reproduza cada um
dos exemplos de
arrays em seu
computador.
Decore a forma de
us-los at no
precisar consultar o
caderno de estudos.
43
Competncia 02
estes no possuem o ndice numrico. Observe no exemplo que usamos uma
estrutura foreach que significa para cada. Dessa forma, percorremos o
array e pegamos seu nome de associao para poder exibir seu contedo.
Observe na Figura 49 um exemplo. Estudaremos a estrutura foreach mais
adiante.
Este um dos
exemplos mais
importantes.
Reproduza at
ented-lo
perfeitamente.
Figura 49 Exemplo de loop para arrays associativos.
Fonte: Prprio autor.
44
Tcnico em Informtica
Competncia 02
bloco de comandos;
}
2.10.2 Do...While
Esta estrutura repete o bloco de cdigo uma vez, e depois repete novamente
enquanto a condio especificada for verdadeira. Veja a sintaxe abaixo.
do {
bloco de comandos;
} while (condio) ;
45
Competncia 02
O exerccio anterior
foi difcil? Este
agora deve ser mais
fcil. Faa o
exerccio anterior
utilizando
do...while, ao invs
de while.
2.10.3 For
Esta estrutura de repetio usada quando se sabe com antecedncia o
nmero de repeties. Veja a sintaxe abaixo.
for (inicial; condio; incremento/decremento) {
bloco de cdigo;
}
Na sintaxe acima, inicial define uma varivel que ser o nosso contador.
Condio uma expresso para interromper a repetio. E
incremento/decremento usado para alterar o valor do contador.
O exemplo da Figura 52 define um ciclo que comea com $i = 1. A repetio
continuar a funcionar enquanto a varivel $i for menor que, ou igual a 5. A
varivel $i vai aumentar em 1 a cada vez que o loop executado.
Modifique o
exerccio anterior
para utilizar for.
Lembre-se de que
voc vai precisar de
um for dentro de
outro para
conseguir.
46
Tcnico em Informtica
Competncia 02
2.10.4 Foreach
usado para percorrer arrays associativas. Veja a sintaxe abaixo.
foreach ($array as $valor) {
bloco de cdigo;
}
Repita este
exemplo no seu
computador para
entend-lo melhor.
47
Competncia 03
3.COMPETNCIA 04
LINGUAGEM PHP
FUNDAMENTOS
AVANADOS
DA
Voc pode
encontrar toda a
lista de funes PHP
j construdas neste
endereo:
http://php.net/man
ual/pt_BR/indexes.f
unctions.php
48
Tcnico em Informtica
Competncia 03
a modificao em um lugar e no em vrios.
Usando funes, o cdigo fica mais simples e de fcil manuteno. Podemos
at utilizar funes de outras pessoas, sem nem mesmo saber como foi
programado.
Mas como so criadas as funes e como podemos utiliz-las?
3.1.1 Criando Funes PHP
Uma funo precisa de um nome e de um bloco de cdigo que ser executado
quando chamamos a funo pelo seu nome. Observe sua sintaxe bsica:
function nomeDaFuncao() {
bloco de cdigo;
}
Voc deve ter os seguintes cuidados quando for nomear uma funo:
Coloque um nome que reflete o que ela faz;
Nomes de funes podem comear com letras ou sublinhado, nunca por
nmeros.
Evite utilizar caracteres especiais como cedilhas e letras acentuadas.
Na Figura 54 temos um exemplo com uma funo e a chamada desta funo
em dois lugares diferente, na tag <title> e na tag <h1>. Esta funo escreve a
frase Oi mundo! quando chamada. Na mesma figura temos o resultado no
navegador. Como o PHP interpretado linha aps linha, a funo deve ser
criada antes de ser chamada.
49
Competncia 03
50
Tcnico em Informtica
Competncia 03
Pode parecer
simples a utilizao
de funes, mas
antes de prosseguir,
escreva e testes os
exemplos
apresentados, para
melhor fixao. A
prxima
competncia
utilizar muito do
que j foi visto,
principalmente
funes.
Agora, vamos
exercitar o que
vimos sobre
funes. J temos a
operao de soma,
faa as operaes
restantes
(subtrao,
multiplicao e
diviso). No
esquea de testar.
51
Competncia 03
3.2 Formulrios
At agora no recebemos nenhuma informao do usurio nos exemplos
anteriores. Utilizamos os dados que colocamos em variveis. Para poder
receber informaes do lado do cliente, ou seja, do usurio, utilizamos
hiperlinks ou formulrios.
Recebemos informao do usurio quando ele clica em um hiperlink,
chamado de mtodo GET, ou quando nos envia um formulrio, chamado de
mtodo POST. Ento vamos ver estas duas abordagens, suas vantagens e
desvantagens.
3.2.1 Mtodo GET
Este mtodo foi uma das primeiras formas de comunicao cliente/servidor
via web. Ele utiliza a URL do site para enviar dados.
Como vantagem, no precisa de um formulrio HTML, pode ser digitado
diretamente no hiperlink. No entanto, visvel para todos. Digitar senhas
utilizando o mtodo GET invivel.
Como realizado o envio de dados por GET: www.meusite.com.br/index.
php? nome= fulano&idade=30
Depois da interrogao, so enviadas duas variveis com seus respectivos
valores: nome = fulano, idade = 30. O & separa uma varivel da outra.
Dessa forma, podemos passar em um link alguns dados, mas existe um limite
de 2000 caracteres neste mtodo.
Para receber o dado no aplicativo PHP pelo mtodo GET, temos uma varivel
chamada $_GET. Tudo que enviado por este mtodo se encontra nesta
varivel. Seguindo o exemplo de envio acima, podemos receber o nome da
seguinte forma.
52
Tcnico em Informtica
Competncia 03
$_GET[nome]
Na Figura 57 temos uma pgina HTML que mostra um hiperlink para uma
pgina PHP enviando dados por GET. Na Figura 58 a pgina PHP recebe os
dados e escreve uma pgina de resposta dando um Oi! para o usurio.
Na Figura 58 vemos o resultado do algoritmo e o endereo com o nome da
varivel e o seu valor.
Figura 57 Pgina HTML, enviar.html, que envia dados pelo mtodo GET.
Fonte: Prprio autor.
53
Competncia 03
maioria dos formulrios que voc utiliza na web, incluindo aqueles do AVA,
utiliza este mtodo. As informaes passadas por ele so invisveis ao usurio
e ele tem uma capacidade virtualmente infinita de envio. Seu limite definido
pela configurao do PHP no servidor, que por padro de 8Mb. No entanto,
pode ser mais ou menos.
A forma de receber os dados muito parecida com o mtodo anterior, s que
utilizamos $_POST[varivel] para receber os dados.
Veja o exemplo na Figura 60. Nela temos um formulrio HTML comum, que
envia os dados pelo mtodo POST para uma pgina PHP, Figura 61. O
resultado definido na Figura 62. Observe na URL que os dados so enviados
de forma invisvel.
Figura 61 Exemplo de uma pgina PHP que recebe dados de um formulrio HTML pelo mtodo POST.
Fonte: Prprio autor.
54
Tcnico em Informtica
Competncia 03
Observe na Figura 61 que na tag <form> temos a opo method. Esta opo
seleciona se voc quer utilizar o mtodo GET no envio dos dados do
formulrio. No entanto, ser totalmente visvel o envio e teremos a limitao
de caracteres.
3.2.3 Varivel $_REQUEST
Os desenvolvedores do PHP implantaram a varivel $_REQUEST para os casos
onde no se sabe o mtodo de envio utilizado. Esta varivel d acesso s
variveis dos dois formulrios, tanto GET quanto POST.
Ela usada da mesma forma que $_GET e $_POST s que escrevemos
$_REQUEST no lugar. Veja o exemplo anterior utilizando $_REQUEST na Figura
63.
Muito da
comunicao entre
o usurio e nossa
aplicao ser
realizada por
variveis, por isso,
muito importante
que voc refaa os
exemplos dados
com bastante
ateno. Depois,
para exercitar, faa
uma pgina HTML
que envie sua cor
preferida por um
hiperlink utilizando
o mtodo GET.
Quando terminar,
construa uma
pgina com um
formulrio que
pede para o usurio
digitar sua cor
preferida enviando
pelo mtodo POST,
e exiba uma
mensagem dizendo
qual foi a cor.
55
Competncia 03
3.3 Include e Require
PHP nos d duas formas de inserir o contedo de outros arquivos PHP antes
que o interpretador execute nosso cdigo.
As duas formas de incluso so feitas atravs das palavras-chaves include e
require. A nica diferena entre eles est na forma como lidam com erros
quando o arquivo que ser acrescido no encontrado.
No caso do require o erro ser letal e a interpretao do compilador ir parar
a execuo no ponto do erro, enviando o cdigo e mensagem de erro.
No caso do include, a interpretao no para e emitido o aviso de erro no
local em que acontece.
Qual deles voc utilizar depende da importncia do que est sendo
acrescentado. Se o arquivo essencial para a aplicao, ento, utilizar o
require pode impedir que sejam expostas partes importantes do sistema. Mas
caso o que ser includo no arquivo no seja to relevante, utilizar o include
garante que o restante do script ser executado normalmente.
A sintaxe para incluir os arquivos :
include nomedoarquivo.php;
require nomedoarquivo.php;
56
Tcnico em Informtica
Competncia 03
arquivo util.php. Assim, sempre que for preciso, o inclumos no comeo do
arquivo.
Na Figura 64 temos uma pgina PHP que escreve um menu. Na Figura 65
temos outra pgina que faz o include do cdigo do menu.
Uma sesso PHP uma rea da memria que todas as pginas de sua
aplicao compartilham. Ela til para armazenar informaes do usurio
e/ou estado da aplicao. J que todas as variveis so apagadas com o fim do
algoritmo, na sesso temos um lugar seguro para guardar variveis quando o
usurio pula de uma pgina para outra do nosso site.
Por exemplo, quando voc vai fazer uma compra em uma loja virtual e digita
seu login e sua senha. O aplicativo da loja abre uma sesso para voc e
registra algumas informaes nela como nome do usurio e o seus produtos
57
Competncia 03
no carrinho, dessa forma, no importa o quanto voc navegue nas pginas da
loja, a aplicao vai continuar sabendo que voc at sair da loja, quando
tudo na sesso apagado.
Para utilizar uma sesso PHP, primeiramente temos que inici-la chamando a
funo session_start(). A Figura 66 mostra como fazer isto.
Caso queira retirar uma varivel da sesso, utilize a funo unset() da seguinte
forma:
Sesses so
importantes para
autenticao do
usurio. Ser que
voc j consegue
misturar o que
aprendeu? Vamos
ver? Faa um
formulrio que
envie um login e
uma senha e guarda
eessas informaes
em uma sesso.
Ento, mostre um
Bom dia, com o
nome do usurio
em uma pgina,
caso seja digitado
corretamente.
Assim, utilizaremos
o mtodo POST e
guardaremos em
uma sesso as
informaes e
podemos utilizar o
include em toda
pgina que
quisermos manter
em segredo.
unset($_SESSION[nomedavariavel])
Uma sesso destruda quando o usurio deixa o site. Mas caso voc queira
58
Tcnico em Informtica
Competncia 03
destruir uma sesso antes, por exemplo, por um boto de Sair, pode chamar a
funo session_destroy() para isso.
3.5 Funo ISSET()
Perceba que nosso contador de pginas do exemplo anterior s conta uma
pgina, o que no muito bom. Vamos melhorar aprendendo uma funo
muito til.
A funo isset() verifica se a varivel consta na memria. Se existir, retorna
verdadeiro, seno, falso.
Vamos melhorar nosso contador de pginas utilizando esta funo da forma
como est na Figura 68. Se a varivel estiver na sesso, ela soma um, seno
estiver, coloca na sesso com o valor de um.
Figura 68 Utilizando a funo isset() para saber se uma varivel existe na memria.
Fonte: Prprio autor.
Veja em seu navegador a pgina. Cada vez que voc atualiza o nmero de
visualizaes acrescentado um s visualizaes.
59
Competncia 04
4.COMPETNCIA 04 | PROJETO: INCLUINDO, ALTERANDO,
EXIBINDO E EXCLUINDO INFORMAES
Se voc leu com ateno o caderno de estudo, fez tanto os exemplos quanto
os exerccios e no ficou com dvida, ento est preparado para iniciar esta
nova competncia. Vamos usar o que aprendemos at agora para construir
um sistema de locadora de DVDs. Mas no s utilizar o que foi visto, nosso
sistema necessita da persistncia dos dados em um banco de dados. Para isso,
aprendemos anteriormente como construir e manusear um banco de dados.
Dessa forma, no iremos abordar esse assunto nesta competncia. Outra
competncia que no abordaremos ser a marcao HTML e o estilismo em
CSS, isso voc tambm j deve conhecer. O que aprenderemos ento ser
como o PHP se comunica com o banco de dados MySQL para incluir, alterar,
excluir e recuperar dados.
Primeiramente voc deve baixar no AVA o projeto j iniciado, com o HTML e
CSS j construdos. A partir dele que montaremos nosso sistema.
Descompactar em htdocs o nosso projeto inicial.
Agora, vamos importar no Aptana Studio 3. Com o aplicativo iniciado, v em
File > Import..., observe a Figura 69.
60
Tcnico em Informtica
Competncia 04
61
Competncia 04
Em Select root directory: utilize o boto Browse... para mostrar ao Aptana
onde voc descompactou o projeto. Marque a caixa Copy projects into
workspace para copiar o projeto para o seu workspace, caso voc tenha
descompactado em outro lugar que no a pasta htdocs. Pressione o boto
Finish quando terminar.
Caso no lembre o que seja wokspace, leia novamente a sesso 4.4.
62
Tcnico em Informtica
Competncia 04
O projeto composto pelas seguintes pastas, Figura 73:
Pronto! Agora que tudo est no lugar podemos comear. Observe que o
modelo no possui nenhuma programao em PHP. Ns que vamos escrevlas. Vamos comear?
63
Competncia 04
4.1 Templates
Nosso sistema ter vrias pginas PHP, cada uma ter uma responsabilidade,
como incluir produto, incluir cliente, listar fornecedores, etc. Teremos, ento,
que repetir muito cdigo HTML. Se vamos repetir muito do mesmo cdigo,
vamos utilizar include (sesso 4.3) para diminuir nosso trabalho e nos ajudar,
caso haja alguma mudana nesse cdigo no futuro.
Abra o arquivo index.php e copie o contedo da primeira linha at a primeira
tag <div class="row">. Agora crie um novo arquivo PHP (sesso 2.5) com o
nome de template_topo.php . Cole as marcaes HTML neste arquivo. No se
preocupe que o arquivo tenha a extenso php, mas dentro seja apenas HTML.
O PHP esperto o suficiente para saber a diferena. A Figura 75 mostra como
deve ficar.
64
Tcnico em Informtica
Competncia 04
Na pgina index.php acrescente o cdigo PHP para incluir o contedo dos
arquivos recm criados. No comeo do arquivo apague o cdigo que voc
copiou e inclua (sesso 4.3) no incio o arquivo template_topo.php e no final
template_rodape.php. Agora toda vez que voc precisar de uma nova pgina
basta fazer o include inicial e final. O cdigo no meio ser o contedo do site.
Na index.php iremos aproveitar o cdigo do formulrio que j est pronto, e
da tabela.
Veja como deve ficar na Figura 76.
Figura 76 Montagem do arquivo index.php. Na imagem temos o incio e o fim do arquivo. O meio foi
suprimido para melhor visualizao.
Fonte: Prprio autor.
65
Competncia 04
66
Tcnico em Informtica
Competncia 04
Ento, vamos abrir uma conexo com nosso banco em um arquivo separado,
j que vamos ter que fazer isso em vrias pginas. Depois vamos fechar, s
para teste. A Figura 78 mostra a pgina PHP conexao.php.
67
Competncia 04
Vamos utilizar esta funo para pedir ao MySQL que nos envie uma listagem
dos produtos que esto em nosso banco. Como j passamos pelas
competncias que mostram os comandos SQL, no vamos nos focar nelas.
Caso no lembre, pegue seu caderno de estudos daquela competncia e
revise para poder continuar.
A pgina que vamos construir ir exibir o contedo da tabela filme. Temos
algumas informaes fictcias para podermos testar nossa aplicao.
Ento, abra nossa pgina index.php e salve ela com o nome de
listar_produtos.php. A Figura 80 mostra o cdigo para listar os dados. O
cdigo est comentado para voc saber o que ordenado em cada passo,
linhas verdes. D uma olhada.
Primeiramente utilizamos mysqli_query() para receber a listagem e
guardamos na varivel $listagem. Observe que antes fizemos a conexo com
o banco de dados com o cdigo do require visto anteriormente e definimos a
codificao dos caracteres. Ento, exibimos algumas divs e o incio de uma
tabela em HTML. Na parte das linhas da tabela utilizamos um while para
pegar cada linha da listagem, que armazenada, uma de cada vez, na varivel
$linha como um array associativo (sesso 3.9). A chave para cada valor da
linha o nome do campo. Assim, um campo id na tabela tem o array
$linha[titulo] para pegar seu valor da coluna ttulo na tabela. Quando
termina a iterao no lao while a tabela HTML fechada e colocado o
cdigo do restante da pgina com um include.
68
Tcnico em Informtica
Competncia 04
Figura 80 Pgina index.php com o cdigo para listar. A imagem foi montada para mostrar o incio do cdigo
e seu final.
Fonte: Prprio autor.
Como existem
diversas lnguas no
planeta e nem
todas elas utilizam
os mesmos
caracteres que ns,
como o e o ~,
temos o CHARSET,
que a codificao
de caracteres para
o documento.
Utilizamos a linha
mysqli_query($con
exao, "SET NAMES
'utf8';"); para dizer
ao MySQL que nos
envie os dados em
um formato que
possui os caracteres
especiais de nossa
lngua.
69
Competncia 04
A Figura 81 mostra o resultado no navegador.
Sempre falamos da
importncia da
produo dos
exemplos e das
atividades para o
aprendizado. Copiar
muito simples,
mas ser que voc
entendeu os
conceitos
apresentados? Para
testar, faa um
exerccio que
muito parecido com
este. Faa a
listagem dos dados
da tabela
funcionario.
Observe que os
campos so
diferentes da tabela
filme.
70
Tcnico em Informtica
Competncia 04
pgina inserir_filme.php que faremos mais a frente, ser nele que
conectaremos com o banco. Por agora, voc deve terminar a tag <form>,
incluindo os parmetros action e post. Observe o exemplo na Figura 82.
71
Competncia 04
O comando or die()
significa que se a
funo retornar um
erro, a execuo deve
parar imediatamente
e o texto do
argumento
apresentado.
Chegamos a uma
parte muito
importante, o
exerccio. Agora, voc
deve usar o que foi
visto e implantar o
algoritmo para inserir
o funcionario. O
cdigo muito
parecido com este,
mas o formulrio e os
campos so outros.
Preste bastante
ateno e pense bem
para saber o que vai
mudar e o que vai ser
igual.
72
Tcnico em Informtica
Competncia 04
Figura 84 Alterao na pgina index.php. Construmos parte do link atravs do PHP, para inserir o cdigo
em cada boto.
Fonte: Prprio autor.
Figura 85 Resultado da alterao em index.php. Cada boto de excluir ao lado de um item, envia o
respectivo cdigo. Em destaque o segundo item. Fonte: Prprio autor.
73
Competncia 04
74
Tcnico em Informtica
Competncia 04
75
Competncia 04
76
Tcnico em Informtica
Competncia 04
Como esta pgina vai servir tanto para inserir como para alterar os dados no
formulrio, criamos uma varivel $destino para guardar onde vo ser
enviados os dados do formulrio. Inicialmente os dados vo para
inserir_filme.php.
Depois verificamos se recebemos pelo mtodo GET algum codigo. O uso da
funo isset() verifica isto. Se recebermos a pgina servir para alterar e no
incluir. Devemos ento pegar os dados que sero alterados para mostrar para
o usurio.
Para isso, utilizamos a conexo com o banco e pegamos os dados da linha que
queremos alterar. Guardamos estes dados em $linhas, e depois pegamos a
primeira linha, pois s ela deve ter o registro, colocando em $linha.
Alteramos $destino para alterar_filme.php e guardamos em $oculto um
campo oculto em HTML que contm o cdigo. Dessa forma, a pgina
alterar_filme.php vai saber que registro deve alterar.
Acrescentamos no formulrio as variveis $destino e $oculto, assim como os
valores dos campos recuperados. Utilizamos a notao <?= para ser mais
simples para voc ver todo o cdigo e colocamos um @ na frente da varivel.
Este arroba @ faz com que o PHP ignore as mensagens de erro. Ele
necessrio porque caso no recebamos nenhum cdigo pelo mtodo GET. As
variveis de valores de formulrio no existiro, o que geraria um erro.
Ainda no terminou, mas como este cdigo mais complicado e junta muito
do que j vimos anteriormente, releia at entender tudo que foi ordenado no
cdigo para podermos prosseguir com a pgina alterar_filme.php.
A pgina alterar_filme.php muito semelhante pgina incluir_filme.php.
Esta pgina a que tem a responsabilidade de pedir ao MySQL para fazer a
alterao no registro onde o cdigo for igual ao recebido. Veja a Figura 89
com o cdigo pronto e comentado em texto verde.
77
Competncia 04
Observe que o
ttulo do formulrio
no muda. Sempre
permanece com
Incluir. Voc
conseguiria
modificar ele
quando fosse para
alterar? Tente.
Como sempre
temos um exerccio
muito importante
para a fixao. Com
o que voc
aprendeu faa o
sistema de
alterao de
funcionario.
Vamos utilizar este sistema como base para sua avaliao, ento treine nele
fazendo a parte do funcionrio.
78
Tcnico em Informtica
Competncia 05
5.COMPETNCIA 05 | PROJETO: EMISSO DE RELATRIOS
Atualmente o PHP muito poderoso. Com o apoio de suas bibliotecas
podemos editar imagens e at gerar relatrio em PDF.
PDF, Portable Document Format, um formato de arquivo que foi
desenvolvido pela Adobe System. Seu objetivo era fornecer uma
representao de documento que fosse independente de qual aplicativo,
hardware ou sistema operacional voc estivesse usando para visualizar.
Arquivos PDF podem conter texto, grficos e imagens que podem ser
visualizados em qualquer dispositivo de forma idntica.
Para que nossa aplicao PHP possa gerar relatrios em PHP, primeiramente
precisamos baixar a biblioteca que ir fazer o trabalho de transformar nossas
informaes para esse formato.
Voc pode baixar em www.fpdf.org/. A Figura 91 mostra a pgina do FPDF.
79
Competncia 05
Clique em Downloads e ir aparecer a pgina da Figura 92. A pgina oferece o
manual em portugus do Brasil e a verso mais atual da biblioteca. No
momento em que este caderno foi escrito temos disponvel a verso 1.7. A
Figura 93 destaca em vermelho os links para baixar o manual e a biblioteca.
80
Tcnico em Informtica
Competncia 05
Agora que a biblioteca faz parte de nosso projeto, vamos construir dois
botes para gerar um relatrio cada. No primeiro teremos um relatrio
textual para mostrar algumas propriedades bsicas. No segundo vamos pegar
as informaes do banco de dados, montar uma tabela e gerar o arquivo PDF.
Primeiramente vamos colocar os dois botes de impresso de relatrio. Na
pgina index.php insira o cdigo destacado na Figura 94 perto do final do
arquivo. Atente para o local correto.
Figura 94 Pgina index.php e o cdigo HTML com botes para imprimir a ficha de um filme e outro
para imprimir uma lista de filmes.
Fonte: Prprio autor.
81
Competncia 05
que utilizar uma funo bem pequena para fazer esta converso. Est funo
est logo no incio do arquivo.
O cdigo completo e comentado est na Figura 95. Logo aps, temos a Figura
96 com o resultado em PDF. Posteriormente, temos as instrues de cada
mtodo utilizado para compor o documento e suas possveis opes.
Tenha bastante ateno com a grafia correta de toda a codificao e, com a
ajuda da explicao abaixo, tente entender o que cada linha ordena.
82
Tcnico em Informtica
Competncia 05
83
Competncia 05
Primeiramente, inclumos a biblioteca fpdf.php. Uma particularidade desta
biblioteca o tratamento parcial para codificao UTF-8. Devido a isso, os
caracteres especiais devem ser tratados com outra funo, para isso criamos a
funo converte( ) que recebe como argumento o texto, trata e devolve j
recodificado adequadamente.
Criamos, ento, uma varivel $pdf, que ser nosso documento. Instanciamos
com new FPDF(P, pt, A4). Essas so as configuraes para o documento. O
primeiro argumento refere-se ao formato P. retrato, mas pode ser L para
paisagem; o segundo argumento para a unidade de medida, podendo ser
cm centmetro, pt pontos, mm milmetros e in polegadas; o terceiro
argumento o tamanho do papel, temos A3, A4, A5, letter e legal.
Agora chamamos os mtodos do objeto para configurar o documento.
Utilizamos o mtodo $pdf->AddPage(); para adicionar uma pgina e abaixo
adicionamos a imagem marca.png no PDF. Note que devemos fornecer o
endereo da imagem PATH ou URL. Outros parmetros que podemos inserir
so (na sequncia):
Image(string file [, float x [, float y [, float w [, float h [, string type]]]])
Ento, para cada linha temos a configurao de fonte com $pdf>SetFont('arial', '', 12). O primeiro argumento a fonte Arial. A string vazia
para configurar o efeito, se quiser negrito utilize B, e o 12 o tamanho em
pontos da fonte. Veja a pasta "/fpdf/font/" para verificar as fontes
suportadas.
84
Tcnico em Informtica
Competncia 05
S se consegue escrever no PDF dentro de uma cell ou multicell. Uma cell
como uma clula, um espao para escrever uma linha. O primeiro parmetro
a largura, o segundo a altura, o terceiro argumento o contedo (o texto), o
quarto argumento a borda (1 para sim e 0 para no), o quinto o
espaamento interno, o sexto para o alinhamento (L esquerda, R direita e C
centralizado). Quando o contedo possui caracteres especiais, chamaremos
nossa funo converte().
$pdf->Cell(0,20,"Rua Fulano de Tal, s/n, Bairro Industrial",0,1,'L');
Agora temos que definir o contedo, que pode ser de duas maneiras. Se a
pgina receber um cdigo, o documento gera apenas a ficha do DVD. Se no
possuir nada, o documento gerado conter uma listagem de todos os DVDs
cadastrados. Para isso, definimos a string SQL que ser utilizada. Com isso, ou
selecionamos um DVD pelo cdigo ou todos, igual ao que fizemos na
index.php.
if (isset($_GET['codigo']) && $_GET['codigo']<>"") {
$codigo = $_GET['codigo'];
$sql = "SELECT * FROM filme WHERE codigo='$codigo';";
} else {
$sql = "SELECT * FROM filme;";
}
85
Competncia 05
para repetir o cdigo para cada linha. Abaixo, temos o cdigo inicial. A cada
iterao ele constri uma linha para a tabela, com os dados do DVD.
while($linha = mysqli_fetch_array($listagem)) {
// ttulo do filme
$pdf->SetFont('arial','B',12);
// Quando o texto tem ou pode ter acento utilizamos a funo converte
$pdf->Cell(70,20,converte("Cdigo: "),0,0,'L');
$pdf->setFont('arial','',12);
$pdf->Cell(0,20,$linha['codigo'],0,1,'L');
86
Tcnico em Informtica
Competncia 05
Esta codificao
complexa. Voc
precisa ler com
ateno e
reproduzir o
exemplo para
entender bem
todos eles. Utilize
outras opes para
ver como fica.
Agora, para
exercitar, faa da
mesma forma como
fizemos
anteriormente, s
que utilize a
entidade
funcionario. Voc
pode ser criativo e
tentar novas formas
de relatrios e
documentos.
Quanto mais fizer,
mais aprender.
87
CONCLUSO
Com isto terminamos esta disciplina, mas entenda que voc viu a ponta do
iceberg, ou seja, apenas o comecinho. Existe muito mais conhecimento que
deve ser procurado e aprendido para se aperfeioar. Mas apenas ler ou
assistir uma aula no suficiente. Para aprender voc deve fazer, mais e mais.
A diferena de um iniciante para um profissional a experincia acumulada
com horas e horas de prtica.
Ento, pesquise mais sobre HTML, CSS, JavaScrip e PHP. Na internet voc
encontrar muito material interessante. E quanto mais cedo comear a
praticar, mais rpido se tornar um profissional competente.
Um grande abrao e at a prxima.
88
Tcnico em Informtica
REFERNCIAS
NIEDERAUER, Juliano. Desenvolvendo websites com PHP. So Paulo: Novatec,
2004.
CONVERSE, Tim; PARK, Joyce. PHP: a bblia. 2003.
DALLOGLIO, Pablo. PHP: programando com orientao a objetos. So Paulo:
Novatec, 2007.
89
MINICURRCULO DO PROFESSOR
90
Tcnico em Informtica