1. O documento discute HTML, páginas web e como navegadores interpretam arquivos HTML para exibir conteúdo na web.
2. É introduzido o que é HTML, como é uma linguagem de marcação usada para formatar conteúdo em páginas da web.
3. São explicados conceitos como tags, atributos e como eles afetam a formatação e exibição do conteúdo em páginas da web.
1. ~ ^
INSTITUTO FEDERAL DE EDUCACAO, CIENCIA
E TECNOLOGIA DO CEARA
Internet e Web
Novas Tecnologias para
Material de Apoio
Jos Roberto Bezerra
e
Daniel Silva Ferreira
v1.0
5. Prefcio
a
Este material foi produzido para servir de apoio a disciplina Novas Tecnologias Web do curso tcnico
e
a dist^ncia em Informtica. Seu principal objetivo ser um guia que contm todo o contedo que
a a e e u
ser abordado durante a disciplina, mas que necessita ser complementado com outros materiais como
a
v
deo aulas, livros, sites indicados, alm dos mecanismos de aprendizagem dispon
e veis na ferramenta
(email, frum, etc).
o
5
7. Cap
tulo 1
Um pouco sobre HTML
e
Triste poca! E mais fcil desintegrar um tomo do que um preconceito.
a a
Albert Einstein
Antes de comear o estudo sobre qualquer linguagem de programaao para web, necessrio
c c~ e a
entender o funcionamento de um navegador. Os browsers, como Internet Explorer, Mozilla Firefox,
Safari e outros, nada mais s~o do que visualizadores de documentos HTML, ou seja, recebem arquivos
a
HTML provenientes de um servidor web, interpretam e exibem o resultado para o usurio na forma
a
de hipertexto, imagens e tudo mais que pode ser visualizado atravs dos navegadores.
e
O HTML (Hypertext Markup Language ) exatamente a maneira como as pginas web s~o de-
e a a
scritas. E uma pseudo-linguagem, pois trata-se apenas de uma linguagem de marcaao tambm
c~ e
chamadas de tags colocadas ao longo do contedo do documento. Estas marcaoes nada mais s~o
u c~ a
do que formataoes na maneira como o contedo ser exibido pelo navegador como fontes, cores,
c~ u a
tamanho, tabelas e demais elementos presentes na pgina.
a
1.1 Pginas web
a
Um site um conjunto de pginas web, que por sua vez, s~o apenas arquivos HTML. Cada pgina
e a a a
contm diversas tags que s~o interpretadas pelos navegadores que exibem o contedo da maneira
e a u
usual. Os navegadores n~o exibem o contedo do documento HTML (fonte) diretamente, mas sim
a u
sua interpreta~o visual. Caso o usurio solicite, o cdigo fonte da pgina pode ser exibido pelo
ca a o a
navegador. Para o Firefox ou Internet Explorer, basta selecionar ExibirjCodi
8. ca~o que mostrado o
ca e
cdigo fonte da pgina.
o a
Abaixo, temos o primeiro exemplo de arquivo em HTML. Para visualiz-lo, basta salvar o con-
a
tedo mostrado na listagem 1.1 em um arquivo com a extens~o .htm ou .html e abrir com qualquer
u a
navegador instalado no computador.
1 html
2 body
3 h1 Hello , World / h1
4 p Ola Mundo / p
5 / body
6 / html
Listagem 1.1: Hello world na vers~o HTML
a
Este pequeno documento de exemplo composto por 4 tags : html, body, h1 e p. As
e
marcaoes do documento HTML s~o colocadas mescladas ao contedo. Cada marcaao interpretada
c~ a u c~ e
pelo navegador para exibir o contedo para o usurio da maneira indicada.
u a
7
10. naliza qualquer documento HTML. Todas as outras tags devem
estar entre tags html/html. Praticamente todas as tags necessitam ser fechadas com uma tag
de mesmo nome acrescida de / no incio.
O que est entre body e /body delimita o que chamado de corpo do documento, a
a e e
parte visvel ao usurio. Apenas o que est entre tags body exibido na tela do navegador ao
a a e
usurio.
a
A tag h1 formata o texto Hello, Worldcomo um cabealho de n 1 (heading ). H ainda
c vel a
outros cinco nveis formando os cabealhos h2, h3, h4, h5 e h6. Sendo h1 o
c
mais destacado e o h6 o menos destacado.
Por
11. m, a tag p delimita um pargrafo do contedo. O fechamento desta tag opcional.
a u e
Assim, pode-se remover o /p sem nenhum prejuzo exibi~o.
a ca
1.2 Ferramentas
Para visualizar arquivos simples em HTML n~o preciso nenhum software espec
12. co. Basta um editor
a e
de texto simples e o navegador para visualizar o resultado. Entretanto, a medida que a quantidade
de pginas e a complexidade aumentam, ferramentas mais adequadas podem ser utilizadas para criar
a
as pginas HTML de um site e facilitar o trabalho do desenvolvedor web.
a
Alguns exemplos de editores HTML livres s~o o Blue
13. sh e o NVu. Do lado dos proprietrios,
a a
temos o Dreamweaver, Cold Fusion e tambm o Visual Studio. Qualquer destas ferramentas atende as
e
necessidades do que ser abordado neste material, entretanto, as ferramentas livres s~o prefer
a a veis
devido a facilidade de acesso.
1.3 Atributos
As tags s~o complementadas atravs de atributos. Estes s~o pares de nome de tag e valor atribu
a e a do
que seguem a seguinte sintaxe: nome=valor. Eles s~o utilizados sempre na tag inicial e nunca no
a
fechamento. Vejamos:
a href=http://www.google.com.brBuscador/a
O atributo href indica o endereo do hiperlink. O texto entre as tags a parte exibida para o
c e
usurio, no caso, Buscador. Cada tag possui atributos espec
14. cos. Para uma refer^ncia detalhada
a e
sobre os atributos pode-se consultar a descriao completa de cada um deles consultando o endereo
c~ c
da W3 Schools.
A tag font utilizada para alterar par^metros relacionados a exibiao de fontes no navegador.
e a c~
Entretanto, o uso desta tag n~o mais recomendado no HTML 4 e foi totalmente removida no HTML
a e
5. Atualmente, a recomendaao formatar as fontes atravs de folhas de estilo CSS (Cascading Style
c~ e e
Sheets ). Assim mesmo, ainda bom um exemplo para demonstrar o uso dos atributos. Na listagem
e
1.2, observa-se que, mesmo utilizando as folhas de estilo CSS (citadas anteriormente) o resultado
obtido o mesmo.
e
1 p
2 font s i z e = 5 face = arial c olor = red
3 Este paragrafo esta em Arial , tamanho 5 e cor vermelha .
4 / font
5 / p
6
7 p
8 font s i z e = 3 face = verdana c olor = blue
9 Este paragrafo esta em Arial , tamanho 3 e cor azul .
10 / font
11 / p
Listagem 1.2: Exemplo de utiliza~o da tag font
ca
8
15. 1 p s t y l e = font - family : arial ; color : red ; font - size :20 px ;
2 Este paragrafo usa fonte Arial , tamanho 20 pixels e cor vermelha .
3 / font
4 / p
5 p s t y l e = font - family : verdana ; color :#10 A030 ; font - size :30 px ;
6 Este paragrafo usa fonte Verdana , tamanho 30 pixels e cor especificada em RGB
7 / font
8 / p
Listagem 1.3: Exemplo de formata~o de com CSS
ca
1.4 Hiperlinks, imagens e tabelas
Di
16. cilmente encontraremos um site na Internet, por mais simples que seja, sem encontrar hiperlinks,
que a ess^ncia do HTML. As imagens tambm est~o sempre presentes e as tabelas s~o fundamentais
e e e a a
para organizar e dar uma melhor organizaao ao contedo. Dominar o uso destas tags fundamental
c~ u e
para o desenvolvimento de pginas de qualquer tipo.
a
Os conhecidos hiperlinks s~o palavras ou imagens que ao serem clicadas levam a uma nova pgina
a a
ou nova se~o da mesma pgina. Ao mover o ponteiro do mouse sobre um link, o ponteiro se altera,
ca a
indicando a presena de um hiperlink. A tag a utilizada para cria~o de links em uma pgina.
c e ca a
O formato bsico :
a e
a href=urlTexto do link/a
O atributo href especi
17. ca o destino do link. Apenas o texto entre as tags exibido no navegador.
e
Outro atributo bastante utilizado target. O exemplo a seguir abre a pgina em uma nova janela:
e a
a href=http://www.google.com target=_blankBuscador/a
Para utilizar imagens nas pginas web necessrio utilizar a tag img que n~o necessita ser
a e a a
fechada. O atributo src utilizado para indicar o caminho para o arquivo que ser exibido. Caso o
e a
arquivo esteja no mesmo diretrio da pgina, basta indicar o nome. Os principais formatos utilizados
o a
s~o: JPG, GIF e PNG. O valor do atributo alt exibido quando o mouse passa sobre a
18. gura.
a e
Abaixo mostrado um exemplo do uso de img:
e
img src=boat.gif alt=Imagem de um barco
Tambm poss alterar o tamanho de exibi~o da imagem no navegador atravs dos atributos
e e vel ca e
heigth e width, conforme exemplo a seguir. Caso estes atributos n~o sejam atribu
a dos a imagem
e
mostrada em seu tamanho real,sem amplia~es ou redu~es.
co co
img src=pulpit.jpgalt=Pulpit rockwidth=304height=228
Para utilizar imagens como hyperlinks, basta substituir o texto do link entre as tags por uma tag
img. Assim, a imagem aparecer no navegador como link ao invs de texto.
a e
As tabelas s~o de
19. nidas com a tag table. Cada tabela possui linhas (tr) e clulas (td).
a e
O contedo da tabela
20. ca dentro das clulas. Pode conter texto, links, imagens, listas ou at mesmo
u e e
outras tabelas. A listagem 1.4 exempli
21. ca o uso destas tags :
1 table border = 1
2 tr
3 td linha 1, celula 1 / td
4 td linha 1, celula 2 / td
5 / tr
6 tr
7 td linha 2, celula 1 / td
8 td linha 2, celula 2 / td
9 / tr
10 / table
Listagem 1.4: Exemplo de tabela
9
22. 1.5 Formulrios
a
Formulrios s~o utilizados para passar informa~es de uma pgina a outra ou do usurio para o
a a co a a
servidor, por exemplo. Um formulrio deve conter elementos de entrada de dados como caixas
a
de texto, checkbox, bot~es de envio, listas de seleao e outros elementos dispon
o c~ veis. Para criar
um formulrio, utiliza-se a tag form que possui diversos atributos como action e name. Para
a
acrescentar elementos ao formulrio, basta acrescentar uma tag input entre as tags form,
a
segundo o exemplo a seguir.
1 form name= pesquisa
2 Primeiro Nome : input type = text name= firstname br
3 Sobrenome : input type = text name= lastname
4 input type = radio name= sex value = masculino Masculino br
5 input type = radio name= sex value = feminino Feminino br
6 Meios de Transporte que Utiliza : br
7 input type = checkbox name= vehicle value = Bicicleta Bicicleta br
8 input type = checkbox name= vehicle value = Carro Carro
9 / form
Listagem 1.5: Exemplo de formulrio com vrios elementos
a a
No exemplo anterior, o formulrio de
23. nido com o nome pesquisa, conforme o atributo presente
a e
na tag form. Em seguida, est~o presentes 6 elementos, sendo duas caixas de texto, dois bot~es
a o
de rdio e dois checkboxes, respectivamente.
a
Nas caixas de texto, o usurio pode ser inserido texto livremente. Os bot~es de rdio servem para
a o a
escolher uma opao entre vrias dispon
c~ a veis. J o checkbox, deve ser utilizado para selecionar uma
a
op~o unica dentre vrias dispon
ca a veis.
O formulrio da listagem 1.5 ainda est incompleto. Faltam alguns elementos para torn-lo
a a a
funcional. Para que isto acontea, necessrio que seja utilizado o atributo action da tag form.
c e a
Este atributo indica o arquivo ou script que ir processar os dados passados pelo formulrio.
a a
Normalmente, os scripts s~o processados no lado do servidor. O cliente (navegador) apenas envia
a
as informa~es para um servidor na Internet ou localmente para que este realize todo o processamento
co
(clculos, armazenamento, otimizaao, etc) da informa~o e devolva uma resposta ao cliente.
a c~ ca
Na listagem 1.6, o valor de action=html_form_action.php indica que este script em linguagem
PHP realizar o processamento do formulrio. Tambm foi acrescentado o bot~o submit para enviar
a a e a
os dados do formulrio para o arquivo indicado em action para processamento.
a
1 form name= pesquisa action = html_form_action . php method = get
2 Primeiro Nome : input type = text name= firstname br
3 Sobrenome : input type = text name= lastname
4 input type = radio name= sex value = masculino Masculino br
5 input type = radio name= sex value = feminino Feminino br
6 Meios de Transporte que Utiliza : br
7 input type = checkbox name= vehicle value = Bicicleta Bicicleta br
8 input type = checkbox name= vehicle value = Carro Carro br
9 input type = submit value = Enviar
10 / form
Listagem 1.6: Formulrio com bot~o de envio e action
a a
10
24. 1.6 Exerc
cios
1. Utilizando uma das ferramentas indicadas na seao 1.2, crie uma pgina web pessoal (eu.html)
c~ a
contendo alguns de seus dados pessoais, como nome, cidade onde nasceu, data de nascimento
e informaoes similares. Utilize tags p para inserir um ou mais pargrafos com essas infor-
c~ a
ma~es.
co
2. No exerc do tem anterior, acrescente uma foto sua ao arquivo.
cio
3. Ainda com relaao ao exerc 1, acrescente, no
25. nal do arquivo, links para tr^s sites externos
c~ cio e
com um texto em destaque Links Recomendados.
4. Ao
26. nal dos exerc
cios anteriores sua pgina deve ter uma apar^ncia semelhante a
27. gura 1.1.
a e
Figura 1.1: Screenshot de uma pgina em HTML
a
5. Crie um arquivo html (tabela.html) que contenha as informaoes mostradas na tabela 5. Utilize
c~
a tag table e demais tags relacionadas (tr, td, etc).
tem
descri~o
ca quantidade
1 Notebook 2
2 Processador 10
3 Mouse 5
4 Monitor 11
Tabela 1.1: Lista de preos
c
6. As tabelas podem ser utilizadas para organizar informaoes em uma pgina como pedido no
c~ a
exerccio 5. Outra utilidade das tabelas que permitem organizar a disposiao dos elementos
e c~
de uma pgina. O cdigo HTML, mostrado na listagem 1.7, exempli
28. ca essa idia. Salve o
a o e
cdigo em um arquivo e visualize o resultado no navegador.
o
11
29. 1 html
2 head
3 t i t l e Machado de Assis / t i t l e
4 / head
5 body
6 h1 Machado de Assis / h1
7 table
8 tr
9 td img src = ../ figs / machado . jpg width = 200 height = 246 / td
10 td p b Joaquim Maria Machado de Assis / b , nascido no Rio de Janeiro
11 em 21 de Junho de 1839. br
12 Considerado o grande nome da literatura nacional . / p
13 p Nascido no morro do Livramento no Rio de Janeiro , de familia pobre ,
14 estudou em escolas publicas e nunca frequentou a universidade . / p
15 / td
16 / tr
17 tr
18 td nbsp ; / td
19 td h3 Links Recomendados / h3
20 a href = www . machadodeassis . org . br / Academia Brasileira de Letras / a br
21 a href = http :// machado . mec . gov . br / Obra Completa - MEC / a br
22 / td
23 / tr
24 / table
25 / body
26 / html
Listagem 1.7: Exemplo do uso de tabelas para organizar os elementos da pgina
a
7. Modi
30. que o cdigo mostrada na listagem 1.7 para que a imagem seja exibida no lado direito
o
ao invs do lado esquerdo. Pesquise na internet como modi
31. car a cor de fundo de uma tabela
e
e aplique nesta pgina.
a
8. Crie uma pgina para o cadastramento (form.html) de um usurio na intranet de uma empresa.
a a
O formulrio deve conter os campos: nome completo, setor (compras, vendas ou
32. nanceiro),
a
nome do usurio e senha.
a
9. Dada a tag body mostrada abaixo, pesquise para que servem os atributos BGCOLOR,
TEXT, LINK, ALINK e VLINK. Aplique-os na pgina do exerc 1.
a cio
body bgcolor=#rrggbb text=#rrggbb link=#rrggbb
alink=#rrggbb VLINK=#rrggbb
10. Diferencie os termos pginas estticas e pginas din^micas relacionados a construao de
a a a a c~
sites em geral.
12
33. Cap
tulo 2
Comeando em PHP
c
Estamos irrevogavelmente em um caminho que nos levar as estrelas.
a
A n~o ser que, por uma monstruosa capitulaao ao egosmo e estupidez,
a c~ a
acabemos nos destruindo.
Carl Sagan
Os iniciantes em desenvolvimento para web ou em tecnologia da informaao n~o devem se assustar
c~ a
com a quantidade de acr^nimos (siglas) existentes. ASP, CGI, SOAP, XML e HTTP s~o alguns
o a
deles. A lista pode ser acrescida de vrios outros
a tens e pode parecer interminvel assustando os
a
menos experientes no assunto. Assim, para desenvolver um site com qualidade e principalmente com
funcionalidade um tem indispensvel na lista, a linguagem de scripts PHP.
e a
2.1 Mais um acr^nimo
o
O PHP uma linguagem de programaao voltada para web bastante conhecida. Trata-se da unica
e c~
linguagem de scripts baseada em servidor que possui cdigo aberto. E
o bastante
exvel e fcil de
a
aprender. Pesquisas mostram que milh~es de websites utilizam a linguagem PHP como base para
o
suas aplica~es. A raz~o para isso a grande capacidade do PHP, uma linguagem poderosa, fcil de
co a e e a
usar e aprender alm de ser livre. Alm de ser extremamente robusta e escalvel, pode ser utlizada
e e a
em aplicaoes de alta demanda com boas respostas. Possui suporte a diversos bancos de dados, a
c~
XML, permite a cria~o de frameworks do prprio programador e ainda excelente documentaao.
ca o c~
Como se todas estas vantagens n~o fossem su
34. cientes ainda gratuita.
a e
2.2 O ambiente de desenvolvimento
Para que o PHP funcione, necessrio combin-lo com um servidor web, tipicamente o Apache. As
e a a
requisic~es a scripts feitas pelo usurio ou aplicaao s~o recebidas pelo servidor web e manipuladas
o a c~ a
pelo interpretador PHP. O resultado obtido depois da execuao devolvido ao servidor web que
c~ e
c~ e
transmite a informaao para o cliente (navegador). O script o programa propriamente dito. E onde
est escrito o cdigo da aplica~o que funciona na Internet. Nele, poss fazer clculos, processar
a o ca e vel a
entradas do usurio, interagir com bancos de dados, ler e escrever em arquivos e tudo mais que uma
a
linguagem de programa~o capaz de realizar.
ca e
As atividades propostas neste material foram implementadas utilizando o PHP juntamente com
o servidor web Apache no sistema operacional Linux. Essa a combinaao de ferramentas mais
e c~
comum para utilizar o PHP. Entretanto, existem vers~es tanto do PHP quanto do Apache para
o
outros sistemas operacionais como Windows e MacOS. Instru~es detalhadas sobre a instalaao e
co c~
preparaao do ambiente de desenvolvimento para cada plataforma podem ser encontradas no manual
c~
do PHP dispon no endereo:
vel c
13
35. http://www.php.net/manual/pt BR/install.php
.
2.3 Iniciando
A maneira mais simples de programar em PHP embutir o cdigo da linguagem dentro de um arquivo
e o
contendo tags HTML. O cdigo embutido nas pginas executado quando a pgina carregada.
o a e a e
Os comandos da linguagem PHP devem estar sempre entre tags espec
36. cas indicando ao Apache
que os comandos entre estas tags devem ser processados pelo interpretador PHP. Observar a listagem
2.1.
1 ? php
2
3 comandos PHP
4
5 ?
Listagem 2.1: Tags da linguagem PHP
Um exemplo simples de como os comandos PHP s~o colocados junto com HTML mostrado na
a e
listagem 2.2.
1 html
2 head
3 title Matrix / title
4 / head
5 body
6
7 Agente : Quem voce pensa que e?
8 br
9
10 ? php
11 // saida mostrada
12 echo ' Neo : Eu sou Neo , mas me chamam de o escolhido . ';
13 ?
14
15 / body
16 / html
Listagem 2.2: PHP e HTML juntos
Executando-se o cdigo mostrado na listagem 2.2 e abrindo o cdigo HTML lido pelo navegador
o o
possvel observar que as tags PHP n~o est~o presentes. O que aconteceu? Quando a pgina req-
e a a a e
uisitada ao servidor web (Apache) pelo ciente web (navegador) esta interpretada pelo interpretador
e
PHP presente no servidor, que por sua vez, repassa o resultado na forma de um arquivo HTML que
e a
visualizado pelo navegador. Este processo est ilustrado na
38. gura ilustra o caso tpico de um servidor que est sendo acessado atravs de uma rede interna ou
a e
da prpria Internet. O que pode ser chamado um ambiente de produ~o. O que quer dizer que os
o ca
elementos est~o interagindo em um sistema real, em pleno funcionamento.
a
Em oposi~o a um sistema de produ~o, temos os sitemas de teste ou desenvolvimento em que,
ca ca
normalmente, todos os elementos citados anteriormente funcionam em uma unica mquina, conforme
a
ilustrado na
40. ca~es antes de serem colocadas
a co
em funcionamento no servidor de produao e tambm para aprendizagem e estudos. Na
41. gura 2.2,
c~ e
s~o mostrados dois processos: o cliente (navegador) e o servidor web. A troca de informaoes entre
a c~
eles se d atravs da interface de rede local ao invs da Internet que normalmente usada em um
a e e e
sistema de produ~o. Desta maneira, n~o necessrio um servidor externo para aprendizagem ou
ca a e a
testes. Todas os processos envolvidos (navegador e servidor web) est~o rodando na mesma mquina.
a a
Para inserir comentrios ao longo no cdigo fonte em PHP, existem duas op~es. Comentrios
a o co a
de apenas uma linha basta acrescentar //. J os comentrios de vrias linhas s~o iniciados com /* e
a a a a
14
42. Figura 2.1: Intera~o entre cliente e servidor web com suporte a PHP
ca
Figura 2.2: Sistema de desenvolvimento t
pico utilizando apenas uma mquina
a
43. nalizados com */. As linhas em branco s~o ignoradas, assim como qualquer caractere fora das tags.
a
Os comentrios seguem o mesmo padr~o da linguagem C, que alis a base do PHP. Nos exemplos
a a a e
mostrados neste material, pode-se observar muitas semelhanas entre a sintaxe utilizada em ambas
c
as linguagens.
1 ? php
2
3 // comentario de linha unica
4
5 /* comentario
6 de multiplas
7 linhas */
8 ?
Listagem 2.3: Comentrios em PHP
a
2.4 Variveis
a
Assim como qualquer outra linguagem de programaao, o PHP tambm utiliza-se de variveis para
c~ e a
armazenar dados durante a execu~o de um script. Armazernam dados numricos e n~o numricos.
ca e a e
Seu contedo pode mudar ao longo da execuao do script. Podem ser comparadas e o resultado das
u c~
compara~es pode ser utilizado para disparar a~es espec
44. cas como em qualquer outra linguagem.
co co
15
45. PHP suporta uma grande quantidade de tipos de variveis: inteiros, ponto
utuante, strings e
a
matrizes. Na grande maioria das linguagens, fundamental especi
46. car o tipo de varivel que est
e a a
sendo utilizada logo no incio do programa. O que conhecido como declaraao de variveis. No caso
e c~ a
da linguagem PHP, o prprio interpretador determina o tipo de varivel atravs do contexto em que
o a e
utilizada. Inclusive, uma varivel pode ser tratada inicialmente como inteiro e durante a execu~o
e a ca
passar a ser tratada como string. Isto, traz bastante
exibilidade no uso de variveis e conforto para
a
o programador que n~o necessita preocupar-se com a declara~o das mesmas.
a ca
Cada varivel deve ser identi
47. cada por um nome. O nome de uma varivel precedido por $ e
a a e
seguido por letra ou . S~o exemplos de nomes de variveis vlidos: $popeye, $one e $INCOME. J
a a a a
os nomes $48hrs e $123 n~o s~o vlidos. Os nomes tambm s~o sens
a a a e a veis ao caso, logo $me diferente
e
de $ME.
Na listagem 2.4, mostrado um exemplo simples de utilizaao de variveis em PHP. As variveis
e c~ a a
$name, $rank e $serialNumber s~o de
48. nidas como string e como nmero, mas s~o utilizadas como
a u a
string na chamada da funao echo(). Assim, como printf(), echo() utilizada para exibir dados
c~ e
na sada padr~o. Na chamada da funao echo(), ainda foram includas tags HTML que ser~o
a c~ a
processadas pelo navegador.
1 html
2 head
3 title Matrix / title
4 / head
5 body
6
7 Agente : Quem voce pensa que e?
8 br
9
10 ? php
11 // define as variaveis
12 $name = ' Neo ';
13 $rank = ' Anomalia ';
14 $serialNumber = 1;
15
16 // imprime saida
17 echo Neo : Eu sou b $name /b , o b $rank / b .
18 Qual meu numero de serie , b $serialNumber / b . ;
19 ?
20
21 / body
22 / html
Listagem 2.4: Variveis em PHP
a
Para atribuir valor a uma varivel basta utilizar o sinal a direita do nome da varivel seguido do
a a
valor que deseja-se atribuir, conforme mostrado a seguir.
1 ? php
2
3 $old = 1;
4 $age = $old + 15;
5 $angle1 = $angle2 = $angle3 = 60;
6
7 ?
Listagem 2.5: Atribuiao em PHP
c~
Os principais tipos de variveis disponveis em PHP s~o:
a a
Booleano (bool)
Inteiro (int)
Ponto
utuante (
oat)
16
50. car uma varivel como boolena basta atribuir as palavras-chave TRUE ou FALSE.
a
o tipo de dado mais simples. Expressa um valor verdade. Tambm s~o considerados falsos o valor
E e a
0 (inteiro), 0.0 (ponto
utuante), string vazia e um array sem elementos.
Os nmeros inteiros s~o compostos pelo conjunto Z = f::: 2; 1; 0; 1; 2; :::g. Podem ser especi-
u a
51. cados em base decimal, hexadecimal ou octal. Em octal necessrio preceder o nmero com 0. J
e a u a
em hexadecimal necessrio preceder por 0x.
e a
Os nmeros em ponto
utuante s~o os chamados nmeros reais. Utiliza-se o ponto para separar
u a u
a parte inteira da parte n~o inteira ($a = 1.234). Tambm pode-se utilizar a nota~o cient
a e ca
52. ca ($a
= 1.23e4 ou $b = 7E-10).
Uma string especi
53. cada utilizando-se aspas simples ($nome = 'maria') ou aspas duplas ($palavra
e
= word). Porm, no caso de aspas duplas, se uma varivel colocada entre as aspas o seu valor
e a e e
substitudo.
Um array em PHP considerado um mapa ordenado, ou seja, um tipo que relaciona valores
e e
para chaves. Este tipo otimizado de vrias maneiras, assim, possvel us-lo como um array real,
e a e a
ou uma lista (vetor), hashtable (que uma implementa~o de mapa), dicionrio, coleao, pilha,
54. la
e ca a c~
e provavelmente o que mais a criatividade do programador alcanar.c
Um array contm um certo nmero de pares, separados por vrgula, chave=valor. A chave
e u
pode ser tanto um inteiro quanto uma string. Na listagem 2.6 mostrado um exemplo de utilizaao
e c~
deste tipo.
1 ? php
2 $arr = array ( foo = bar , 12 = true );
3
4 echo $arr [ foo ]; // bar
5 echo $arr [12]; // 1
6 /$
7 ?
Listagem 2.6: Atribuiao de arrays em PHP
c~
2.5 Operadores
A melhor maneira de se familiarizar com os operadores disponveis em uma linguagem utilizando-os.
e
A seguir seguem exemplos de utilizaao de diversos operadores suportados pelo PHP.
c~
1 html
2 head
3 / head
4 body
5 ? php
6 // atribui valor a quantity
7 $quantity = 1000;
8 // atribui valor a preco original e preco corrente
9 $origPrice = 100;
10 $currPrice = 25;
11 // calcula a diferenca de precos
12 $diffPrice = $currPrice - $origPrice ;
13 // calcula a percetagem
14 $diffPricePercent = (( $currPrice - $origPrice ) * 100)/ $origPrice ;
15 // $
16 ?
17 table border = 1 cellpadding = 5 cellspacing = 0
18 tr
19 td Quantidade / td
20 td Preco de custo / td
21 td Preco atual / td
17
55. 22 td Alteracao absoluta / td
23 td Alteracao percentual / td
24 /tr
25 tr
26 td ? php echo $quantity ? / td
27 td ? php echo $origPrice ? / td
28 td ? php echo $currPrice ? / td
29 td ? php echo $diffPrice ? / td
30 td ? php echo $diffPricePercent ? Percentual / td
31 /tr
32 / table
33 / body
34 / html
Listagem 2.7: Principais operadores em PHP
O PHP tambm disponibiliza operadores bastante uteis para realizar operaoes com strings. A
e c~
concatenaao de strings feita com o operador (.). A listagem 2.8 exempli
56. ca a concatena~o de
c~ e ca
strings utilizando esse operador.
1 ? php
2 // algumas strings
3 $a = ' os ';
4 $b = ' jogos ';
5 $c = ' iniciam ';
6 $d = ' agora ';
7
8 // os valores sao combinados
9 // e retornado 'os jogos iniciam agora br '
10 $statement = $a . ' '. $b . ' '. $c . ' '. $d . ' br / ';
11 print $statement ;
12
13 // outra variacao ' iniciam os jogos agora !'
14 $command = $c . ' '. $a . ' '. $b . ' '. $d . '! ';
15 print $command ;
16 ?
Listagem 2.8: Outros operadores uteis em PHP
2.6 Formulrios
a
O que torna o PHP uma linguagem para web sua caracter
e stica prpria de receber entradas do
o
usurio a partir de um formulrio de uma pgina web e converter os dados passados em variveis.
a a a a
O uso de formulrios a maneira mais natural e simples de interagir com pginas web. Permite
a e a
a interaao entre clientes e fornecedores atravs de toda o tipo de aplica~es bastante conhecida na
c~ e co
web. Comrcio eletr^nico e transaoes bancrias s~o alguns dos exemplos de aplica~es tpicas e todas
e o c~ a a co
elas utilizam-se de formulrios para passar informaoes. O PHP bastante agil no recebimento das
a c~ e
informaoes passadas pelos clientes (navegadores) e process-las no servidor web.
c~ a
A popularizaao da Internet tornou os navegadores a ferramenta mais prtica para os usurios
c~ a a
interagirem as aplicaoes disponibilizadas pelas empresas e institui~es. Flexibilizou o acesso aos
c~ co
aplicativos, dispensando a necessidade de distribuiao de arquivos executveis, j que as aplicaoes
c~ a a c~
est~o dispon
a veis em sites. A manuten~o centralizada tirando do usurio o trabalho de atualizar
ca e a
o software instalado em sua mquina.
a
A seguir, temos o primeiro exemplo de uma aplica~o em que s~o passados dados atravs de
ca a e
um formulrio para ser processado por um script em PHP. O exemplo composto de basicamente
a e
de dois scripts, o primeiro contm o formulrio HTML (form.html) e o segundo contm a lgica de
e a e o
processamento (message.php).
18
57. 1 html
2 head / head
3 body
4 form action = message . php method = post
5 Entre sua mensagem : input type = text name = msg size = 30
6 input type = submit value = Enviar
7 / form
8 / body
9 / html
Listagem 2.9: form.html
O atributo action da tag form especi
58. ca o nome do script do lado do servidor (server-side
script ) que ser utilizado no processamento dos dados passados no formulrio. O segundo atributo
a a
method especi
59. ca a maneira como os dados ser~o passados. O HTTP disp~e basicamente de dois
a o
mtodos bsicos para trocar informa~es com formulrios: GET e POST. Mais detalhes sobre esses
e a co a
mtodos s~o apresentados na se~o 2.6.1
e a ca
1 html
2 head / head
3 body
4 ? php
5 // recebe dados do formulario
6 $input = $_POST [ ' msg '];
7 // usa os dados
8 echo Voce disse : i $input /i ;
9 ?
10 / body
11 / html
12 /$
Listagem 2.10: message.php
Quando os dados s~o passados atravs de form.html e submetidos, o script message.php l^ e
a e e
exibe os dados segundo a lgica implementada. Assim, para cada formulario submetido a um script
o
PHP os pares valor-varivel est~o disponveis para uso no script atravs de uma varivel container
a a e a
especial, $ POST.
Obviamente, o PHP tambm suporta o mtodo GET. No formulrio, basta alterar o atributo
e e a
method para GET ao invs de POST. E para acessar o valor utilizar o container $ GET.
e
2.6.1 Mtodos HTTP
e
O HyperText Transfer Protocol (Protocolo de Transfer^ncia de Hipertexto - HTTP) o protocolo de
e e
comunica~o utilizado para a troca de dados entre um navegador e um servidor web. E o protocolo
ca
de comunicaao que o usurio aciona quando digita um endereo no seu navegador. A troca de
c~ a c
informaoes entre os dois processos, cliente e servidor, feita por algum mtodo disponibilizado pelo
c~ e e
HTTP. Os principais mtodos associados a transfer^ncia de dados de formulrios, s~o fundamentais:
e e a a
o mtodo GET e o mtodo POST.
e e
GET
O mtodo GET acionado por meio de um formulrio HTML atravs do atributo method=get
e e a e
includa na em uma tag form. Por meio desse mtodo, os dados constantes no formulrio s~o
e a a
primeiramente transmitidos ao processo servidor e este, por sua vez, armazena os dados temporari-
amente numa varivel de contexto denominada QUERY STRING (ver seao 2.6.2).
a c~
Quando um formulrio HTML utiliza o mtodo GET, o
uxo de dados separado do endereo
a e e c
URL que chama o script atravs de um ponto de interroga~o (?). Esta forma de endereamento e
e ca c
separa~o pode ser observada no campo de endereos do navegador do usurio, logo aps o formulrio
ca c a o a
ter sido enviado, como mostrado a seguir.
texttt{http://www.meusite.com/meuscript.cgi?nome=Mariaid=123}
19
60. POST
O mtodo POST selecionado de forma similar ao GET no formulrio, atravs do atributo method.
e e a e
Faz com que os dados do formulrio sejam diretamente transmitidos ao endereo que constar no
a c
atributo action. Um script, chamado por action, precisa extrair os dados atravs da entrada
e
padr~o (standart input ) para poder obter os dados transmitidos pelo formulrio. O contedo das
a a u
variveis do formulrio n~o
61. ca exposto no campo de endereo do navegador. O que considerado
a a a c e
uma forma insegura de trocar informaoes na Internet, por exemplo.
c~
Normalmente, as aplica~es web utilizam este mtodo para trafegar os dados, justamente devido
co e
a esse fragilidade do mtodo GET.
e
2.6.2 Query string
Uma maneira alternativa de passar dados de uma pgina para outra atravs do prprio campo
a e e o
de endereo do navegador (URL). Esta forma de passar dados entre as pginas conhecida como
c a e
Querystring. Est estruturada da seguinte forma:
a
http://servidor/pagina.html?var1=dado1var2=dado2var3=dado3
Aps o sinal de ? inicia-se a sequ^ncia de nomes de variveis seguido do sinal de = e os respectivos
o e a
valores das variveis. N~o pode haver espao em branco nesta sequ^ncia. Para valores de strings que
a a c e
contenham espaos em branco necessrio substitu-los pelo sinal +. Os pares varivel/valor s~o
c e a a a
separados .
A listagem 2.11 exempli
62. ca o uso de querystring. Salve o contedo em um arquivo PHP de nome
u
qse.php no diretrio padr~o do Apache e digite no campo de endereo do navegador a seguinte URL.
o a c
http://localhost/qse.php?nome=anaidade=12
1 ? php
2 $nome = $_REQUEST [ ' nome '];
3 $idade = $_REQUEST [ ' idade ' ];
4
5 echo $nome . tem . $idade . anos de idade ;
6 ?
Listagem 2.11: Exemplo de script que utiliza query string
2.7 Comparando
Para agregar um pouco de intelig^ncia aos scripts necessrio utilizar declaraoes condicionais, ou
e e a c~
seja, fazer com que o script desempenhe a~es baseadas no resultado de um teste de comparaao.
co c~
Alguns operadores espec
63. cos para compara~o podem ser utilizados. Na listagem 2.12 s~o
ca a
mostrados alguns deles.
1 ? php
2 /* define duas variaveis */
3 $str = ' 10 ';
4 $int = 10;
5
6 /* retorna true , desde que ambas contenham o mesmo valor */
7 $result = ( $str == $int );
8 print resultado e $result br ;
9
10 /* retorna false , desde que as variaveis nao sejam do mesmo tipo , mesmo contendo o mesmo
11 $result = ( $str === $int );
12 print resultado e $result br ;
13
14 /* returna true , desde que as variaveis tenham mesmo valor e tipo */
15 $anotherInt = 10;
20
64. 16 $result = ( $anotherInt === $int );
17 print resultado e $result ;
18 /$
19 ?
Listagem 2.12: Operadores de comparaao
c~
Tambm est~o dispon
e a veis no PHP os operadores lgicos: AND, OR, XOR e NOT. O uso destes
o
operadores ilustrado na listagem 2.13.
e
1 ? php
2 /* definicao de variaveis */
3 $auth = 1;
4 $status = 1;
5 $role = 4;
6
7 /* AND logico returna true se todas as condicoes sao true */
8 // returna true
9 $result = (( $auth == 1) ( $status != 0));
10 print resultado e $result br ;
11
12 /* OR logico returna true se alguma condicao e true */
13 // returna true
14 $result = (( $status == 1) || ( $role = 2));
15 print resultado e $result br ;
16
17 /* NOT logico returna true se a condicao e false e vice - versa */
18 // returna false
19 $result = !( $status == 1);
20 print result is $result br ;
21
22 // XOR logico returna true se nenhuma das duas condicoes sao true , ou
23 // returna false se ambas condicoes sao true
24 $result = (( $status == 1) xor ( $auth == 1));
25 print resultado e $result br ;
Listagem 2.13: Operadores lgicos em PHP
o
2.8 Controle de
uxo
Em PHP a forma simples de controle de
uxo atravs da declara~o if. Seu argumento uma
e e ca e
express~o condicional, ou seja, que retorne TRUE ou FLASE. O exemplo a seguir mostra o uso de if
a
juntamente com um formulrio que ir realizar o processamento de acordo com a idade do usurio.
a a a
1 html
2 head / head
3 body
4 form action = ageist . php method = post
5 Digite sua idade : input name= age s i z e = 2
6 / form
7 / body
8 / html
Listagem 2.14: exemplo de if
A listagem 2.15 mostra o script que processa o formulrio anterior.
a
1 html
2 head / head
3 body
4 ? php
5 // retrieve form data
6 $age = $_POST [ ' age ' ];
7 // verificacao do valor
21
65. 8 if ( $age = 18) {
9 echo ' voce pode tirar carteira de motorista ! ';
10 }
11 if ( $age 18) {
12 echo voce nao pode tentar tirar carteira de motorista ainda ;
13 }
14 ?
15 / body
16 / html
Listagem 2.15: ageist.php
Alm da estrutura tradicional if-else o PHP disp~e ainda de uma estrutura especial, if-elseif-else.
e o
As listagens 2.16 e 2.17 exempli
66. cam seu uso.
1 html
2 head / head
3 body
4 h2 Today ' s Special / h2
5 p
6 form method = get action = cooking . php
7 s e l e c t name= day
8 option value = 1 Segunda / Quarta
9 option value = 2 Terca / Quinta
10 option value = 3 Sexta / Domingo
11 option value = 4 Sabado
12 / s e l e c t
13 input type = submit value = Enviar
14 / form
15 / body
16 / html
Listagem 2.16: Formulario
1 html
2 head / head
3 body
4 ? php
5 // pega selecao do formulario
6 $day = $_GET [ ' day '];
7 // checa a opcao e escolhe o item apropriado
8 if ( $day == 1) {
9 $special = ' Frango ao molho ';
10 }
11 elseif ( $day == 2) {
12 $special = ' Sopa francesa ';
13 }
14 elseif ( $day == 3) {
15 $special = ' Pure de batata e carne ';
16 }
17 else {
18 $special = ' Peixe e batatas ';
19 }
20 ?
21 h2 O cardapio de hoje e : / h2
22 ? php echo $special ; ?
23 / body
24 / html
Listagem 2.17: cooking.php
Os chamados loops tambm est~o dispon
e a veis no PHP. O mais simples deles o while. Executa
e
a~es repetidas vezes at que a condiao contida no argumento seja vlida, TRUE. A condiao
co e c~ a c~ e
avaliada no incio de cada intera~o. Dois exemplos simples e que produzem a mesma sa s~o
ca da a
mostrados a seguir.
22
67. 1 ? php
2 // exemplo 1
3 $i = 1;
4 while ( $i = 10)
5 {
6 echo $i ++;
7 }
8 // exemplo 2
9 $i = 1;
10 while ( $i = 10):
11 echo $i ;
12 $i ++;
13 endwhile ;
14 ?
15 /$
Listagem 2.18: loopsimples.php
O loop mais complexo o for. Seu funcionamento semelhante ao hom^nimo na linguagem C.
e e o
Comp~e-se de tr^s express~es. A primeira a inicializaao da varivel de controle do lao. A segunda
o e o e c~ a c
a condiao de parada. Enquanto esta condi~o for vlida os comandos contidos no for se repetem.
e c~ ca a
A terceira o incremento da varivel de controle para o prximo ciclo. A listagem 2.19 ilustra a
e a o
utiliza~o do for atravs de vrios exemplos.
ca e a
1 ? php
2 // exemplo 1
3 for ( $i = 1; $i = 10; $i ++) {
4 echo $i ;
5 }
6 // exemplo 2
7 for ( $i = 1; ; $i ++) {
8 if ( $i 10) {
9 break ;
10 }
11 echo $i ;
12 }
13 // exemplo 3
14 $i = 1;
15 for (; ; ) {
16 if ( $i 10) {
17 break ;
18 }
19 echo $i ;
20 $i ++;
21 }
22 // exemplo 4
23 for ( $i = 1 , $j = 0; $i = 10; $j += $i , print $i , $i ++);
24 ?
25 /$
Listagem 2.19: Exemplos de for
Outra estrutura de controle bastante utilizada em PHP o include, listagem ??. Esta estrutura
e
inclui e executa um determinado arquivo dentro de outro. Os arquivos s~o inclu
a dos especi
68. cando-
se seu caminho. Caso o arquivo n~o seja encontrado um warning emitido para o usurio. Se
a e a
especi
69. cado apenas o nome o arquivo procurado no diretrio corrente.
e o
Um estrutura similar o require. A diferena bsica que em caso de erro (arquivo n~o
e c a e a
encontrado, por exemplo) o script que originou a chamada require n~o continua, pois um erro fatal
a
emitido.
e
23
70. 1 vars . php
2 ? php
3 $cor = ' verde ';
4 $fruta = ' laranja ';
5 ?
6
7 teste . php
8 ? php
9 echo Uma $cor $fruta ; // Uma verde laranja
10 include ( vars . php );
11 echo Uma $cor $fruta ; // Uma laranja verde
12 ?
2.9 Fun~es
co
Durante o desenvolvimento de uma determinada aplicaao, ou mesmo dentro de um mesmo script,
c~
comum haver a necessidade de repetiao de partes do cdigo. Esta tarefa cansativa e di
71. culta
e c~ o e
a manuten~o do cdigo de aplica~es mais extensas. As linguagens de programaao modernas,
ca o co c~
disponibilizam formas de realizar o reaproveitamento de cdigo. Uma maneira de fazer isso
o e
utilizando funoes.
c~
De maneira simpli
72. cada, pode-se dizer que uma fun~o um subprograma que executa diversas
ca e
instruoes sempre que chamada. Podem ou n~o retornar valores.
c~ e a
A cria~o (de
73. ni~o) de uma funao em PHP bastante simples conforme mostrado a seguir:
ca ca c~ e
function nomefuncao(arg1, arg2, arg3)
{
comandos
}
O nome da fun~o n~o pode coincidir com nenhuma palavra reservada do PHP como nomes de
ca a
funoes j existentes. A de
74. ni~o de funoes pode estar em qualquer parte do script, mesmo aps a
c~ a ca c~ o
sua chamada. Abaixo temos um exemplo simples de uma funao do usurio que mostra o quadrado
c~ a
dos nmeros de 1 a 10.
u
1 ? php
2 echo FUNCAO DO USUARIO ;
3 quadrado ();
4 echo FIM ;
5 function quadrado ()
6 {
7 for ( $i =0; $i 10; $i ++)
8 echo O quadrado de . $i . e . ( $i * $i ) . br ;
9 }
10 ?
O fragmento de cdigo 2.9 mostra a de
75. ni~o e o uso da fun~o quadrado() criada pelo de-
o ca ca
senvolvedor. E interessante observar que n~o passado nenhum valor (argumento) para a funao,
a e c~
nenhuma informaao entre par^nteses. Outro detalhe que deve ser observado que esta funao n~o
c~ e e c~ a
retorna valores, ou seja, na chamada da funao, simplesmente o cdigo executado e o resultado
c~ o e
substitudo no local do script onde a fun~o foi chamada.
ca
Em muitas situa~es necessrio enviar um ou mais valores para uso da fun~o. Assim, uma
co e a ca
funao pode n~o ter argumentos, como no exemplo anterior, ou ter vrios argumentos declarados
c~ a a
para uso. Para isso, basta informar quais os argumentos na declaraao da funao conforme exemplo
c~ c~
2.9.
1 ? php
2 function area ($b , $h )
3 {
24
76. 4 $area = $b * $h ;
5 printf ( Area do quadrado e: % s m2 , $area );
6 }
7 echo Area do Retangulo ;
8 area (2 ,4);
9 echo FIM ;
10 ?
A fun~o area() recebe dois argumentos, $b e $h, que representam a base e a altura de um
ca
ret^ngulo. A funao recebe esses argumentos e os utiliza para calcular a area do ret^ngulo que o
a c~ a e
objetivo da fun~o. Para criar fun~es que retornem valores, basta utilizar a funao return, conforme
ca co c~
mostrado em 2.9.
1 ? php
2 function area ($b , $h )
3 {
4 $a = $b * $h ;
5 return $a ;
6 }
7 echo Area do Retangulo ;
8 $base = 2;
9 $altura = 3;
10 $area = area ( $base , $altura );
11 printf ( A area do retangulo de base %f e altura %f e % f , $base , $altura , $area );
12 ?
25
77. 2.10 Exerccios
1. Qual o mtodo HTTP recomendado para utilizaao em aplicaoes web ? Justi
78. que.
e c~ c~
2. Execute os cdigos mostrados no cap
o tulo 2. Releia as explica~es dadas e tente entender o
co
funcionamento dos scripts.
3. Escreva um formulrio que contenha dois campos: Nota 1 e Nota 2. Acrescente um bot~o de
a a
envio. Aponte o formulurio para enviar os dados para media.php, mostrado a seguir. Execute
a
o script 2.20 e observe seu funcionamento.
1 ? php
2 // media . php
3 $n1 = $_GET [ nota1 ];
4 $n2 = $_POST [ nota2 ];
5
6 $media = ( $n1 + $n2 )/2;
7 printf ( A media das notas e :% s , $media );
8 ?
Listagem 2.20: media.php
4. Sobre o exerccio anterior responda:
A varivel $media do tipo inteiro (int) ou ponto
utuante (
oat)?
a e
Como modi
79. car exibiao do valor da mdia para apenas uma casa decimal?
c~ e
Faa as adequaoes necessrias para utilizar o mtodo POST.
c c~ a e
5. Para calcular a area de um ret^ngulo basta multiplicar o valor da base (b) pela altura (h). Crie
a
um arquivo em HTML que contenha um formulrio que solicita ao usurio os valores de base
a a
e altura de um ret^ngulo e um bot~o de envio. Em seguida, escreva um script para calcular a
a a
area do ret^ngulo.
a
(Lembrete: O formulrio deve apontar para o script que realizar o processamento)
a a
6. Repita o exerccio anterior acrescentando o clculo do permetro do ret^ngulo, ou seja, a soma
a a
da medida de todos os lados.
7. A frmula para calcular a area de uma circunfer^ncia : A = £ r2 . Elaborar uma aplicaao
o e e c~
(formulrio e script ) que solicite ao usurio o valor do raio de uma circunfer^ncia e exiba o
a a e
valor da area.
8. Dado o cdigo em PHP a seguir, faa o que se pede:
o c
Pesquise o que fazem as funoes substr() e strlen();
c~
Execute o script e veri
80. que a resposta apresentada;
Refaa o script utilizando um while ao invs do for;
c e
1 ? php
2 $text = Bem vindo ao desenvolvimento em PHP ;
3 $searchchar = e ;
4 $count = 0 ;
5
6 for ( $i =0; $i strlen ( $text ); $i = $i +1)
7 {
8 if ( substr ( $text , $i ,1)== $searchchar )
9 $count = $count +1;
10 }
11
12 echo $count ;
13 ?
Listagem 2.21: countchar.php
26
82. que o cdigo mostrado na listagem 2.11 de forma que caso n~o sejam passados os valores
o a
das variveis nome e idade seja exibida uma mensagem explicativa ao usurio. Caso contrrio,
a a a
a mensagem informando o nome e a idade mostrada.
e
10. Faa uma pesquisa para determinar a utilidade da fun~o phpinfo(). Em seguida, escreva um
c ca
script que utilize esta funao, execute-o e veja o resultado.
c~
11. Na quest~o anterior, o que acontece quando o valor passado em nome ana silvaao invs de
a e e
ana? Como evitar o truncamento dos dados ao utilizar query strings ?
12. Criar um script que exiba informa~es sobre a mquina em que est sendo executado o sistema,
co a a
como nome do servidor, endereo IP, a porta e o qual o servidor web.
c
(Sugest~o: Pesquise sobre o container $ SERVER, semelhante a $ GET e $ POST)
a
27
84. Cap
tulo 3
Coisas Importantes em PHP
Educai as crianas, para que n~o seja necessrio punir os homens.
c a a
Pitgoras
a
No captulo anterior, foi feita uma apresentaao geral sobre a linguagem PHP e sua din^mica
c~ a
bsica de funcionamento atravs do uso de formulrios e dos arrays $_GET e $_POST, tambm con-
a e a e
hecidos como arrays superglobais. Porm, o uso dos valores contidos nesses arrays existe apenas
e
para o script na qual os dados foram diretamente repassados. Na maioria das vezes os valores das
ca a
variveis devem permanecer existindo durante a execu~o de vrios scripts. E o caso de aplicaoes
a c~
acessveis apenas a certos usurios, ou seja, que necessitam de autenticaao, por exemplo. Os cookies
a c~
podem ser utilizados para esta tarefa. O que chamado de persist^ncia dos dados. O PHP oferece
e e
ainda o recurso de sess~es que uma alternativa mais moderna do que os cookies.
o e
Neste captulo, ser apresentado o uso de ambas as tcnicas. Na ultima parte do captulo ser
a e a
abordado ainda o uso de bancos de dados como ferramenta auxiliar, uma vez que a persist^ncia de
e
dados tambm uma caracterstica fundamental em aplicaoes web em geral.
e e c~
3.1 Por que cookies ou sess~es?
o
Quando se acessa uma pgina web, a comunicaao entre o navegador e o servidor web feita atravs do
a c~ e e
protocolo HTTP (Hypertext Transfer Protocol ). A quest~o que o HTTP n~o armazena informaoes
a e a c~
de estado, ou seja, os dados enviados para atender uma requisiao do cliente n~o s~o mantidos quando
c~ a a
uma nova requisiao feita, inviabilizando o armazenamento de informaoes enviadas anteriormente.
c~ e c~
Por exemplo, se dois usurios acessam a pgina teste.html n~o possvel para o servidor deter-
a a a e
minar qual dos usurios realizou o acesso. As requisi~es s~o tratadas independentemente. Sim-
a co a
plesmente, o Apache atende as duas requisi~es. Assim, mecanismos como cookies e sess~es s~o
co o a
fundamentais para o desenvolvimento de aplicaoes como comrcio eletr^nico, exibiao de anncios
c~ e o c~ u
e personaliza~o de pginas em geral. S~o as chamadas pginas din^micas. Diferentemente das pgi-
ca a a a a a
nas estticas que utilizam puramente o HTML, ou seja, o mesmo contedo sempre exibido para
a u e
qualquer usurio que requisite a pgina.
a a
3.2 Cookies
Cookies s~o apenas arquivos texto armazenados localmente na mquina do cliente web para posteri-
a a
ormente serem recuperados pelo servidor. E composto por um nome para servir como referencia e um
valor associado a esse nome. Qualquer aplica~o que necessite compartilhar dados entre diferentes
ca
pginas pode ser implementada utilizando os cookies.
a
Um exemplo muito simples do uso de cookies a contagem de acessos. Supondo que um usurio
e a
acessa um site pela primeira vez e que um cookie de
85. nido com o nome numero_acessos e com valor
e
29
86. inicial 1. No prximo acesso, o valor incrementado e assim sucessivamente. O servidor resgata esse
o e
valor na mquina do cliente e pode utilizar a informaao para exibir algo como:
a c~
Este e seu acesso nmero 2
u
Outro exemplo que pode ser citado quando s~o feitas buscas em um site. O termo pesquisado
e a
pode ser armazenado em um cookie de forma que em acessos futuros o termo pesquisado j seja a
preenchido no campo do formulrio.
a
Os cookies tambm possuem uma caracterstica interessante chamada de validade, ou seja, o
e
tempo que permanecer armazenado na mquina do usurio. A validade de um cookie pode chegar
a a a
a dias ou pode ser con
87. gurado para ter tempo de vida de apenas alguns minutos.
Existe uma discuss~o em torno do uso de cookies com rela~o a privacidade. Isso ocorre porque
a ca
muitas vezes o usurio pode estar tendo informa~es gravadas em cookies e estas informaoes serem
a co c~
utilizadas por empresas para rastrear os sites pela qual o usurio navegou, por exemplo. Por isso, os
a
navegadores permitem ao usurio habilitar ou desabilitar o armazenamento de cookies na mquina.
a a
Entretanto, ao desabilitar este recurso di
88. cilmente pode-se obter os mesmos recursos disponibilizados
pelo site. Provalmente, n~o ser possvel realizar o login ou registrar a cidade em que o usurio se
a a a
encontra e coisas do tipo.
3.3 Enviando cookies
O PHP disponibiliza a fun~o setcookie() para enviar cookies para a mquina do usurio. Esta
ca a a
funao possui dupla funcionalidade, tanto serve para de
89. nir como para excluir um cookie. A sintaxe
c~
bsica da funao a seguinte:
a c~ e
bool setcookie(string nome [, string valor [,int validade [, string caminho [,
string domnio [, int seguro]]]]])
Par^metro Descri~o
a ca
nome Indica o nome que ser usado como refer^ncia
a e
valor Valor atribu ao cookie. Se vazio o cookie exclu
do e do
validade De
90. ne o tempo de validade do cookie no formato de tempo UNIX
caminho Caminho no servidor para o qual o cookie estar disponvel
a
domnio
Dom para o qual o cookie est disponvel
nio a
seguro Valor (0 ou 1) que indica se o cookie seguro
e
Para de
91. nir um cookie, necessrio atribuir um valor. Caso contrrio, o cookie excludo. Assim,
e a a e
a de
92. ni~o de um cookie feita assim:
ca e
setcookie (nome, Ana)
E a exclus~o dessa forma:
a
setcookie (nome).
Para criar um cookie vlido por dois dias basta com auxlio de time(),
a
setcookie (nome, Ana,time()+172800).
O valor de 172800 equivalente a quantidade de segundos em 48 horas. Acrescentadando esse valor
e
ao tempo atual retornado por time() temos a validade do cookie de
93. nida para o perodo de 2 dias.
Um detalhe importante quando se est utilizando cookies que seu envio deve ocorrer antes que
a e
qualquer tag HTML. Caso o cookie seja enviado aps as tags, uma mensagem de erro exibida
o e
informando que a funao setcookie() foi chamada aps o envio dos cabecalhos. Assim, o valor
c~ o c
n~o armazenado nem o cookie criado.
a e e
30
94. 3.4 Mais um superglobal
A funao setcookie() realiza o tarefa de enviar um cookie para o computador do usurio. Agora,
c~ a
preciso saber como utilizar os valores armazenados. E
e importante lembrar que os cookies n~o
a
poder~o ser utilizados na mesma pgina que os criou. Apenas na prxima requisiao que ser
a a o c~ e a
possvel utiliz-los.
a
A maneira recomendada de acessar os cookies atravs do array superglobal $_COOKIE, junta-
e e
mente com a chave associativa desse array. Por exemplo, se o cookie chamado nome de