aula 3 com propostas

39

Upload: nehos

Post on 18-Dec-2014

565 views

Category:

Documents


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Aula 3 com propostas

INSTITUTO FEDERAL DE EDUCA�C~AO, CIENCIAE TECNOLOGIA DO CEAR�A

Novas Tecnologias paraInternet e Web

Material de Apoio

Jos�e Roberto BezerraDaniel Silva Ferreira

v1.0

Page 2: Aula 3 com propostas

2

Page 3: Aula 3 com propostas

Sum�ario

Pref�acio 5

1 Um pouco sobre HTML 7

1.1 P�aginas web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.2 Ferramentas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.3 Atributos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.4 Hiperlinks, imagens e tabelas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.5 Formul�arios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.6 Exerc��cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2 Come�cando em PHP 13

2.1 Mais um acronimo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.2 O ambiente de desenvolvimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.3 Iniciando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.4 Vari�aveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.5 Operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.6 Formul�arios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.6.1 M�etodos HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.6.2 Query string . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.7 Comparando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.8 Controle de uxo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.9 Fun�c~oes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.10 Exerc��cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3 Coisas Importantes em PHP 29

3.1 Por que cookies ou sess~oes? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.2 Cookies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.3 Enviando cookies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.4 Mais um superglobal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.5 Autenticando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.5.1 Banco de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.5.2 Login . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3.5.3 Valida�c~ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.5.4 Logout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.6 Sess~oes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.6.1 Registrando vari�aveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.7 Bancos de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

3.7.1 Criando Tabelas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

3.7.2 Tabela de Contatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

3.8 Exerc��cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

3

Page 4: Aula 3 com propostas

4 SUM�ARIO

4 Estudo de Caso: Controle de Finan�cas Empresarial 39

4.1 Discutindo a aplica�c~ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394.2 � . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394.3 Realizando Testes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

Page 5: Aula 3 com propostas

Pref�acio

Este material foi produzido para servir de apoio a disciplina Novas Tecnologias Web do curso t�ecnicoa distancia em Inform�atica. Seu principal objetivo �e ser um guia que cont�em todo o conte�udo queser�a abordado durante a disciplina, mas que necessita ser complementado com outros materiais comov��deo aulas, livros, sites indicados, al�em dos mecanismos de aprendizagem dispon��veis na ferramenta(email, f�orum, etc).

5

Page 6: Aula 3 com propostas

6

Page 7: Aula 3 com propostas

Cap��tulo 1

Um pouco sobre HTML

Triste �epoca! �E mais f�acil desintegrar um �atomo do que um preconceito.

Albert Einstein

Antes de come�car o estudo sobre qualquer linguagem de programa�c~ao para web, �e necess�arioentender o funcionamento de um navegador. Os browsers, como Internet Explorer, Mozilla Firefox,Safari e outros, nada mais s~ao do que visualizadores de documentos HTML, ou seja, recebem arquivosHTML provenientes de um servidor web, interpretam e exibem o resultado para o usu�ario na formade hipertexto, imagens e tudo mais que pode ser visualizado atrav�es dos navegadores.

O HTML (Hypertext Markup Language) �e exatamente a maneira como as p�aginas web s~ao de-scritas. �E uma pseudo-linguagem, pois trata-se apenas de uma linguagem de marca�c~ao tamb�emchamadas de tags colocadas ao longo do conte�udo do documento. Estas marca�c~oes nada mais s~aodo que formata�c~oes na maneira como o conte�udo ser�a exibido pelo navegador como fontes, cores,tamanho, tabelas e demais elementos presentes na p�agina.

1.1 P�aginas web

Um site �e um conjunto de p�aginas web, que por sua vez, s~ao apenas arquivos HTML. Cada p�aginacont�em diversas tags que s~ao interpretadas pelos navegadores que exibem o conte�udo da maneirausual. Os navegadores n~ao exibem o conte�udo do documento HTML (fonte) diretamente, mas simsua interpreta�c~ao visual. Caso o usu�ario solicite, o c�odigo fonte da p�agina pode ser exibido pelonavegador. Para o Firefox ou Internet Explorer, basta selecionar ExibirjCodi�ca�c~ao que �e mostrado oc�odigo fonte da p�agina.

Abaixo, temos o primeiro exemplo de arquivo em HTML. Para visualiz�a-lo, basta salvar o con-te�udo mostrado na listagem 1.1 em um arquivo com a extens~ao .htm ou .html e abrir com qualquernavegador 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~ao HTML

Este pequeno documento de exemplo �e composto por 4 tags : <html>, <body>, <h1> e <p>. Asmarca�c~oes do documento HTML s~ao colocadas mescladas ao conte�udo. Cada marca�c~ao �e interpretadapelo navegador para exibir o conte�udo para o usu�ario da maneira indicada.

7

ETEC
Nota
colocar entre parênteses: linguagem de marcação (também chamada de tags),
ETEC
Nota
no singular: colocada
ETEC
Nota
Retirar essa vírgula depois de web. A vírgula deve vir apenas depois do "que". Veja: Um site é um conjunto de páginas web que, por sua vez, são apenas arquivos HTML.
Page 8: Aula 3 com propostas

A primeira tag (<html>) inicia e �naliza qualquer documento HTML. Todas as outras tags devemestar entre tags <html></html>. Praticamente todas as tags necessitam ser fechadas com uma tagde mesmo nome acrescida de / no in��cio.

O que est�a entre <body> e </body> delimita o que �e chamado de corpo do documento, �e aparte vis��vel ao usu�ario. Apenas o que est�a entre tags <body> �e exibido na tela do navegador aousu�ario.

A tag <h1> formata o texto "Hello, World"como um cabe�calho de n��vel 1 (heading). H�a aindaoutros cinco n��veis formando os cabe�calhos <h2>, <h3>, <h4>, <h5> e <h6>. Sendo <h1> omais destacado e o <h6> o menos destacado.

Por �m, a tag <p> delimita um par�agrafo do conte�udo. O fechamento desta tag �e opcional.Assim, pode-se remover o </p> sem nenhum preju��zo �a exibi�c~ao.

1.2 Ferramentas

Para visualizar arquivos simples em HTML n~ao �e preciso nenhum software espec���co. Basta um editorde texto simples e o navegador para visualizar o resultado. Entretanto, a medida que a quantidadede p�aginas e a complexidade aumentam, ferramentas mais adequadas podem ser utilizadas para criaras p�aginas HTML de um site e facilitar o trabalho do desenvolvedor web.

Alguns exemplos de editores HTML livres s~ao o Blue�sh e o NVu. Do lado dos propriet�arios,temos o Dreamweaver, Cold Fusion e tamb�em o Visual Studio. Qualquer destas ferramentas atende asnecessidades do que ser�a abordado neste material, entretanto, as ferramentas livres s~ao prefer��veisdevido a facilidade de acesso.

1.3 Atributos

As tags s~ao complementadas atrav�es de atributos. Estes s~ao pares de nome de tag e valor atribu��doque seguem a seguinte sintaxe: nome=valor. Eles s~ao utilizados sempre na tag inicial e nunca nofechamento. Vejamos:

<a href="http://www.google.com.br">Buscador</a>

O atributo href indica o endere�co do hiperlink. O texto entre as tags �e a parte exibida para ousu�ario, no caso, "Buscador". Cada tag possui atributos espec���cos. Para uma referencia detalhadasobre os atributos pode-se consultar a descri�c~ao completa de cada um deles consultando o endere�coda W3 Schools.

A tag <font> �e utilizada para alterar parametros relacionados �a exibi�c~ao de fontes no navegador.Entretanto, o uso desta tag n~ao �e mais recomendado no HTML 4 e foi totalmente removida no HTML5. Atualmente, a recomenda�c~ao �e formatar as fontes atrav�es de folhas de estilo CSS (Cascading StyleSheets). Assim mesmo, ainda �e bom um exemplo para demonstrar o uso dos atributos. Na listagem1.2, observa-se que, mesmo utilizando as folhas de estilo CSS (citadas anteriormente) o resultadoobtido �e o mesmo.

1 <p>

2 < font s i ze ="5" face="arial" color ="red">

3 Este paragrafo esta em Arial , tamanho 5 e cor vermelha.

4 </ font >

5 </p>

6

7 <p>

8 < font s i ze ="3" face="verdana" color ="blue">

9 Este paragrafo esta em Arial , tamanho 3 e cor azul.

10 </ font >

11 </p>

Listagem 1.2: Exemplo de utiliza�c~ao da tag <font>

8

ETEC
Nota
Inserir uma vírgula depois de atributos
ETEC
Nota
Ficaria melhor assim: Para uma referência detalhada sobre os atributos, pode-se consultar a descrição completa de cada um deles no endereço da W3 Schools.
Page 9: Aula 3 com propostas

1 <p sty le ="font -family:arial;color:red;font -size :20px;">

2 Este paragrafo usa fonte Arial , tamanho 20 pixels e cor vermelha.

3 </ font >

4 </p>

5 <p sty le ="font -family:verdana;color :#10 A030;font -size :30px;">

6 Este paragrafo usa fonte Verdana , tamanho 30 pixels e cor especificada em RGB

7 </ font >

8 </p>

Listagem 1.3: Exemplo de formata�c~ao de com CSS

1.4 Hiperlinks, imagens e tabelas

Di�cilmente encontraremos um site na Internet, por mais simples que seja, sem encontrar hiperlinks,que �e a essencia do HTML. As imagens tamb�em est~ao sempre presentes e as tabelas s~ao fundamentaispara organizar e dar uma melhor organiza�c~ao ao conte�udo. Dominar o uso destas tags �e fundamentalpara o desenvolvimento de p�aginas de qualquer tipo.

Os conhecidos hiperlinks s~ao palavras ou imagens que ao serem clicadas levam a uma nova p�aginaou nova se�c~ao da mesma p�agina. Ao mover o ponteiro do mouse sobre um link, o ponteiro se altera,indicando a presen�ca de um hiperlink. A tag <a> �e utilizada para cria�c~ao de links em uma p�agina.O formato b�asico �e:

<a href="url">Texto do link</a>

O atributo href especi�ca o destino do link. Apenas o texto entre as tags �e exibido no navegador.Outro atributo bastante utilizado �e target. O exemplo a seguir abre a p�agina em uma nova janela:

<a href="http://www.google.com" target="\_blank">Buscador</a>

Para utilizar imagens nas p�aginas web �e necess�ario utilizar a tag <img> que n~ao necessita serfechada. O atributo src �e utilizado para indicar o caminho para o arquivo que ser�a exibido. Caso oarquivo esteja no mesmo diret�orio da p�agina, basta indicar o nome. Os principais formatos utilizadoss~ao: JPG, GIF e PNG. O valor do atributo alt �e exibido quando o mouse passa sobre a �gura.Abaixo �e mostrado um exemplo do uso de <img>:

<img src="boat.gif" alt="Imagem de um barco">

Tamb�em �e poss��vel alterar o tamanho de exibi�c~ao da imagem no navegador atrav�es dos atributosheigth e width, conforme exemplo a seguir. Caso estes atributos n~ao sejam atribu��dos a imagem �emostrada em seu tamanho real,sem amplia�c~oes ou redu�c~oes.

