Aula 3 com propostas

792 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
792
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Aula 3 com propostas

  1. 1. ~ ^ INSTITUTO FEDERAL DE EDUCACAO, CIENCIA E TECNOLOGIA DO CEARA Internet e Web Novas Tecnologias para Material de ApoioJos Roberto Bezerra eDaniel Silva Ferreira v1.0
  2. 2. 2
  3. 3. Sumrio aPrefcio a 51 Um pouco sobre HTML 7 1.1 Pginas web . . . . . . . . . . a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2 Ferramentas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.3 Atributos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.4 Hiperlinks, imagens e tabelas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.5 Formulrios . . . . . . . . . . a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.6 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 Comeando em PHP c 13 2.1 Mais um acr^nimo . . . . . . . o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.2 O ambiente de desenvolvimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.3 Iniciando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.4 Variveis . . . . . . . . . . . . . a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.5 Operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.6 Formulrios . . . . . . . . . . . a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.6.1 Mtodos HTTP . . . . . e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.6.2 Query string . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.7 Comparando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.8 Controle de uxo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.9 Fun~es . . . . . . . . . . . . . co . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.10 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 Coisas Importantes em PHP 29 3.1 Por que cookies ou sess~es? o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Validaao . . . . . . c~ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.5.4 Logout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.6 Sess~es . . . . . . . . . . . . o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.6.1 Registrando variveis a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.7 Bancos de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3.7.1 Criando Tabelas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.7.2 Tabela de Contatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.8 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3
  4. 4. 4 SUMARIO4 Estudo de Caso: Controle de Finanas Empresarial c 39 4.1 Discutindo a aplica~o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ca 39 4.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.3 Realizando Testes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
  5. 5. Prefcio aEste material foi produzido para servir de apoio a disciplina Novas Tecnologias Web do curso tcnico ea dist^ncia em Informtica. Seu principal objetivo ser um guia que contm todo o contedo que a a e e user abordado durante a disciplina, mas que necessita ser complementado com outros materiais como av deo aulas, livros, sites indicados, alm dos mecanismos de aprendizagem dispon e veis na ferramenta(email, frum, etc). o 5
  6. 6. 6
  7. 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. 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
  9. 9. A primeira tag (html) inicia e
  10. 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. 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. 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. 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. 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. e1 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 67 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. 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 RGB7 / font 8 / p Listagem 1.3: Exemplo de formata~o de com CSS ca 1.4 Hiperlinks, imagens e tabelas Di
  16. 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. 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. 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. 19. nidas com a tag table. Cada tabela possui linhas (tr) e clulas (td). a e O contedo da tabela
  20. 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. 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. 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 Carro9 / form Listagem 1.5: Exemplo de formulrio com vrios elementos a a No exemplo anterior, o formulrio de
  23. 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. a1 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. 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. 25. nal do arquivo, links para tr^s sites externos c~ cio e com um texto em destaque Links Recomendados. 4. Ao
  26. 26. nal dos exerc cios anteriores sua pgina deve ter uma apar^ncia semelhante a
  27. 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. 28. ca essa idia. Salve o a o e cdigo em um arquivo e visualize o resultado no navegador. o 11
  29. 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. 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. 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. 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=#rrggbb10. Diferencie os termos pginas estticas e pginas din^micas relacionados a construao de a a a a c~ sites em geral. 12
  33. 33. Cap tulo 2Comeando 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~ acom a quantidade de acr^nimos (siglas) existentes. ASP, CGI, SOAP, XML e HTTP s~o alguns o adeles. A lista pode ser acrescida de vrios outros a tens e pode parecer interminvel assustando os amenos experientes no assunto. Assim, para desenvolver um site com qualidade e principalmente comfuncionalidade um tem indispensvel na lista, a linguagem de scripts PHP. e a2.1 Mais um acr^nimo oO 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 aaprender. Pesquisas mostram que milh~es de websites utilizam a linguagem PHP como base para osuas aplica~es. A raz~o para isso a grande capacidade do PHP, uma linguagem poderosa, fcil de co a e e ausar e aprender alm de ser livre. Alm de ser extremamente robusta e escalvel, pode ser utlizada e e aem 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. 34. cientes ainda gratuita. a e2.2 O ambiente de desenvolvimentoPara que o PHP funcione, necessrio combin-lo com um servidor web, tipicamente o Apache. As e a arequisic~es a scripts feitas pelo usurio ou aplicaao s~o recebidas pelo servidor web e manipuladas o a c~ apelo 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 ondeest escrito o cdigo da aplica~o que funciona na Internet. Nele, poss fazer clculos, processar a o ca e vel aentradas do usurio, interagir com bancos de dados, ler e escrever em arquivos e tudo mais que uma alinguagem de programa~o capaz de realizar. ca e As atividades propostas neste material foram implementadas utilizando o PHP juntamente como 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 ooutros 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. 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. 36. cas indicando ao Apache que os comandos entre estas tags devem ser processados pelo interpretador PHP. Observar a listagem 2.1.1 ? php23 comandos PHP45 ? 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 67 Agente : Quem voce pensa que e?8 br 910 ? php11 // saida mostrada12 echo Neo : Eu sou Neo , mas me chamam de o escolhido . ;13 ?1415 / 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
  37. 37. gura 2.1. E importante notar que a
  38. 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
  39. 39. gura 2.2. Estes sistemas s~o utilizados para testar modi
  40. 40. ca~es antes de serem colocadas a co em funcionamento no servidor de produao e tambm para aprendizagem e estudos. Na
  41. 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. 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. 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 ? php23 // comentario de linha unica45 /* comentario6 de multiplas7 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. 44. cas como em qualquer outra linguagem. co co 15
  45. 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. 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. 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. 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 67 Agente : Quem voce pensa que e?8 br 910 ? php11 // define as variaveis12 $name = Neo ;13 $rank = Anomalia ;14 $serialNumber = 1;1516 // imprime saida17 echo Neo : Eu sou b $name /b , o b $rank / b .18 Qual meu numero de serie , b $serialNumber / b . ;19 ?2021 / 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 ? php23 $old = 1;4 $age = $old + 15;5 $angle1 = $angle2 = $angle3 = 60;67 ? 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
  49. 49. String Vetores (arrays) Para especi
  50. 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. 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. 52. ca ($a = 1.23e4 ou $b = 7E-10). Uma string especi
  53. 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. 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 ? php2 $arr = array ( foo = bar , 12 = true );34 echo $arr [ foo ]; // bar5 echo $arr [12]; // 16 /$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 ? php6 // atribui valor a quantity7 $quantity = 1000;8 // atribui valor a preco original e preco corrente9 $origPrice = 100;10 $currPrice = 25;11 // calcula a diferenca de precos12 $diffPrice = $currPrice - $origPrice ;13 // calcula a percetagem14 $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. 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. 56. ca a concatena~o de c~ e ca strings utilizando esse operador.1 ? php2 // algumas strings3 $a = os ;4 $b = jogos ;5 $c = iniciam ;6 $d = agora ;78 // os valores sao combinados9 // e retornado os jogos iniciam agora br 10 $statement = $a . . $b . . $c . . $d . br / ;11 print $statement ;1213 // 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. 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. 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. 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 ca1 html 2 head / head 3 body 4 ? php5 // recebe dados do formulario6 $input = $_POST [ msg ];7 // usa os dados8 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. 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. 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. 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=121 ? php2 $nome = $_REQUEST [ nome ];3 $idade = $_REQUEST [ idade ];45 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. 63. cos para compara~o podem ser utilizados. Na listagem 2.12 s~o ca a mostrados alguns deles.1 ? php2 /* define duas variaveis */3 $str = 10 ;4 $int = 10;56 /* retorna true , desde que ambas contenham o mesmo valor */7 $result = ( $str == $int );8 print resultado e $result br ;910 /* retorna false , desde que as variaveis nao sejam do mesmo tipo , mesmo contendo o mesmo11 $result = ( $str === $int );12 print resultado e $result br ;1314 /* returna true , desde que as variaveis tenham mesmo valor e tipo */15 $anotherInt = 10; 20
  64. 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. e1 ? php2 /* definicao de variaveis */3 $auth = 1;4 $status = 1;5 $role = 4;67 /* AND logico returna true se todas as condicoes sao true */8 // returna true9 $result = (( $auth == 1) ( $status != 0));10 print resultado e $result br ;1112 /* OR logico returna true se alguma condicao e true */13 // returna true14 $result = (( $status == 1) || ( $role = 2));15 print resultado e $result br ;1617 /* NOT logico returna true se a condicao e false e vice - versa */18 // returna false19 $result = !( $status == 1);20 print result is $result br ;2122 // XOR logico returna true se nenhuma das duas condicoes sao true , ou23 // returna false se ambas condicoes sao true24 $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. a1 html 2 head / head 3 body 4 ? php5 // retrieve form data6 $age = $_POST [ age ];7 // verificacao do valor 21
  65. 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. 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: Formulario1 html 2 head / head 3 body 4 ? php5 // pega selecao do formulario6 $day = $_GET [ day ];7 // checa a opcao e escolhe o item apropriado8 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. 67. 1 ? php2 // exemplo 13 $i = 1;4 while ( $i = 10)5 {6 echo $i ++;7 }8 // exemplo 29 $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 a1 ? php2 // exemplo 13 for ( $i = 1; $i = 10; $i ++) {4 echo $i ;5 }6 // exemplo 27 for ( $i = 1; ; $i ++) {8 if ( $i 10) {9 break ;10 }11 echo $i ;12 }13 // exemplo 314 $i = 1;15 for (; ; ) {16 if ( $i 10) {17 break ;18 }19 echo $i ;20 $i ++;21 }22 // exemplo 423 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. 68. cando- se seu caminho. Caso o arquivo n~o seja encontrado um warning emitido para o usurio. Se a e a especi
  69. 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. 70. 1 vars . php2 ? php3 $cor = verde ;4 $fruta = laranja ;5 ?67 teste . php8 ? php9 echo Uma $cor $fruta ; // Uma verde laranja10 include ( vars . php );11 echo Uma $cor $fruta ; // Uma laranja verde12 ? 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. 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. 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. 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. 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. u1 ? php2 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. 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 ? php2 function area ($b , $h )3 { 24
  76. 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 ? php2 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. 77. 2.10 Exerccios 1. Qual o mtodo HTTP recomendado para utilizaao em aplicaoes web ? Justi
  78. 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. 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. 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
  81. 81. 9. Modi
  82. 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. e10. 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
  83. 83. 28
  84. 84. Cap tulo 3Coisas 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~ absica de funcionamento atravs do uso de formulrios e dos arrays $_GET e $_POST, tambm con- a e a ehecidos como arrays superglobais. Porm, o uso dos valores contidos nesses arrays existe apenas epara 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 eainda 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 aabordado ainda o uso de bancos de dados como ferramenta auxiliar, uma vez que a persist^ncia de edados tambm uma caracterstica fundamental em aplicaoes web em geral. e e c~3.1 Por que cookies ou sess~es? oQuando se acessa uma pgina web, a comunicaao entre o navegador e o servidor web feita atravs do a c~ e eprotocolo 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 auma 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 aplesmente, o Apache atende as duas requisi~es. Assim, mecanismos como cookies e sess~es s~o co o afundamentais para o desenvolvimento de aplicaoes como comrcio eletr^nico, exibiao de anncios c~ e o c~ ue personaliza~o de pginas em geral. S~o as chamadas pginas din^micas. Diferentemente das pgi- ca a a a a anas estticas que utilizam puramente o HTML, ou seja, o mesmo contedo sempre exibido para a u equalquer usurio que requisite a pgina. a a3.2 CookiesCookies s~o apenas arquivos texto armazenados localmente na mquina do cliente web para posteri- a aormente serem recuperados pelo servidor. E composto por um nome para servir como referencia e umvalor associado a esse nome. Qualquer aplica~o que necessite compartilhar dados entre diferentes capginas pode ser implementada utilizando os cookies. a Um exemplo muito simples do uso de cookies a contagem de acessos. Supondo que um usurio e aacessa um site pela primeira vez e que um cookie de
  85. 85. nido com o nome numero_acessos e com valor e 29
  86. 86. inicial 1. No prximo acesso, o valor incrementado e assim sucessivamente. O servidor resgata esse o evalor 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 apode ser armazenado em um cookie de forma que em acessos futuros o termo pesquisado j seja apreenchido 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 aa dias ou pode ser con
  87. 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 camuitas 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 anavegadores permitem ao usurio habilitar ou desabilitar o armazenamento de cookies na mquina. a aEntretanto, ao desabilitar este recurso di
  88. 88. cilmente pode-se obter os mesmos recursos disponibilizadospelo site. Provalmente, n~o ser possvel realizar o login ou registrar a cidade em que o usurio se a a aencontra e coisas do tipo.3.3 Enviando cookiesO PHP disponibiliza a fun~o setcookie() para enviar cookies para a mquina do usurio. Esta ca a afunao possui dupla funcionalidade, tanto serve para de
  89. 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. 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. 91. nir um cookie, necessrio atribuir um valor. Caso contrrio, o cookie excludo. Assim, e a a e a de
  92. 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 eao tempo atual retornado por time() temos a validade do cookie de

×