<img src="pulpit.jpg"alt="Pulpit rock"width="304"height="228"

Para utilizar imagens como hyperlinks, basta substituir o texto do link entre as tags por uma tag<img>. Assim, a imagem aparecer�a no navegador como link ao inv�es de texto.

As tabelas s~ao de�nidas com a tag <table>. Cada tabela possui linhas (<tr>) e c�elulas (<td>).O conte�udo da tabela �ca dentro das c�elulas. Pode conter texto, links, imagens, listas ou at�e mesmooutras tabelas. A listagem 1.4 exempli�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

ETEC
Nota
Professor, colocar vírgulas. Veja: Os conhecidos hiperlinks são palavras ou imagens que, ao serem clicadas, levam a uma nova página ou a uma nova seção da mesma página.
Page 10: Aula 3 com propostas

1.5 Formul�arios

Formul�arios s~ao utilizados para passar informa�c~oes de uma p�agina a outra ou do usu�ario para oservidor, por exemplo. Um formul�ario deve conter elementos de entrada de dados como caixasde texto, checkbox, bot~oes de envio, listas de sele�c~ao e outros elementos dispon��veis. Para criarum formul�ario, utiliza-se a tag <form> que possui diversos atributos como action e name. Paraacrescentar elementos ao formul�ario, basta acrescentar uma tag <input> entre as tags <form>,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 formul�ario com v�arios elementos

No exemplo anterior, o formul�ario �e de�nido com o nome pesquisa, conforme o atributo presentena tag <form>. Em seguida, est~ao presentes 6 elementos, sendo duas caixas de texto, dois bot~oesde r�adio e dois checkboxes, respectivamente.

Nas caixas de texto, o usu�ario pode ser inserido texto livremente. Os bot~oes de r�adio servem paraescolher uma op�c~ao entre v�arias dispon��veis. J�a o checkbox, deve ser utilizado para selecionar umaop�c~ao �unica dentre v�arias dispon��veis.

O formul�ario da listagem 1.5 ainda est�a incompleto. Faltam alguns elementos para torn�a-lofuncional. Para que isto aconte�ca, �e necess�ario que seja utilizado o atributo action da tag <form>.Este atributo indica o arquivo ou script que ir�a processar os dados passados pelo formul�ario.

Normalmente, os scripts s~ao processados no lado do servidor. O cliente (navegador) apenas enviaas informa�c~oes para um servidor na Internet ou localmente para que este realize todo o processamento(c�alculos, armazenamento, otimiza�c~ao, etc) da informa�c~ao e devolva uma resposta ao cliente.

Na listagem 1.6, o valor de action=html_form_action.php indica que este script em linguagemPHP realizar�a o processamento do formul�ario. Tamb�em foi acrescentado o bot~ao submit para enviaros dados do formul�ario para o arquivo indicado em action para processamento.

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: Formul�ario com bot~ao de envio e action

10

ETEC
Nota
Não está adequado. Veja: Nas caixas de texto, o usuário pode ser inserido texto livremente. Acho que seria assim: Nas caixas de texto, o usuário pode inserir textos livremente.
Page 11: Aula 3 com propostas

1.6 Exerc��cios

1. Utilizando uma das ferramentas indicadas na se�c~ao 1.2, crie uma p�agina web pessoal (eu.html)contendo alguns de seus dados pessoais, como nome, cidade onde nasceu, data de nascimentoe informa�c~oes similares. Utilize tags <p> para inserir um ou mais par�agrafos com essas infor-ma�c~oes.

2. No exerc��cio do ��tem anterior, acrescente uma foto sua ao arquivo.

3. Ainda com rela�c~ao ao exerc��cio 1, acrescente, no �nal do arquivo, links para tres sites externoscom um texto em destaque Links Recomendados.

4. Ao �nal dos exerc��cios anteriores sua p�agina deve ter uma aparencia semelhante a �gura 1.1.

Figura 1.1: Screenshot de uma p�agina em HTML

5. Crie um arquivo html (tabela.html) que contenha as informa�c~oes mostradas na tabela 5. Utilizea tag <table> e demais tags relacionadas (<tr>, <td>, etc).

��tem descri�c~ao quantidade1 Notebook 22 Processador 103 Mouse 54 Monitor 11

Tabela 1.1: Lista de pre�cos

6. As tabelas podem ser utilizadas para organizar informa�c~oes em uma p�agina como pedido noexerc��cio 5. Outra utilidade das tabelas �e que permitem organizar a disposi�c~ao dos elementosde uma p�agina. O c�odigo HTML, mostrado na listagem 1.7, exempli�ca essa id�eia. Salve oc�odigo em um arquivo e visualize o resultado no navegador.

11

ETEC
Nota
Esse item não é uma questão. Você não solicita que o aluno faça nada. Deve ser inserido na questão 3 mesmo.
Page 12: Aula 3 com propostas

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 p�agina

7. Modi�que o c�odigo mostrada na listagem 1.7 para que a imagem seja exibida no lado direitoao inv�es do lado esquerdo. Pesquise na internet como modi�car a cor de fundo de uma tabelae aplique nesta p�agina.

8. Crie uma p�agina para o cadastramento (form.html) de um usu�ario na intranet de uma empresa.O formul�ario deve conter os campos: nome completo, setor (compras, vendas ou �nanceiro),nome do usu�ario e senha.

9. Dada a tag <body> mostrada abaixo, pesquise para que servem os atributos BGCOLOR,TEXT, LINK, ALINK e VLINK. Aplique-os na p�agina do exerc��cio 1.

<body bgcolor="#rrggbb" text="#rrggbb" link="#rrggbb"

alink="#rrggbb" VLINK="#rrggbb">

10. Diferencie os termos p�aginas est�aticas e p�aginas dinamicas relacionados a constru�c~ao desites em geral.

12

Page 13: Aula 3 com propostas

Cap��tulo 2

Come�cando em PHP

Estamos irrevogavelmente em um caminho que nos levar�a �as estrelas.

A n~ao ser que, por uma monstruosa capitula�c~ao ao ego��smo e �a estupidez,

acabemos nos destruindo.

Carl Sagan

Os iniciantes em desenvolvimento para web ou em tecnologia da informa�c~ao n~ao devem se assustarcom a quantidade de acronimos (siglas) existentes. ASP, CGI, SOAP, XML e HTTP s~ao algunsdeles. A lista pode ser acrescida de v�arios outros ��tens e pode parecer intermin�avel assustando osmenos experientes no assunto. Assim, para desenvolver um site com qualidade e principalmente comfuncionalidade um ��tem �e indispens�avel na lista, a linguagem de scripts PHP.

2.1 Mais um acronimo

O PHP �e uma linguagem de programa�c~ao voltada para web bastante conhecida. Trata-se da �unicalinguagem de scripts baseada em servidor que possui c�odigo aberto. �E bastante ex��vel e f�acil deaprender. Pesquisas mostram que milh~oes de websites utilizam a linguagem PHP como base parasuas aplica�c~oes. A raz~ao para isso �e a grande capacidade do PHP, �e uma linguagem poderosa, f�acil deusar e aprender al�em de ser livre. Al�em de ser extremamente robusta e escal�avel, pode ser utlizadaem aplica�c~oes de alta demanda com boas respostas. Possui suporte a diversos bancos de dados, aXML, permite a cria�c~ao de frameworks do pr�oprio programador e ainda excelente documenta�c~ao.Como se todas estas vantagens n~ao fossem su�cientes ainda �e gratuita.

2.2 O ambiente de desenvolvimento

Para que o PHP funcione, �e necess�ario combin�a-lo com um servidor web, tipicamente o Apache. Asrequisic~oes a scripts feitas pelo usu�ario ou aplica�c~ao s~ao recebidas pelo servidor web e manipuladaspelo interpretador PHP. O resultado obtido depois da execu�c~ao �e devolvido ao servidor web quetransmite a informa�c~ao para o cliente (navegador). O script �e o programa propriamente dito. �E ondeest�a escrito o c�odigo da aplica�c~ao que funciona na Internet. Nele, �e poss��vel fazer c�alculos, processarentradas do usu�ario, interagir com bancos de dados, ler e escrever em arquivos e tudo mais que umalinguagem de programa�c~ao �e capaz de realizar.

As atividades propostas neste material foram implementadas utilizando o PHP juntamente como servidor web Apache no sistema operacional Linux. Essa �e a combina�c~ao de ferramentas maiscomum para utilizar o PHP. Entretanto, existem vers~oes tanto do PHP quanto do Apache paraoutros sistemas operacionais como Windows e MacOS. Instru�c~oes detalhadas sobre a instala�c~ao eprepara�c~ao do ambiente de desenvolvimento para cada plataforma podem ser encontradas no manualdo PHP dispon��vel no endere�co:

13

ETEC
Nota
Veja que não há uma continuação da ideia para que você utilize "assim". Seria melhor se seu texto estivesse organizado da seguinte maneira: A lista pode ser acrescida de vários outros itens e pode parecer interminável assustando os menos experientes no assunto. Nessa lista, há um item indispensável para desenvolver um site com qualidade e principalmente com funcionalidade: a linguagem de scripts PHP.
ETEC
Nota
Professor, é melhor reorganizar essa parte do texto. Veja: A razão para isso é a grande capacidade do PHP, pois é uma linguagem poderosa, fácil de usar e aprender. Além de ser extremamente robusta e escalável, essa linguagem pode ser utilizada em aplicações de alta demanda com boas respostas.
ETEC
Nota
Professor, não entendi essa parte do texto: "Possui suporte a diversos bancos de dados, a XML, permite a criação de frameworks do próprio programador e ainda excelente documentação. Como se todas estas vantagens não fossem suficientes ainda é gratuita". Veja se é isso que você quer dizer: O PHP também possui suporte a diversos bancos de dados, como, por exemplo, o XML que permite a criação de frameworks do próprio programador e ainda tem excelente documentação. Como se todas estas vantagens não fossem
ETEC
Nota
Inserir vírgula: Como se todas estas vantagens não fossem suficientes, o PHP ainda é uma linguagem gratuita.
ETEC
Nota
Professor, melhor reorganizar essa parte do texto, pois não é compreensível se as requisições são feitas pelo usuário ou pelas aplicações ou se o usuário requisita scripts ou aplicações. Eu fiz uma reorganização textual a partir do que entendo que seja o verdadeiro sentido. Veja se é isso mesmo: Quando o usuário requisita scripts ou aplicações, essas requisições são recebidas pelo servidor web e manipuladas pelo interpretador PHP.
ETEC
Realce
ETEC
Nota
depois de PHP, inserir uma vírgula: utilizando o PHP, juntamente como servidor web Apache, no sistema operacional Linux.
ETEC
Nota
inserir uma vírgula depois de sistemas operacionais: ....outros sistemas operacionais, como o Windows e o MacOS.
Page 14: Aula 3 com propostas

http://www.php.net/manual/pt BR/install.php

.

2.3 Iniciando

A maneira mais simples de programar em PHP �e embutir o c�odigo da linguagem dentro de um arquivocontendo tags HTML. O c�odigo embutido nas p�aginas �e executado quando a p�agina �e carregada.

Os comandos da linguagem PHP devem estar sempre entre tags espec���cas indicando ao Apache

que os comandos entre estas tags devem ser processados pelo interpretador PHP. Observar a listagem2.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~ao colocados junto com HTML �e mostrado nalistagem 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 c�odigo mostrado na listagem 2.2 e abrindo o c�odigo HTML lido pelo navegador�e poss��vel observar que as tags PHP n~ao est~ao presentes. O que aconteceu? Quando a p�agina �e req-uisitada ao servidor web (Apache) pelo ciente web (navegador) esta �e interpretada pelo interpretadorPHP presente no servidor, que por sua vez, repassa o resultado na forma de um arquivo HTML que�e visualizado pelo navegador. Este processo est�a ilustrado na �gura 2.1. �E importante notar que a�gura ilustra o caso t��pico de um servidor que est�a sendo acessado atrav�es de uma rede interna ouda pr�opria Internet. O que pode ser chamado um ambiente de produ�c~ao. O que quer dizer que oselementos est~ao interagindo em um sistema real, em pleno funcionamento.

Em oposi�c~ao a um sistema de produ�c~ao, temos os sitemas de teste ou desenvolvimento em que,normalmente, todos os elementos citados anteriormente funcionam em uma �unica m�aquina, conformeilustrado na �gura 2.2. Estes sistemas s~ao utilizados para testar modi�ca�c~oes antes de serem colocadasem funcionamento no servidor de produ�c~ao e tamb�em para aprendizagem e estudos. Na �gura 2.2,s~ao mostrados dois processos: o cliente (navegador) e o servidor web. A troca de informa�c~oes entreeles se d�a atrav�es da interface de rede local ao inv�es da Internet que normalmente �e usada em umsistema de produ�c~ao. Desta maneira, n~ao �e necess�ario um servidor externo para aprendizagem outestes. Todas os processos envolvidos (navegador e servidor web) est~ao rodando na mesma m�aquina.

Para inserir coment�arios ao longo no c�odigo fonte em PHP, existem duas op�c~oes. Coment�ariosde apenas uma linha basta acrescentar //. J�a os coment�arios de v�arias linhas s~ao iniciados com /* e

14

ETEC
Nota
Veja: ....que os comandos entre estas tags devem ser processados pelo interpretador PHP, como pode ser observado na figura 2.1.
ETEC
Nota
a separação silábica não está certa.
ETEC
Nota
é ciente ou cliente?
ETEC
Nota
inserir vírgula depois de "que"
ETEC
Realce
ETEC
Realce
iniciar com letra minúscula
ETEC
Nota
colocar entre parênteses: ...internet (o que pode ser chamado de ambiente de produção).
ETEC
Realce
ETEC
Nota
inserir uma vírgula depois de internet.
ETEC
Nota
Trocar "todas" por "todos". veja: Todos os processos.... Além disso, a informação: "todos os processos envolvidos (navegador e serviços web) estão rodando na mesma máquina" está relacionada à setença anterior"Desta maneira, não é necessário um servidor externo para aprendizagem ou teste"? SE for, melhor você colocar assim: Desta maneira, não é necessário um servidor externo para aprendizagem ou teste, pois todos os processos envolvidos (navegador e serviços web) estão rodando na mesma máquina.
ETEC
Nota
ao invés de "no" não seria "do"? Veja: ao longo do código
ETEC
Nota
Essas duas opções são: comentários de uma linha e comentários de várias linhas? Se for, reorganizar o texto da seguinte forma: Para inserir comentários ao longo do texto em PHP, existem duas opções: comentários de uma linha e comentários de várias linhas. Ao comentário de uma linha, basta acrescentar //. Já os comentários de várias linhas são iniciados com /* e finalizados com */ .
Page 15: Aula 3 com propostas

Figura 2.1: Intera�c~ao entre cliente e servidor web com suporte a PHP

Figura 2.2: Sistema de desenvolvimento t��pico utilizando apenas uma m�aquina

�nalizados com */. As linhas em branco s~ao ignoradas, assim como qualquer caractere fora das tags.Os coment�arios seguem o mesmo padr~ao da linguagem C, que ali�as �e a base do PHP. Nos exemplosmostrados neste material, pode-se observar muitas semelhan�cas entre a sintaxe utilizada em ambasas linguagens.

1 <?php

2

3 // comentario de linha unica

4

5 /* comentario

6 de multiplas

7 linhas */

8 ?>

Listagem 2.3: Coment�arios em PHP

2.4 Vari�aveis

Assim como qualquer outra linguagem de programa�c~ao, o PHP tamb�em utiliza-se de vari�aveis paraarmazenar dados durante a execu�c~ao de um script. Armazernam dados num�ericos e n~ao num�ericos.Seu conte�udo pode mudar ao longo da execu�c~ao do script. Podem ser comparadas e o resultado dascompara�c~oes pode ser utilizado para disparar a�c~oes espec���cas como em qualquer outra linguagem.

15

ETEC
Nota
Professor, não é aconselhável que o texto seja cortado pela figura. É melhor que a figura apareça depois que você terminar o parágrafo, ou seja, depois de "Nos exemplos mostrados neste material, pode-se observar muitas semelhanças entre a sintaxe utilizada em ambas as linguagens.
ETEC
Nota
retirar "armazenam dados numéricos e não numéricos". Ao invés disso, passar essa informação para a sentença anterior. Veja: Assim como qualquer linguagem de programação, o PHP também utiliza-se de variáveis para armazenar dados (numéricos e não numéricos) durante a execução de um script.
ETEC
Nota
O que podem ser comparadas?São as variáveis? Se for, inicie assim: As variáveis podem ser comparadas.....
Page 16: Aula 3 com propostas

PHP suporta uma grande quantidade de tipos de vari�aveis: inteiros, ponto utuante, strings ematrizes. Na grande maioria das linguagens, �e fundamental especi�car o tipo de vari�avel que est�asendo utilizada logo no in��cio do programa. O que �e conhecido como declara�c~ao de vari�aveis. No casoda linguagem PHP, o pr�oprio interpretador determina o tipo de vari�avel atrav�es do contexto em que�e utilizada. Inclusive, uma vari�avel pode ser tratada inicialmente como inteiro e durante a execu�c~aopassar a ser tratada como string. Isto, traz bastante exibilidade no uso de vari�aveis e conforto parao programador que n~ao necessita preocupar-se com a declara�c~ao das mesmas.

Cada vari�avel deve ser identi�cada por um nome. O nome de uma vari�avel �e precedido por $ eseguido por letra ou . S~ao exemplos de nomes de vari�aveis v�alidos: $popeye, $one e $INCOME. J�aos nomes $48hrs e $123 n~ao s~ao v�alidos. Os nomes tamb�em s~ao sens��veis ao caso, logo $me �e diferentede $ME.

Na listagem 2.4, �e mostrado um exemplo simples de utiliza�c~ao de vari�aveis em PHP. As vari�aveis$name, $rank e $serialNumber s~ao de�nidas como string e como n�umero, mas s~ao utilizadas comostring na chamada da fun�c~ao echo(). Assim, como printf(), echo() �e utilizada para exibir dadosna sa��da padr~ao. Na chamada da fun�c~ao echo(), ainda foram inclu��das tags HTML que ser~aoprocessadas 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: Vari�aveis em PHP

Para atribuir valor a uma vari�avel basta utilizar o sinal �a direita do nome da vari�avel seguido dovalor 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: Atribui�c~ao em PHP

Os principais tipos de vari�aveis dispon��veis em PHP s~ao:

� Booleano (bool)

� Inteiro (int)

� Ponto utuante ( oat)

16

ETEC
Nota
Coloque o artigo antes: O PHP suporta uma....
ETEC
Nota
retirar essa vírgula depois de "isto"
ETEC
Nota
Professor, que tal reformular essa sentença. Veja: Isto traz bastante flexibilidade no uso de variáveis e conforto para o programador, já que ele não precisa se preocupar com a declaração das variáveis.
ETEC
Nota
o nome de uma variável é precedido por $ e seguido por qualquer letra? Se for, deixar claro(assim como eu fiz). SE não for, especifique que letra (por exemplo, seria a letra inicial de alguma coisa?)
ETEC
Nota
que caso é esse? os alunos sabem? Já foi dito em algum momento? Inserir uma vírgula depois de "logo"
ETEC
Nota
inserir uma vírgula depois de variável
ETEC
Nota
esse sinal está correto? Acredito que não, pois não há esse sinal no exemplo mostrado.
Page 17: Aula 3 com propostas

� String

� Vetores (arrays)

Para especi�car uma vari�avel como boolena basta atribuir as palavras-chave TRUE ou FALSE.�E o tipo de dado mais simples. Expressa um valor verdade. Tamb�em s~ao considerados falsos o valor0 (inteiro), 0.0 (ponto utuante), string vazia e um array sem elementos.

Os n�umeros inteiros s~ao compostos pelo conjunto Z = f:::� 2;�1; 0; 1; 2; :::g. Podem ser especi-�cados em base decimal, hexadecimal ou octal. Em octal �e necess�ario preceder o n�umero com 0. J�aem hexadecimal �e necess�ario preceder por 0x.

Os n�umeros em ponto utuante s~ao os chamados n�umeros reais. Utiliza-se o ponto para separara parte inteira da parte n~ao inteira ($a = 1.234). Tamb�em pode-se utilizar a nota�c~ao cient���ca ($a= 1.23e4 ou $b = 7E-10).

Uma string �e especi�cada utilizando-se aspas simples ($nome = 'maria') ou aspas duplas ($palavra= "word"). Por�em, no caso de aspas duplas, se uma vari�avel �e colocada entre as aspas o seu valor �esubstitu��do.

Um array em PHP �e considerado um mapa ordenado, ou seja, �e um tipo que relaciona valorespara chaves. Este tipo �e otimizado de v�arias maneiras, assim, �e poss��vel us�a-lo como um array real,ou uma lista (vetor), hashtable (que �e uma implementa�c~ao de mapa), dicion�ario, cole�c~ao, pilha, �lae provavelmente o que mais a criatividade do programador alcan�car.

Um array cont�em um certo n�umero de pares, separados por v��rgula, chave=>valor. A chavepode ser tanto um inteiro quanto uma string. Na listagem 2.6 �e mostrado um exemplo de utiliza�c~aodeste 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: Atribui�c~ao de arrays em PHP

2.5 Operadores

A melhor maneira de se familiarizar com os operadores dispon��veis em uma linguagem �e utilizando-os.A seguir seguem exemplos de utiliza�c~ao de diversos operadores suportados pelo PHP.

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

ETEC
Nota
inserir uma vírgula depois de booleana
ETEC
Nota
inserir uma vírgula depois de "aspas"
ETEC
Nota
colocar "em PHP" entre vírgulas
ETEC
Nota
inserir uma vírgula depois de "a seguir"
ETEC
Nota
trocar o ponto por dois pontos
Page 18: Aula 3 com propostas

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 tamb�em disponibiliza operadores bastante �uteis para realizar opera�c~oes com strings. Aconcatena�c~ao de strings �e feita com o operador (.). A listagem 2.8 exempli�ca a concatena�c~ao destrings 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 Formul�arios

O que torna o PHP uma linguagem para web �e sua caracter��stica pr�opria de receber entradas dousu�ario a partir de um formul�ario de uma p�agina web e converter os dados passados em vari�aveis.

O uso de formul�arios �e a maneira mais natural e simples de interagir com p�aginas web. Permitea intera�c~ao entre clientes e fornecedores atrav�es de toda o tipo de aplica�c~oes bastante conhecida naweb. Com�ercio eletronico e transa�c~oes banc�arias s~ao alguns dos exemplos de aplica�c~oes t��picas e todaselas utilizam-se de formul�arios para passar informa�c~oes. O PHP �e bastante �agil no recebimento dasinforma�c~oes passadas pelos clientes (navegadores) e process�a-las no servidor web.

A populariza�c~ao da Internet tornou os navegadores a ferramenta mais pr�atica para os usu�ariosinteragirem as aplica�c~oes disponibilizadas pelas empresas e institui�c~oes. Flexibilizou o acesso aosaplicativos, dispensando a necessidade de distribui�c~ao de arquivos execut�aveis, j�a que as aplica�c~oesest~ao dispon��veis em sites. A manuten�c~ao �e centralizada tirando do usu�ario o trabalho de atualizaro software instalado em sua m�aquina.

A seguir, temos o primeiro exemplo de uma aplica�c~ao em que s~ao passados dados atrav�es deum formul�ario para ser processado por um script em PHP. O exemplo �e composto de basicamentede dois scripts, o primeiro cont�em o formul�ario HTML (form.html) e o segundo cont�em a l�ogica deprocessamento (message.php).

18

ETEC
Nota
O que permite? O uso de formulários ou o próprio formulário? Coloque essa informação antes de "permite". Veja: O uso de formulários permite.... ou Os formulários permitem....
ETEC
Nota
"através de toda o tipo de aplicações bastante conhecida na web"? Não entendi.
ETEC
Nota
Não deixe de utilizar os artigo: O comércio eletrônico e as transações bancárias.....
ETEC
Nota
........e as processa no servidor web.
ETEC
Realce
colocar em minúsculo
ETEC
Realce
ETEC
Realce
ETEC
Realce
ETEC
Nota
Professor, veja todo esse período: A popularização da internet tornou os navegadores a ferramenta mais prática para os usuários interagirem as aplicações disponibilizadas pelas empresas e instituições". Acredito que tenha algum equívoco.
ETEC
Nota
Acrescentar "também". Veja: TAmbém flexibilizou o acesso aos aplicativos....
ETEC
Nota
excluir esse "de"
ETEC
Nota
substituir essa vírgula por dois pontos
Page 19: Aula 3 com propostas

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�ca o nome do script do lado do servidor (server-sidescript) que ser�a utilizado no processamento dos dados passados no formul�ario. O segundo atributomethod especi�ca a maneira como os dados ser~ao passados. O HTTP disp~oe basicamente de doism�etodos b�asicos para trocar informa�c~oes com formul�arios: GET e POST. Mais detalhes sobre essesm�etodos s~ao apresentados na se�c~ao 2.6.1

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~ao passados atrav�es de form.html e submetidos, o script message.php le eexibe os dados segundo a l�ogica implementada. Assim, para cada formulario submetido a um scriptPHP os pares valor-vari�avel est~ao dispon��veis para uso no script atrav�es de uma vari�avel containerespecial, $ POST.

Obviamente, o PHP tamb�em suporta o m�etodo GET. No formul�ario, basta alterar o atributomethod para GET ao inv�es de POST. E para acessar o valor utilizar o container $ GET.

2.6.1 M�etodos HTTP

O HyperText Transfer Protocol (Protocolo de Transferencia de Hipertexto - HTTP) �e o protocolo decomunica�c~ao utilizado para a troca de dados entre um navegador e um servidor web. �E o protocolode comunica�c~ao que o usu�ario aciona quando digita um endere�co no seu navegador. A troca deinforma�c~oes entre os dois processos, cliente e servidor, �e feita por algum m�etodo disponibilizado peloHTTP. Os principais m�etodos associados �a transferencia de dados de formul�arios, s~ao fundamentais:o m�etodo GET e o m�etodo POST.

GET

O m�etodo GET �e acionado por meio de um formul�ario HTML atrav�es do atributo method=get

inclu��da na em uma tag <form>. Por meio desse m�etodo, os dados constantes no formul�ario s~aoprimeiramente transmitidos ao processo servidor e este, por sua vez, armazena os dados temporari-amente numa vari�avel de contexto denominada QUERY STRING (ver se�c~ao 2.6.2).

Quando um formul�ario HTML utiliza o m�etodo GET, o uxo de dados �e separado do endere�coURL que chama o script atrav�es de um ponto de interroga�c~ao (?). Esta forma de endere�camento esepara�c~ao pode ser observada no campo de endere�cos do navegador do usu�ario, logo ap�os o formul�arioter sido enviado, como mostrado a seguir.

\texttt{http://www.meusite.com/meuscript.cgi?nome=Maria&id=123}

19

ETEC
Nota
colocar o acento "formulário"
ETEC
Nota
colocar uma vírgula depois de PHP
ETEC
Nota
submetido a quê? essa informação deve constar
ETEC
Nota
inserir uma vírgula depois de "valor"
ETEC
Realce
ETEC
Realce
ETEC
Nota
Para não repetir novamente, melhor reformular. Veja: ...entre um navegador e um servidor web. Ele é acionado quando o usuário digita um endereço no seu navegador.
ETEC
Nota
Precisa desse "são fundamentais"? Não seria melhor assim: Os principais métodos associados à transferência de dados de formulários são: o método GET e o método POST.
ETEC
Nota
Inserir algum marcador e distanciar um pouco mais do texto acima .
ETEC
Nota
excluir esse "na"
ETEC
Nota
substituir esse ponto final por dois pontos
Page 20: Aula 3 com propostas

POST

O m�etodo POST �e selecionado de forma similar ao GET no formul�ario, atrav�es do atributo method.Faz com que os dados do formul�ario sejam diretamente transmitidos ao endere�co que constar noatributo action. Um script, chamado por action, precisa extrair os dados atrav�es da entradapadr~ao (standart input) para poder obter os dados transmitidos pelo formul�ario. O conte�udo dasvari�aveis do formul�ario n~ao �ca exposto no campo de endere�co do navegador. O que �e consideradouma forma insegura de trocar informa�c~oes na Internet, por exemplo.

Normalmente, as aplica�c~oes web utilizam este m�etodo para trafegar os dados, justamente devidoa esse fragilidade do m�etodo GET.

2.6.2 Query string

Uma maneira alternativa de passar dados de uma p�agina para outra �e atrav�es do pr�oprio campode endere�co do navegador (URL). Esta forma de passar dados entre as p�aginas �e conhecida comoQuerystring. Est�a estruturada da seguinte forma:

http://servidor/pagina.html?var1=dado1&var2=dado2&var3=dado3

Ap�os o sinal de ? inicia-se a sequencia de nomes de vari�aveis seguido do sinal de = e os respectivosvalores das vari�aveis. N~ao pode haver espa�co em branco nesta sequencia. Para valores de strings quecontenham espa�cos em branco �e necess�ario substitu��-los pelo sinal +. Os pares vari�avel/valor s~aoseparados &.

A listagem 2.11 exempli�ca o uso de querystring. Salve o conte�udo em um arquivo PHP de nomeqse.php no diret�orio padr~ao do Apache e digite no campo de endere�co do navegador a seguinte URL.

http://localhost/qse.php?nome=ana&idade=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 inteligencia aos scripts �e necess�ario utilizar declara�c~oes condicionais, ouseja, fazer com que o script desempenhe a�c~oes baseadas no resultado de um teste de compara�c~ao.

Alguns operadores espec���cos para compara�c~ao podem ser utilizados. Na listagem 2.12 s~aomostrados 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 valor */

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

ETEC
Nota
inserir algum marcador antes de POST
ETEC
Nota
O que "faz com que os dados..." é o POST? Se for, coloque essa informação: O POST faz com que os dados do formulário...
ETEC
Realce
ETEC
Nota
colocar entre parênteses : (o que é considerado uma forma insegura...... , por exemplo).
ETEC
Nota
substituir o ponto por dois pontos
ETEC
Nota
substituir o ponto por dois pontos
Page 21: Aula 3 com propostas

16 $result = ($anotherInt === $int);

17 print "resultado e $result";

18 /$

19 ?>

Listagem 2.12: Operadores de compara�c~ao

Tamb�em est~ao dispon��veis no PHP os operadores l�ogicos: AND, OR, XOR e NOT. O uso destesoperadores �e ilustrado na listagem 2.13.

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 l�ogicos em PHP

2.8 Controle de uxo

Em PHP a forma simples de controle de uxo �e atrav�es da declara�c~ao if. Seu argumento �e umaexpress~ao condicional, ou seja, que retorne TRUE ou FLASE. O exemplo a seguir mostra o uso de ifjuntamente com um formul�ario que ir�a realizar o processamento de acordo com a idade do usu�ario.

1 <html>

2 <head></head>

3 <body>

4 <form action="ageist.php" method="post">

5 Digite sua idade: < input name="age" s i ze ="2">

6 </form>

7 </body>

8 </html>

Listagem 2.14: exemplo de if

A listagem 2.15 mostra o script que processa o formul�ario anterior.

1 <html >

2 <head ></head >

3 <body >

4 <?php

5 // retrieve form data

6 $age = $_POST['age'];

7 // verificacao do valor

21

ETEC
Nota
inserir dois pontos
ETEC
Nota
Inserir dois pontos
Page 22: Aula 3 com propostas

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

Al�em da estrutura tradicional if-else o PHP disp~oe ainda de uma estrutura especial, if-elseif-else.As listagens 2.16 e 2.17 exempli�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 < se l ec 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 </ se l ec 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 tamb�em est~ao dispon��veis no PHP. O mais simples deles �e o while. Executaa�c~oes repetidas vezes at�e que a condi�c~ao contida no argumento seja v�alida, TRUE. A condi�c~ao �eavaliada no in��cio de cada intera�c~ao. Dois exemplos simples e que produzem a mesma sa��da s~aomostrados a seguir.

22

ETEC
Nota
colocar o acento
ETEC
Nota
inserir uma vírgula após if-else
ETEC
Nota
SE o if-elseif-else for a estrutura especial, trocar a vírgula depois de especial por dois pontos.
ETEC
Nota
essa parte "executa ações repetidas vezes até que a condição contida no argumento seja válida" tem relação com o while ou TRUE? Não entendi. Melhor reorganizar essa parte do texto.
ETEC
Nota
substituir o ponto final por dois pontos.
Page 23: Aula 3 com propostas

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 �e o for. Seu funcionamento �e semelhante ao homonimo na linguagem C.Comp~oe-se de tres express~oes. A primeira �e a inicializa�c~ao da vari�avel de controle do la�co. A segunda�e a condi�c~ao de parada. Enquanto esta condi�c~ao for v�alida os comandos contidos no for se repetem.A terceira �e o incremento da vari�avel de controle para o pr�oximo ciclo. A listagem 2.19 ilustra autiliza�c~ao do for atrav�es de v�arios exemplos.

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 �e o include, listagem ??. Esta estruturainclui e executa um determinado arquivo dentro de outro. Os arquivos s~ao inclu��dos especi�cando-se seu caminho. Caso o arquivo n~ao seja encontrado um warning �e emitido para o usu�ario. Seespeci�cado apenas o nome o arquivo �e procurado no diret�orio corrente.

Um estrutura similar �e o require. A diferen�ca b�asica �e que em caso de erro (arquivo n~aoencontrado, por exemplo) o script que originou a chamada require n~ao continua, pois um erro fatal�e emitido.

23

ETEC
Nota
colocar uma vírgula depois de "válida"
ETEC
Nota
substituir o ponto final por dois pontos
ETEC
Realce
ETEC
Nota
incluir uma vírgula depois de "encontrado"
ETEC
Nota
inserir uma vírgula depois de "nome"
Page 24: Aula 3 com propostas

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�c~oes

Durante o desenvolvimento de uma determinada aplica�c~ao, ou mesmo dentro de um mesmo script,�e comum haver a necessidade de repeti�c~ao de partes do c�odigo. Esta tarefa �e cansativa e di�cultaa manuten�c~ao do c�odigo de aplica�c~oes mais extensas. As linguagens de programa�c~ao modernas,disponibilizam formas de realizar o reaproveitamento de c�odigo. Uma maneira de fazer isso �eutilizando fun�c~oes.

De maneira simpli�cada, pode-se dizer que uma fun�c~ao �e um subprograma que executa diversasinstru�c~oes sempre que �e chamada. Podem ou n~ao retornar valores.

A cria�c~ao (de�ni�c~ao) de uma fun�c~ao em PHP �e bastante simples conforme mostrado a seguir:

function nomefuncao(arg1, arg2, arg3)

{

comandos

}

O nome da fun�c~ao n~ao pode coincidir com nenhuma palavra reservada do PHP como nomes defun�c~oes j�a existentes. A de�ni�c~ao de fun�c~oes pode estar em qualquer parte do script, mesmo ap�os asua chamada. Abaixo temos um exemplo simples de uma fun�c~ao do usu�ario que mostra o quadradodos n�umeros de 1 a 10.

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 c�odigo 2.9 mostra a de�ni�c~ao e o uso da fun�c~ao quadrado() criada pelo de-senvolvedor. �E interessante observar que n~ao �e passado nenhum valor (argumento) para a fun�c~ao,nenhuma informa�c~ao entre parenteses. Outro detalhe que deve ser observado �e que esta fun�c~ao n~aoretorna valores, ou seja, na chamada da fun�c~ao, simplesmente o c�odigo �e executado e o resultadosubstitu��do no local do script onde a fun�c~ao foi chamada.

Em muitas situa�c~oes �e necess�ario enviar um ou mais valores para uso da fun�c~ao. Assim, umafun�c~ao pode n~ao ter argumentos, como no exemplo anterior, ou ter v�arios argumentos declaradospara uso. Para isso, basta informar quais os argumentos na declara�c~ao da fun�c~ao conforme exemplo2.9.

1 <?php

2 function area($b,$h)

3 {

24

ETEC
Nota
trocar "chamada" por "chamado"
ETEC
Nota
"Podem ou não retornar valores" está relacionado à função. Se for, melhor alterar. Veja: Uma função pode ou não retornar valores.
ETEC
Nota
inserir uma vírgula depois de "simples"
ETEC
Nota
colocar entre parênteses: (como nomes de funções já existentes)
ETEC
Nota
inserir uma vírgula depois de "abaixo"
ETEC
Nota
Inserir um "ou seja". Veja: É interessante observar que não é passado nenhum valor (argumento) para a função, ou seja, nenhuma informação entre parênteses.
ETEC
Nota
inserir uma vírgula depois de "função"
ETEC
Nota
substituir o ponto por dois pontos.
Page 25: Aula 3 com propostas

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�c~ao area() recebe dois argumentos, $b e $h, que representam a base e a altura de umretangulo. A fun�c~ao recebe esses argumentos e os utiliza para calcular a �area do retangulo que �e oobjetivo da fun�c~ao. Para criar fun�c~oes que retornem valores, basta utilizar a fun�c~ao return, conformemostrado 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

ETEC
Nota
retirar esse espaçamento. Está muito grande.
ETEC
Nota
espaçamento muito grande
Page 26: Aula 3 com propostas

2.10 Exerc��cios

1. Qual o m�etodo HTTP recomendado para utiliza�c~ao em aplica�c~oes web? Justi�que.

2. Execute os c�odigos mostrados no cap��tulo 2. Releia as explica�c~oes dadas e tente entender ofuncionamento dos scripts.

3. Escreva um formul�ario que contenha dois campos: Nota 1 e Nota 2. Acrescente um bot~ao deenvio. Aponte o formulu�ario para enviar os dados para media.php, mostrado a seguir. Executeo 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 exerc��cio anterior responda:

� A vari�avel $media �e do tipo inteiro (int) ou ponto utuante ( oat)?

� Como modi�car exibi�c~ao do valor da m�edia para apenas uma casa decimal?

� Fa�ca as adequa�c~oes necess�arias para utilizar o m�etodo POST.

5. Para calcular a �area de um retangulo basta multiplicar o valor da base (b) pela altura (h). Crieum arquivo em HTML que contenha um formul�ario que solicita ao usu�ario os valores de basee altura de um retangulo e um bot~ao de envio. Em seguida, escreva um script para calcular a�area do retangulo.(Lembrete: O formul�ario deve apontar para o script que realizar�a o processamento)

6. Repita o exerc��cio anterior acrescentando o c�alculo do per��metro do retangulo, ou seja, a somada medida de todos os lados.

7. A f�ormula para calcular a �area de uma circunferencia �e: A = � � r2. Elaborar uma aplica�c~ao(formul�ario e script) que solicite ao usu�ario o valor do raio de uma circunferencia e exiba ovalor da �area.

8. Dado o c�odigo em PHP a seguir, fa�ca o que se pede:

� Pesquise o que fazem as fun�c~oes substr() e strlen();

� Execute o script e veri�que a resposta apresentada;

� Refa�ca o script utilizando um while ao inv�es do for;

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

ETEC
Nota
inserir uma vírgula depois de "anterior"
ETEC
Nota
colocar o artigo: como modificar a exibição do ......?
ETEC
Nota
que solicite ao us....
ETEC
Nota
substituir "elaborar" por "elabore"
Page 27: Aula 3 com propostas

9. Modi�que o c�odigo mostrado na listagem 2.11 de forma que caso n~ao sejam passados os valoresdas vari�aveis nome e idade seja exibida uma mensagem explicativa ao usu�ario. Caso contr�ario,a mensagem informando o nome e a idade �e mostrada.

10. Fa�ca uma pesquisa para determinar a utilidade da fun�c~ao phpinfo(). Em seguida, escreva umscript que utilize esta fun�c~ao, execute-o e veja o resultado.

11. Na quest~ao anterior, o que acontece quando o valor passado em nome �e "ana silva"ao inv�es de"ana"? Como evitar o truncamento dos dados ao utilizar query strings?

12. Criar um script que exiba informa�c~oes sobre a m�aquina em que est�a sendo executado o sistema,como nome do servidor, endere�co IP, a porta e o qual o servidor web.(Sugest~ao: Pesquise sobre o container $ SERVER, semelhante a $ GET e $ POST)

27

ETEC
Nota
inseri uma vírgula depois de "idade"
ETEC
Nota
aspas ao contrário
ETEC
Nota
substituir "criar " por "crie"
ETEC
Nota
excluir esse "o"
Page 28: Aula 3 com propostas

28

ETEC
Nota
Retirar essa página em branco
Page 29: Aula 3 com propostas

Cap��tulo 3

Coisas Importantes em PHP

Educai as crian�cas, para que n~ao seja necess�ario punir os homens.

Pit�agoras

No cap��tulo anterior, foi feita uma apresenta�c~ao geral sobre a linguagem PHP e sua dinamicab�asica de funcionamento atrav�es do uso de formul�arios e dos arrays $_GET e $_POST, tamb�em con-hecidos como arrays superglobais. Por�em, o uso dos valores contidos nesses arrays existe apenaspara o script na qual os dados foram diretamente repassados. Na maioria das vezes os valores dasvari�aveis devem permanecer existindo durante a execu�c~ao de v�arios scripts. �E o caso de aplica�c~oesacess��veis apenas a certos usu�arios, ou seja, que necessitam de autentica�c~ao, por exemplo. Os cookiespodem ser utilizados para esta tarefa. O que �e chamado de persistencia dos dados. O PHP ofereceainda o recurso de sess~oes que �e uma alternativa mais moderna do que os cookies.

Neste cap��tulo, ser�a apresentado o uso de ambas as t�ecnicas. Na �ultima parte do cap��tulo ser�aabordado ainda o uso de bancos de dados como ferramenta auxiliar, uma vez que a persistencia dedados tamb�em �e uma caracter��stica fundamental em aplica�c~oes web em geral.

3.1 Por que cookies ou sess~oes?

Quando se acessa uma p�agina web, a comunica�c~ao entre o navegador e o servidor web �e feita atrav�es doprotocolo HTTP (Hypertext Transfer Protocol). A quest~ao �e que o HTTP n~ao armazena informa�c~oesde estado, ou seja, os dados enviados para atender uma requisi�c~ao do cliente n~ao s~ao mantidos quandouma nova requisi�c~ao �e feita, inviabilizando o armazenamento de informa�c~oes enviadas anteriormente.

Por exemplo, se dois usu�arios acessam a p�agina teste.html n~ao �e poss��vel para o servidor deter-minar qual dos usu�arios realizou o acesso. As requisi�c~oes s~ao tratadas independentemente. Sim-plesmente, o Apache atende as duas requisi�c~oes. Assim, mecanismos como cookies e sess~oes s~aofundamentais para o desenvolvimento de aplica�c~oes como com�ercio eletronico, exibi�c~ao de an�unciose personaliza�c~ao de p�aginas em geral. S~ao as chamadas p�aginas dinamicas. Diferentemente das p�agi-nas est�aticas que utilizam puramente o HTML, ou seja, o mesmo conte�udo �e sempre exibido paraqualquer usu�ario que requisite a p�agina.

3.2 Cookies

Cookies s~ao apenas arquivos texto armazenados localmente na m�aquina do cliente web para posteri-ormente serem recuperados pelo servidor. �E composto por um nome para servir como referencia e umvalor associado a esse nome. Qualquer aplica�c~ao que necessite compartilhar dados entre diferentesp�aginas pode ser implementada utilizando os cookies.

Um exemplo muito simples do uso de cookies �e a contagem de acessos. Supondo que um usu�arioacessa um site pela primeira vez e que um cookie �e de�nido com o nome numero_acessos e com valor

29

ETEC
Nota
Professor, não seria melhor alterar o título dessa aula para ficar mais específica? Coisas importantes é meio vago.
ETEC
Nota
Professor, qual a relação dessa citação com o assunto da aula? Não seria melhor substituir por uma citação referente à linguagem PHP ou à tecnologia web?
ETEC
Nota
substituir "sobre" por "da"
ETEC
Nota
substituir "na qual" por "no qual", pois a referência é "o script"
ETEC
Nota
inserir uma vírgula depois de "na maioria das vezes"
ETEC
Nota
"o que é chamado de persistência dos dados" é a tarefa? Se for, reorganize da seguinte maneira: Os cookies podem ser utilizados para esta tarefa, também conhecida como persistência dos dados.
ETEC
Nota
Cookies é singular ou plural? Se for singular, permanecer como está. Caso seja plural, altere da seguinte forma: São compostos por um nome para ...
ETEC
Nota
acento: referência
ETEC
Nota
O cookie definido com o nome numero_acessos é do site? Se for, seria melhor assim: Supondo que um usuário acesse um site pela primeira vez e que este site tenha um cookie definido com o nome numero_acessos e ....
Page 30: Aula 3 com propostas

inicial 1. No pr�oximo acesso, o valor �e incrementado e assim sucessivamente. O servidor resgata essevalor na m�aquina do cliente e pode utilizar a informa�c~ao para exibir algo como:

Este �e seu acesso n�umero 2

Outro exemplo que pode ser citado �e quando s~ao feitas buscas em um site. O termo pesquisadopode ser armazenado em um cookie de forma que em acessos futuros o termo pesquisado j�a sejapreenchido no campo do formul�ario.

Os cookies tamb�em possuem uma caracter��stica interessante chamada de validade, ou seja, otempo que permanecer�a armazenado na m�aquina do usu�ario. A validade de um cookie pode chegara dias ou pode ser con�gurado para ter tempo de vida de apenas alguns minutos.

Existe uma discuss~ao em torno do uso de cookies com rela�c~ao a privacidade. Isso ocorre porquemuitas vezes o usu�ario pode estar tendo informa�c~oes gravadas em cookies e estas informa�c~oes seremutilizadas por empresas para rastrear os sites pela qual o usu�ario navegou, por exemplo. Por isso, osnavegadores permitem ao usu�ario habilitar ou desabilitar o armazenamento de cookies na m�aquina.Entretanto, ao desabilitar este recurso di�cilmente pode-se obter os mesmos recursos disponibilizadospelo site. Provalmente, n~ao ser�a poss��vel realizar o login ou registrar a cidade em que o usu�ario seencontra e coisas do tipo.

3.3 Enviando cookies

O PHP disponibiliza a fun�c~ao setcookie() para enviar cookies para a m�aquina do usu�ario. Estafun�c~ao possui dupla funcionalidade, tanto serve para de�nir como para excluir um cookie. A sintaxeb�asica da fun�c~ao �e a seguinte:

bool setcookie(string nome [, string valor [,int validade [, string caminho [,

string dom��nio [, int seguro]]]]])

Parametro Descri�c~ao

nome Indica o nome que ser�a usado como referenciavalor Valor atribu��do ao cookie. Se vazio o cookie �e exclu��dovalidade De�ne o tempo de validade do cookie no formato de tempo UNIXcaminho Caminho no servidor para o qual o cookie estar�a dispon��veldom��nio Dom��nio para o qual o cookie est�a dispon��velseguro Valor (0 ou 1) que indica se o cookie �e seguroPara de�nir um cookie, �e necess�ario atribuir um valor. Caso contr�ario, o cookie �e exclu��do. Assim,

a de�ni�c~ao de um cookie �e feita assim:

setcookie ("nome", "Ana")

E a exclus~ao dessa forma:

setcookie ("nome").

Para criar um cookie v�alido por dois dias basta com aux��lio de time(),

setcookie ("nome", "Ana",time()+172800).

O valor de 172800 �e equivalente a quantidade de segundos em 48 horas. Acrescentadando esse valorao tempo atual retornado por time() temos a validade do cookie de�nida para o per��odo de 2 dias.

Um detalhe importante quando se est�a utilizando cookies �e que seu envio deve ocorrer antes quequalquer tag HTML. Caso o cookie seja enviado ap�os as tags, uma mensagem de erro �e exibidainformando que a fun�c~ao setcookie() foi chamada ap�os o envio dos cabe�ccalhos. Assim, o valorn~ao �e armazenado nem o cookie �e criado.

30

ETEC
Nota
prof. como você começa com "supondo" falta uma informação depois de "valor inicial 1". Veja: Supondo isso tudo que você disse, o que acontece (é essa informação que não está constando)
ETEC
Nota
o tempo que o que ficará armazenado na máquina? Seria uma informação? Se for: ..., o tempo que uma informação permanecerá armazenada na máquina do usuário.
ETEC
Nota
professor, essa parte do texto poderia ser reformulada de forma que a informação fique mais clara. Veja: Existe uma discussão em relação à falta de privacidade no uso de cookies. Isso ocorre....
ETEC
Nota
inserir uma vírgula depois de "recurso"
ETEC
Nota
depois de "funcionalidade", trocar a vírgula por dois pontos. Veja: ..... funcionalidade: definir e excluir um cookie.
ETEC
Nota
dar um espaçamento, pois está muito junta da tabela
ETEC
Nota
para evitar repetição, substituir esse último "assim" por "da seguinte maneira":
ETEC
Nota
Não seria melhor : Enquanto a exclusão deve ser realizada assim:
ETEC
Nota
inserir uma vírgula depois de "dias"
ETEC
Nota
basta o quê? falta alguma informação
ETEC
Nota
inserir uma vírgula depois do parênteses ()
ETEC
Nota
"seu envio deve ocorrer antes de qualquer tag HTML"
Page 31: Aula 3 com propostas

3.4 Mais um superglobal

A fun�c~ao setcookie() realiza o tarefa de enviar um cookie para o computador do usu�ario. Agora,�e preciso saber como utilizar os valores armazenados. �E importante lembrar que os cookies n~aopoder~ao ser utilizados na mesma p�agina que os criou. Apenas na pr�oxima requisi�c~ao �e que ser�aposs��vel utiliz�a-los.

A maneira recomendada de acessar os cookies �e atrav�es do array superglobal $_COOKIE, junta-mente com a chave associativa desse array. Por exemplo, se o cookie chamado "nome"�e de�nido,

setcookie ("nome", "Ana");

Na pr�oxima requisi�c~ao de p�agina, o valor poderia ser acessado atribuindo-se o valor do cookiepara uma vari�avel, como mostrado a seguir.

$var = $_COOKIE["nome"];

Outra maneira de acessar o valor de um cookie �e atrav�es da ativa�c~ao diretiva register globals noarquivo de con�gura�c~ao do PHP (php.ini). Nesse caso, o pr�oprio nome do cookie �e convertido emuma vari�avel. No exemplo anterior, o valor do cookie estaria acess��vel atrav�es da vari�avel $nome.

Apesar da facilidade, esta pr�atica n~ao �e mais recomendada pelos desenvolvedores desde a vers~ao4.2.0 do PHP. O uso desta con�gura�c~ao permite que c�odigos inseguros sejam interpretados pelo PHP.O que obviamente n~ao �e desej�avel. Em Usando a diretiva Register Globals �e mostrado os riscos queo uso desta diretiva trazem. Tanto que a partir da vers~ao 6.0.0 ela ser�a totalmente abolida.

3.5 Autenticando

Uma utiliza�c~ao bastante comum dos cookies �e a autentica�c~ao de usu�arios. A autentica�c~ao �e umamaneira de se certi�car de que somente usu�arios autorizados por senha podem acessar determinadas�areas de um site ou mesmo todo o site. A autentica�c~ao com cookies pode ser dividida em tres etapas:

� P�agina de login para receber os dados do usu�ario, veri�car o cadastro e criar os cookies quepermitem a a utiliza�c~ao da p�agina;

� Rotina de valida�c~ao para ser utilizada nas p�aginas restritas;

� P�agina de logout para excluir os cookies criados inicialmente;

Para realizar a autentica�c~ao dos usu�arios, �e necess�ario ainda uma ferramenta auxiliar para ar-mazenamento dos dados dos usu�arios que ter~ao acesso ao site tais como nome, senha, email, endere�coe qualquer outra informa�c~ao que se queira armazenar. Para isso, o mais recomendado �e a utiliza�c~aode um servidor de banco de dados. Para exempli�car, utilizaremos o MySQL, bastante popular eadequado para as necessidades desta disciplina.

3.5.1 Banco de dados

O primeiro passo a ser dado �e a cria�c~ao das tabelas que ser~ao utilizadas. Para o caso da autentica�c~aodo usu�ario apenas uma tabela �e necess�aria. Deve-se armazenar no m��nimo o nome do usu�ario e asenha. Demais dados s~ao opcionais e dependem da complexidade e do n��vel de seguran�ca exigidopela aplica�c~ao. A listagem 3.1 exibe o arquivo em liguagem SQL (Structured Query Language) quecria a tabela usuarios e o comando insert para inserir um registro na tabela.

1 CREATE TABLE usuarios

2 (

3 username varchar(10) NOT NULL,

4 senha varchar(10) NOT NULL,

5 nome varchar(80) NOT NULL,

6 email varchar(80) NOT NULL,

31

ETEC
Nota
substituir "o" por "a"
ETEC
Nota
"na mesma página que os criou"? os cookies são criados pelas páginas?
ETEC
Nota
substituir "podem" por "possam"
ETEC
Nota
repetição de "a"
ETEC
Nota
substituir dois pontos por ponto final
ETEC
Nota
inserir uma vírgula depois de site.
ETEC
Nota
O primeiro passo a ser dado para que? É preciso contextualizar.
ETEC
Nota
Inserir o artigo: Os demais dados são opcionais...
ETEC
Nota
inserir acento de usuários
ETEC
Nota
inserir um espaço entre o texto e a tabela
Page 32: Aula 3 com propostas

7 primary key(username)

8 );

9 INSERT INTO usuarios values ('ana','teste ','Ana Silva','[email protected]');

Listagem 3.1: usuarios.sql

Para facilitar o entendimento do c�odigo, a listagem 3.4 mostra um arquivo de include (arquivocom c�odigo em PHP para ser anexado em outras p�aginas) para realizar a conex~ao com o servidor debanco de dados MySQL. Sempre que for realizada algum acesso ao banco de dados, ser�a necess�ariochamar este include (conecta_mysql.inc.

1 <?php

2 // configuracoes do banco de dados

3 $servidor = "localhost";

4 $usuario_bd = "ana";

5 $senha_bd = "123456";

6 $banco = "bd";

7 $con = mysql_connect($servidor , $usuario_bd , $senha_bd );

8 mysql_select_db ($banco );

9 //$

10 ?>

Listagem 3.2: conecta mysql.sql

Com isso, a parte do banco de dados est�a pronta para ser utilizada.

3.5.2 Login

Passando a parte da autentica�c~ao propriamente dita �e necess�ario criar um formul�ario inicial que ser�aexibido ao usu�ario solicitando seu username e senha. As informa�c~oes s~ao veri�cadas e no caso deestarem corretas os respectivos cookies s~ao criados.

Nessa etapa, temos a cria�c~ao de apenas dois arquivos: login.html e login.php. O primeiro cont�emo formul�ario inicial que ser�a exibido para o usu�ario e o segundo realiza a l�ogica da autentica�c~ao.

1 <html >

2 <body >

3 <form method="POST" action="login.php">

4 <p align="center">Nome de usuario: <input type="text" name="username" size="10">

5 <p align="center">Senha: <input type="password" name="senha" size="10">

6 <p align="center"><input type="submit" value="Enviar" name="enviar">

7 </form >

8 </body >

9 </html >

Listagem 3.3: conecta mysql.sql

1 <?php

2 // obtem os valores digitados

3 $username = $_POST["username"];

4 $senha = $_POST["senha"];

5 // acesso ao banco de dados

6 include "conecta_mysql.inc";

7 $resultado = mysql_query("SELECT * FROM usuarios where username='$username '");

8 $linhas = mysql_num_rows ($resultado );

9 if($linhas ==0) // testa se a consulta retornou algum registro

10 {

11 echo "<html ><body >";

12 echo "<p align =\" center\">Usuario nao encontrado !</p>";

13 echo "<p align =\" center\"><a href =\" login.html\">Voltar </a></p>";

14 echo "</body ></html >";

15 }

16 else

17 {

18 if ($senha != mysql_result($resultado , 0, "senha")) // confere senha

32

ETEC
Nota
substituir realizada por realizado
ETEC
Nota
inserir vírgulas. Veja: ...verificadas e, no caso de estarem corretas, os respectivos...
Page 33: Aula 3 com propostas

19 {

20 echo "<html ><body >";

21 echo "<p align =\" center\">A senha esta incorreta!</p>";

22 echo "<p align =\" center\"><a href =\" login.html\">Voltar </a></p>";

23 echo "</body ></html >";

24 }

25 else // usuario e senha corretos. Vamos criar os cookies

26 {

27 setcookie("nome_usuario", $username );

28 setcookie("senha_usuario", $senha );

29 // direciona para a pagina inicial dos usuarios cadastrados

30 header ("Location: index.php");

31 }

32 }

33 mysql_close($con);

34 ?>

Listagem 3.4: login.php

3.5.3 Valida�c~ao

Depois de efetuado procedimento de login/autentica�c~ao do usu�ario, os cookies j�a encontram-se ar-mazenados na m�aquina do cliente e dispon��veis para uso. A cada nova requisi�c~ao de p�agina �enecess�ario fazer a valida�c~ao, ou seja, veri�car se os cookies ainda s~ao v�alidos e se as informa�c~oesdo usu�ario ainda est~ao corretas. Isso deve ser feito para evitar que um usu�ario mal intencionado eque n~ao tem acesso a determinadas �areas do site digite o endere�co diretamente no navegador e tenhaacesso a p�agina. Para isso, basta criar um include valida_cookies.inc que deve ser chamado pelasp�aginas protegidas.

1 <?php

2 if(IsSet($_COOKIE["nome_usuario"]))

3 $nome_usuario = $_COOKIE["nome_usuario"];

4 if(IsSet($_COOKIE["senha_usuario"]))

5 $senha_usuario = $_COOKIE["senha_usuario"];

6

7 if(!( empty($nome_usuario) OR empty($senha_usuario )))

8 {

9 include "conecta_mysql.inc";

10 $resultado = mysql_query("SELECT * FROM usuarios WHERE username='$nome_usuario '");

11 if(mysql_num_rows($resultado )==1)

12 {

13 if($senha_usuario != mysql_result($resultado ,0,"senha"))

14 {

15 setcookie("nome_usuario");

16 setcookie("senha_usuario");

17 echo "Voce nao efetuou o LOGIN!";

18 exit;

19 }

20 }

21 else

22 {

23 setcookie("nome_usuario");

24 setcookie("senha_usuario");

25 echo "Voce nao efetuou o LOGIN!";

26 exit;

27 }

28 }

29 else

30 {

31 echo "Voce nao efetuou o LOGIN!";

32 exit;

33 }

34 mysql_close($con);

33

Page 34: Aula 3 com propostas

35 ?>

Listagem 3.5: valida_cookies.inc, style=php

Observe que nas primeiras linhas da listagem 3.5 a fun�c~ao isset() testa a existencia dos cookiesantes de obter seus valores. Assim, evita-se a exibi�c~ao de mensagens de erro ao tentar acessarelementos que n~ao existem. Caso os cookies n~ao existam, uma mensagem de erro �e exibida (linha31) e o script �e �nalizado. Se o nome do usu�ario ou senha n~ao forem vazios (linha 7) �e realizada umabusca no banco de dados pelo usu�ario especi�cado e em seguida a senha �e comparada. Caso estejaerrada os cookies s~ao destru��dos, caso contr�ario a conex~ao �e encerrada e a p�agina est�a validada.

3.5.4 Logout

O �ultimo passo consiste em construir um script para logout. �E importante quando o usu�ario continuanavegando por outros sites, mas n~ao mais necessita utilizar o site que estava logado. Fundamentalem m�aquinas que s~ao utilizadas por v�arios usu�arios. A principal a�c~ao deste script �e destruir oscookies criados durante o login e direcionar o usu�ario para a p�agina de login novamente. A listagem3.6 exempli�ca estas a�c~oes. Basicamente s~ao utilizadas as fun�c~oes setcookie() que serve tantopara criar como para destruir cookies e a fun�c~ao header() para direcionar o usu�ario para a p�aginalogin.html.

1 <?php

2 setcookie("nome_usuario");

3 setcookie("senha_usuario");

4 header ("Location: login.html");

5 ?>

Listagem 3.6: logout.php

3.6 Sess~oes

Uma sess~ao �e o tempo na qual o usu�ario permanece navegando em um determinado site. Ao iniciara navega�c~ao, uma sess~ao �e aberta e diversas vari�aveis podem ser registradas e acessadas durante otempo de dura�c~ao da sess~ao, ou seja, enquanto a sess~ao estiver aberta.

Da mesma forma que os cookies, as se�c~oes permitem que os dados armazenados nas vari�aveissejam compartilhados entre as p�aginas. Por�em, existem algumas diferen�cas entre cookies e sess~oes.Os primeiros armazenam dados na pr�opria m�aquina do usu�ario podendo continuar existindo mesmoquando a navega�c~ao �e �nalizada. J�a as vari�aveis de sess~ao s~ao armazenadas no servidor e s~ao de-stru��das ao sair do site ou quando o navegador �e fechado.

A primeira informa�c~ao importante relacionada a uma sess~ao �e justamente o seu id utilizado comoidenti�cador da sess~ao. Para utilizar os dados armazenados em uma sess~ao �e necess�ario conheceresse n�umero. O compartilhamento deste valor pode ser feito atrav�es de cookies ou atrav�es da pr�opriaURL.

O primeiro m�etodo s�o poder�a ser utilizado se os cookies estiverem habilitados na m�aquina. Comonem sempre isto acontece, o segundo m�etodo pode ser utilizado.

O segundo m�etodo �e mais so�sticado. A partir da vers~ao 4.2.0 do PHP est�a habilitada a op�c~aoenable-trans-sid que permite que a identi�ca�c~ao da sess~ao seja enviada transparentemente paraas p�aginas, n~ao sendo necess�ario o uso de query strings.

A principal fun�c~ao utilizada para o uso de sess~oes em PHP �e session_start(). Serve tanto paracriar uma nova sess~ao quanto para ter acesso �as vari�aveis de uma sess~ao existente.

3.6.1 Registrando vari�aveis

Registrar uma vari�avel em uma sess~ao signi�ca disponibilizar esta vari�avel para qualquer p�aginaenquanto a sess~ao for v�alida. A maneira mais segura de registrar vari�aveis �e utilizando o arraysuperglobal $_SESSION.

34

ETEC
Nota
Para evitar repetição melhor assim: ....ao tentar acessar elementos que não existem. Caso seja verificada a inexistência dos cookies, uma mensagem de erro é exibida...
ETEC
Nota
Reformular: Se a senha estiver errada, os cookies são destruídos. Caso contrário, a conexão....
ETEC
Nota
inserir uma vírgula depois de linha 7
ETEC
Nota
Não faz sentido. Veja: É importante quando o usuário continua navegando por outros sites, mas não mais necessita utilizar o site que estava logado. O que é importante?
ETEC
Nota
Essa parte está solta"Fundamental em máquinas que são utilizadas por vários usuários".
ETEC
Nota
Seria melhor assim: Uma sessão é o tempo que o usuário permanece navegando....
ETEC
Nota
reorganizar essa parte do texto de forma que se evite tanta repetição do termo "sessão".
ETEC
Nota
não devera ser sessões e não seções?
ETEC
Nota
a sílaba deve ser separada depois do "s"
ETEC
Nota
o primeiro método está relacionado ao uso de cookies e o segundo método à URL? Se for, substituir esse "segundo método" por "O uso da URL" é mais sofisticado.
ETEC
Nota
colocar entre parênteses: ....(enquanto a sessão for válida)
Page 35: Aula 3 com propostas

Na listagem 3.7 �e mostrado um exemplo de como realizar a inicializa�c~ao e o registro de algumasvari�aveis. J�a na listagem 3.8 os dados registrados na listagem anterior s~ao lidos. A primeira fun�c~aoutilizada em ambas as p�aginas �e session_start(). Depois, as vari�aveis de sess~ao nome, sobrenomee idade s~ao inicializadas e um link para a p�agina seguinte �e mostrado para o usu�ario. Na p�aginaseguinte, os dados s~ao restaurados com session_start() e os valores das vari�aveis s~ao acessadoscom o array $_SESSION.

1 <?php

2 session_start ();

3 echo 'Escrevendo os dados da sessao ';

4 $_SESSION['nome'] = 'Ana';

5 $_SESSION['sobrenome '] = 'Maria ';

6 $_SESSION['idade'] = 23;

7

8 printf("echo '<br><a href="readses.php?'. SID .'">Nova pagina </a>';

9 ?>

Listagem 3.7: writes.php

1 <?php

2 session_start ();

3 $nome = $_SESSION['nome'];

4 $sobrenome = $_SESSION['sobrenome '];

5 $idade = $_SESSION['idade'];

6

7 printf("Ola sou %s %s e tenho %d anos de idade <br>",$nome ,$sobrenome ,$idade );

8 ?>

Listagem 3.8: reads.php

Quando uma vari�avel n~ao �e mais �util, pode-se elimin�a-la com a fun�c~ao unset($_SESSION['nome']).Assim, a vari�avel de sess~ao especi�cada deixa de existir.

3.7 Bancos de Dados

A grande maioria das aplica�c~oes necessita de persistencia dos dados, ou seja, mesmo depois que osistema �e desligado os dados devem permanecer at�e que o sistema seja religado. Entretanto, sabe-seque deois que um processo �e �nalizado, todas as vari�aveis e demais informa�c~oes relacionadas a eles~ao removidas da mem�oria. Da�� a necessidade de se utilizar arquivos para garantir a persistencia dosdados.

No caso de aplica�c~oes que compartilham informa�c~oes, apenas o uso de arquivos certamente acar-retar�a em inconsistencia dos dados. Da�� a necessidade de utilizar-se de uma ferramenta auxiliar:um SGBD (Sistema Gerenciador de Banco de Dados). Trata-se de um conjunto de aplicativos re-spons�aveis por gerenciar uma base de dados. O principal objetivo �e livrar a aplica�c~ao cliente aresponsabilidade de gerenciar o acesso, manipula�c~ao e organiza�c~ao dos dados. O SGBD disponibilizauma interface para que os seus clientes possam incluir, alterar ou consultar dados.

Exitem diversos gernciadores de bancos de dados, alguns mais famosos e voltados para grandesvolumes de dados como o ORACLE. H�a ainda alternativas mais populares para aplica�c~oes menorescomo SQL Server, PostgreSQL e MySQL. Praticamente todos os gerenciadores de bancos de dadoscitados, possuem vers~oes para a web ou foram criados especi�camente para esta �nalidade, como oMySQL.

As informa�c~oes em uma base de dados est�a distrib��da em tabelas. Cada tabela possui pelo qualela �e referenciada e diversos campos (colunas). Na listagem 3.1 temos os comandos da linguagemSQL que criam a tabela de nome usuarios com quatro campos (username, senha, nome e email).Cada campo armazenar�a as informa�c~oes associadas ao nome do campo.

Uma base pode conter diversas tabelas para armazenar os dados. De acordo com o tamanho e acomplexidade da aplica�c~ao, uma base de dados pode conter outros elementos mais so�sticados quefacilitam o uso e melhoram o desempenho. Para a grande maioria das aplica�c~oes, gerenciadores comoo PostgreSQL e o MySQL atendem perfeitamente �as necessidades.

35

ETEC
Nota
inserir uma vírgula depois de 3.8
ETEC
Nota
Esse já é o título de um dos subitens de 3.5, por isso, é melhor renomear esse tópico
ETEC
Nota
inserir uma vírgula depois de "desligado"
ETEC
Nota
depois
ETEC
Nota
inserir uma vírgula depois de "que"
ETEC
Nota
para evitar repetição, vamos substituir "daí a necessidade". Veja: ....em inconsistência dos dados, por isso, é necessário utilizar uma ferramenta auxiliar: um .....
ETEC
Realce
ETEC
Realce
ETEC
Realce
ETEC
Realce
ETEC
Nota
a divisão da sílaba deve ser feita depois do "s"
ETEC
Nota
...cliente da
ETEC
Nota
faltou o "e" em gerenciadores
ETEC
Nota
retirar essa vírgula
ETEC
Nota
substituir essa vírgula por ponto final e iniciar a palavra seguinte com letra maiúscula.
ETEC
Nota
Veja: As informações em uma base de dados estão distribuídas em tabelas. ...
ETEC
Nota
possui o quê?
Page 36: Aula 3 com propostas

3.7.1 Criando Tabelas

Antes de qualquer a�c~ao ser realizada �e necess�ario criar uma base de dados e nesta base de dados criaras tabelas. Cada campo de uma tabela deve receber um atributo informando o tipo de dado que ocampo vai armazenar. Considerando o MySQL existem v�arios tipos de dados dispon��veis. Na tabela3.7.1, s~ao mostrados alguns deles. Para uma lista completa dos tipos de dados, basta consultar omanual do usu�ario.

Tabela 3.1: Alguns tipos de dados dispon��veis no MySQLTipo Descri�c~ao

TINYINT Inteiros de 1 byteSMALLINT Inteiros de 2 bytesMEDIUMINT Inteiros de 3 bytesINT Inteiros de 4 bytesVARCHAR Texto de at�e 256 caracteresDATE Datas em formatos diversosFLOAT N�umeros em ponto utuante de at�e de 4 bytes

3.7.2 Tabela de Contatos

A tabela 3.7.2 mostra uma sugest~ao dos campos que deve possuir uma de nome Contatos paraarmazeanar informa�c~oes.

Tabela 3.2: Tipos de dados usados na tabela contatosNome do Campo Tipo Tamanho Descri�c~ao

id INT 6 Identi�cador �unico para cada registronome VARCHAR 15 Nome do contatofone VARCHAR 10 Telefoneemail VARCHAR 25 Emailnascimento DATE Data de aniversario

Para exempli�car a cria�c~ao de tabelas, a seguir, �e mostrado um exemplo utilizando a linguagemSQL (Structured Query Language) dos comandos necess�arios para cria�c~ao da mesma segundo oscampos sugeridos na tabela 3.7.1. Na linha 1 �e utilizado o comando CREATE TABLE que informa aoMySQL que a query a seguir �e para cria�c~ao de uma tabela de nome contatos. Entre parenteses temosa lista dos campos que ir~ao compor a tabela, seguidos dos respectivos tipos de dados. �E interessanteobservar que no campo id (linha 3) al�em da diretiva NOT NULL, que informa que n~ao ser~ao aceitosregistros com esse campo sem um valor, temos a diretiva AUTO_INCREMENT, que automaticamenteincrementa o valor deste campo para novos registros. Na linha 8, �e informado ainda que chaveprim�aria da tabela, ou seja, o campo de valor �unico que �e utilizado pelo MySQL para otimizar atabela.

1 CREATE TABLE contatos

2 (

3 id int (6) NOT NULL AUTO_INCREMENT ,

4 nome VARCHAR(15) NOT NULL,

5 fone VARCHAR(10) NOT NULL,

6 email VARCHAR(25) NOT NULL,

7 nascimento DATE NOT NULL,

8 PRIMARY KEY id,

9 );

Listagem 3.9: contatos.sql

36

ETEC
Realce
ETEC
Nota
essa parte está sem sentido e descontextulizada
ETEC
Realce
ETEC
Nota
??????? Não entendi nada da frase
ETEC
Nota
Que tal assim: Para entendermos melhor a criação de tabelas, vejamos a listagem 3.9: Inserir a tabela Depois, você comenta o que é visto na tabela. Da seguinte maneira: Como vemos na listagem, o comando CREATE TABLE (linha 1) informa ....
ETEC
Nota
Não entendi. "Na linha 8 é informado ainda que chave primária da tabela"?
Page 37: Aula 3 com propostas

3.8 Exerc��cios

1. Quais as principais diferen�cas entre cookies e sess~oes? S~ao funcionalidades equivalentes?

2. Qual a informa�c~ao repassada pelos arrays conhecidos como super globais mais utilizados pelalinguagem PHP?

� $_SERVER

� $_GET

� $_POST

� $_SESSION

� $_ENV

3. O que seria exibido como sa��da do fragmento de c�odigo 3.10? Modi�que o c�odigo para obter omesmo resultado utilizando o array superglobal $_ENV ao inv�es da fun�c~ao getenv().

1 <?php

2 // exemplo de uso da funcao getenv () do PHP

3 $usuario = getenv('USER');

4 $host = getenv('HOSTNAME ');

5 $ip = getenv('REMOTE_ADDR ');

6 printf("Bom dia %s",$usuario );

7 printf("Voce esta conectado ao host %s de IP %s",$host ,$ip);

8 ?>

Listagem 3.10: Exemplo de uso da fun�c~ao getenv()

4. Dado o fragmento de c�odigo a seguir, explique o que �e executado em cada linha de c�odigomostrada?.

1 <?php

2 // inicia a sessao

3 session_start ();

4 // atribui valor as variaveis de sessao

5 $_SESSION['cor']='azul';

6 $_SESSION['tamanho ']='medio';

7 $_SESSION['formato ']='circular ';

8 print "Feito";

9 //$

10 ?>

Listagem 3.11: Exemplo de uso de sess~oes

5. Supondo que o c�odigo da listagem 3.11 �e executado corretamente, o que seria exibido ap�os aexecu�c~ao do seguinte c�odigo?

1 <?php

2 // inicia a sessao

3 session_start ();

4 // exibe as variaveis da sessao , a atribuicao e feita na pagina anterior

5 echo "A cor e ".$_SESSION['cor']."<br>";

6 echo "O tamanho e ".$_SESSION['tamanho ']."<br>";

7 echo "O formato e ".$_SESSION['formato ']."<br>";

8 /$

9 ?>

Listagem 3.12: Continua�c~ao de exemplo de uso de sess~oes

6. Retirando as linhas 5, 6 e 7 da listagem 3.12 e acrescentando print_r($_SESSION); o que �eexibido como sa��da?

37

ETEC
Realce
ETEC
Nota
retirar a interrogação
ETEC
Nota
Não seria melhor colocar na ordem direta? Veja: O que é exibido como saída caso sejam retiradas as linhas 5,6 e 7 da listagem 3.12 e acrescentado o print_r($_SESSION)?
Page 38: Aula 3 com propostas

7. Como alterar os valores das vari�aveis de sess~ao da listagem 3.12 (cor, tamanho e formato) paravermelho, grande e reatangular? Escreva as linhas de c�odigo.

8. Explique em detalhes qual a rela�c~ao entre as fun�c~oes unset() e destroy().

9. O script a seguir exempli�ca como realizar a entrada de dados na tabela Contatos, citadaem 3.7.2. A primeira parte trata da conex~ao ao MySQL propriamente dita. Em seguida, ocomando SQL (query) �e escrita e repassada ao MySQL. Sobre este script, responda:

� O fun�c~ao mysql_connect() poderia ser substitu��da pela fun�c~ao mysql_pconnect()? Quala diferen�ca b�asica entre elas?

� Qual o papel da fun�c~ao mysql_query()? Qual a sa��da do script em caso de inser�c~aocorreta dos dados?

� Explique em que circunstancia a linha 16 �e executada?

1 <?php

2 // usuario para conexao com banco

3 $username="username";

4 // senha para conexao com banco

5 $password="password";

6 // nome da base de dados

7 $database="agenda";

8 // conexao com o aplicativo servidor de banco de dados

9 mysql_pconnect(localhost ,$username ,$password );

10 // seleciona o banco de dados

11 @mysql_select_db($database) or die( "Impossivel selecionar a base");

12 // query

13 $query = "INSERT INTO contacts VALUES ('','Joao ','01234567890',

14 '[email protected] ','1976/11/06')";

15 // tratamento de erro

16 if(! $result = mysql_query($query ))

17 echo mysql_error ();

18 else

19 echo mysql_affected_rows($result )."dados inseridos com sucesso";

20 ?>

Listagem 3.13: Exemplo de c�odigo para inserir dados em uma tabela

10.

38

ETEC
Nota
retangular
ETEC
Nota
escrito e repassado
ETEC
Nota
A função.....
Page 39: Aula 3 com propostas

Cap��tulo 4

Estudo de Caso: Controle de Finan�cas

Empresarial

4.1 Discutindo a aplica�c~ao

4.2 �

4.3 Realizando Testes

39