SlideShare une entreprise Scribd logo
1  sur  39
Télécharger pour lire hors ligne
~     ^
                  INSTITUTO FEDERAL DE EDUCACAO, CIENCIA
                          E TECNOLOGIA DO CEARA




                           Internet e     Web
                        Novas Tecnologias para
                             Material de Apoio




Jos Roberto Bezerra
   e
Daniel Silva Ferreira




                                   v1.0
2
Sumrio
   a



Prefcio
    a                                                                                                                                                                   5

1 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 . . . . . . . . . . .
                                           .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   11

2 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 . . . . . . . . . . . .
                                               .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   26

3 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                                                                                                
                                                                                              SUMARIO

4 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
Prefcio
    a




Este material foi produzido para servir de apoio a disciplina Novas Tecnologias Web do curso tcnico
                                                                                               e
a dist^ncia em Informtica. Seu principal objetivo  ser um guia que contm todo o contedo que
      a                  a                            e                     e                u
ser abordado durante a disciplina, mas que necessita ser complementado com outros materiais como
   a
v
 deo aulas, livros, sites indicados, alm dos mecanismos de aprendizagem dispon
                                        e                                        veis na ferramenta
(email, frum, etc).
         o




                                                 5
6
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
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
A primeira tag (html) inicia e
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
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
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
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
cos. Para uma refer^ncia detalhada
         a                                                                               e
     sobre os atributos pode-se consultar a descriao completa de cada um deles consultando o endereo
                                                  c~                                                  c
     da W3 Schools.
         A tag font  utilizada para alterar par^metros relacionados a exibiao de fontes no navegador.
                       e                          a                          c~
     Entretanto, o uso desta tag n~o  mais recomendado no HTML 4 e foi totalmente removida no HTML
                                  a e
     5. Atualmente, a recomendaao  formatar as fontes atravs de folhas de estilo CSS (Cascading Style
                                  c~ e                         e
     Sheets ). Assim mesmo, ainda  bom um exemplo para demonstrar o uso dos atributos. Na listagem
                                    e
     1.2, observa-se que, mesmo utilizando as folhas de estilo CSS (citadas anteriormente) o resultado
     obtido  o mesmo.
             e
1    p 
2     font s i z e = 5 face =  arial  c olor = red  
3    Este paragrafo esta em Arial , tamanho 5 e cor vermelha .
4    / font 
5    / p 
6
7    p 
8     font s i z e = 3 face =  verdana  c olor = blue  
9    Este paragrafo esta em Arial , tamanho 3 e cor azul .
10   / font 
11   / p 

                             Listagem 1.2: Exemplo de utiliza~o da tag font
                                                             ca


                                                      8
1    p s t y l e = font - family : arial ; color : red ; font - size :20 px ;  
2    Este paragrafo usa fonte Arial , tamanho 20 pixels e cor vermelha .
3    / font 
4    / p 
5    p s t y l e = font - family : verdana ; color :#10 A030 ; font - size :30 px ;  
6    Este paragrafo usa fonte Verdana , tamanho 30 pixels e cor especificada em RGB
7    / font 
8    / p 
                              Listagem 1.3: Exemplo de formata~o de com CSS
                                                              ca


     1.4     Hiperlinks, imagens e tabelas
     Di
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
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
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
nidas com a tag table. Cada tabela possui linhas (tr) e clulas (td).
                     a                                                                     e
     O contedo da tabela
ca dentro das clulas. Pode conter texto, links, imagens, listas ou at mesmo
             u                             e                                                     e
     outras 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
1.5 Formulrios
               a
     Formulrios s~o utilizados para passar informa~es de uma pgina a outra ou do usurio para o
            a      a                                co             a                       a
     servidor, por exemplo. Um formulrio deve conter elementos de entrada de dados como caixas
                                         a
     de texto, checkbox, bot~es de envio, listas de seleao e outros elementos dispon
                             o                          c~                           veis. Para criar
     um formulrio, utiliza-se a tag form que possui diversos atributos como action e name. Para
                a
     acrescentar elementos ao formulrio, basta acrescentar uma tag input entre as tags form,
                                     a
     segundo o exemplo a seguir.

1     form name= pesquisa  
2    Primeiro Nome :  input type = text  name= firstname    br 
3    Sobrenome :  input type = text  name=  lastname  
4     input type =  radio  name= sex  value = masculino   Masculino  br 
5     input type =  radio  name= sex  value = feminino   Feminino  br 
6    Meios de Transporte que Utiliza :  br 
7     input type =  checkbox  name= vehicle  value = Bicicleta   Bicicleta  br 
8     input type =  checkbox  name= vehicle  value = Carro   Carro
9    / form 

                         Listagem 1.5: Exemplo de formulrio com vrios elementos
                                                        a         a



        No exemplo anterior, o formulrio  de
nido com o nome pesquisa, conforme o atributo presente
                                       a e
     na tag form. Em seguida, est~o presentes 6 elementos, sendo duas caixas de texto, dois bot~es
                                       a                                                          o
     de rdio e dois checkboxes, respectivamente.
         a
         Nas caixas de texto, o usurio pode ser inserido texto livremente. Os bot~es de rdio servem para
                                    a                                              o      a
     escolher uma opao entre vrias dispon
                      c~          a           veis. J o checkbox, deve ser utilizado para selecionar uma
                                                      a
     op~o unica dentre vrias dispon
        ca               a            veis.
        O formulrio da listagem 1.5 ainda est incompleto. Faltam alguns elementos para torn-lo
                  a                               a                                                  a
     funcional. Para que isto acontea,  necessrio que seja utilizado o atributo action da tag form.
                                    c e         a
     Este atributo indica o arquivo ou script que ir processar os dados passados pelo formulrio.
                                                    a                                         a
         Normalmente, os scripts s~o processados no lado do servidor. O cliente (navegador) apenas envia
                                  a
     as informa~es para um servidor na Internet ou localmente para que este realize todo o processamento
                co
     (clculos, armazenamento, otimizaao, etc) da informa~o e devolva uma resposta ao cliente.
       a                               c~                  ca
        Na listagem 1.6, o valor de action=html_form_action.php indica que este script em linguagem
     PHP realizar o processamento do formulrio. Tambm foi acrescentado o bot~o submit para enviar
                  a                          a          e                      a
     os dados do formulrio para o arquivo indicado em action para processamento.
                       a

1     form name= pesquisa  action = html_form_action . php  method = get  
2    Primeiro Nome :  input type = text  name= firstname    br 
3    Sobrenome :  input type = text  name=  lastname  
4     input type =  radio  name= sex  value = masculino   Masculino  br 
5     input type =  radio  name= sex  value = feminino   Feminino  br 
6    Meios de Transporte que Utiliza :  br 
7     input type =  checkbox  name= vehicle  value = Bicicleta   Bicicleta  br 
8     input type =  checkbox  name= vehicle  value = Carro   Carro  br 
9     input type =  submit  value = Enviar  
10   / form 

                           Listagem 1.6: Formulrio com bot~o de envio e action
                                               a           a



                                                      10
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
nal do arquivo, links para tr^s sites externos
                  c~          cio                                              e
    com um texto em destaque Links Recomendados.

 4. Ao
nal dos exerc
                     cios anteriores sua pgina deve ter uma apar^ncia semelhante a
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
ca essa idia. Salve o
              a          o                                                          e
    cdigo em um arquivo e visualize o resultado no navegador.
     o

                                              11
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
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
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
nanceiro),
            a
    nome do usurio e senha.
                a
 9. Dada a tag body mostrada abaixo, pesquise para que servem os atributos BGCOLOR,
    TEXT, LINK, ALINK e VLINK. Aplique-os na pgina do exerc 1.
                                               a             cio

      body bgcolor=#rrggbb text=#rrggbb link=#rrggbb
      alink=#rrggbb VLINK=#rrggbb

10. Diferencie os termos pginas estticas e pginas din^micas relacionados a construao de
                          a         a         a         a                            c~
    sites em geral.




                                                 12
Cap
   tulo 2


Comeando em PHP
    c




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

                               A n~o ser que, por uma monstruosa capitulaao ao egosmo e  estupidez,
                                  a                                      c~              a

                                                                             acabemos nos destruindo.

                                                                                           Carl Sagan



    Os iniciantes em desenvolvimento para web ou em tecnologia da informaao n~o devem se assustar
                                                                             c~ a
com a quantidade de acr^nimos (siglas) existentes. ASP, CGI, SOAP, XML e HTTP s~o alguns
                           o                                                                a
deles. A lista pode ser acrescida de vrios outros 
                                       a              tens e pode parecer interminvel assustando os
                                                                                   a
menos experientes no assunto. Assim, para desenvolver um site com qualidade e principalmente com
funcionalidade um  tem  indispensvel na lista, a linguagem de scripts PHP.
                         e          a


2.1 Mais um acr^nimo
               o
O PHP  uma linguagem de programaao voltada para web bastante conhecida. Trata-se da unica
        e                               c~                                                    
linguagem de scripts baseada em servidor que possui cdigo aberto. E
                                                        o              bastante 
exvel e fcil de
                                                                                           a
aprender. Pesquisas mostram que milh~es de websites utilizam a linguagem PHP como base para
                                         o
suas aplica~es. A raz~o para isso  a grande capacidade do PHP,  uma linguagem poderosa, fcil de
           co         a            e                             e                          a
usar e aprender alm de ser livre. Alm de ser extremamente robusta e escalvel, pode ser utlizada
                  e                   e                                     a
em aplicaoes de alta demanda com boas respostas. Possui suporte a diversos bancos de dados, a
          c~
XML, permite a cria~o de frameworks do prprio programador e ainda excelente documentaao.
                     ca                         o                                               c~
Como se todas estas vantagens n~o fossem su
cientes ainda  gratuita.
                                  a                          e


2.2 O ambiente de desenvolvimento
Para que o PHP funcione,  necessrio combin-lo com um servidor web, tipicamente o Apache. As
                             e       a           a
requisic~es a scripts feitas pelo usurio ou aplicaao s~o recebidas pelo servidor web e manipuladas
        o                            a             c~ a
pelo interpretador PHP. O resultado obtido depois da execuao  devolvido ao servidor web que
                                                                c~ e
                     c~                                       e                               
transmite a informaao para o cliente (navegador). O script  o programa propriamente dito. E onde
est escrito o cdigo da aplica~o que funciona na Internet. Nele,  poss fazer clculos, processar
   a            o               ca                                  e     vel      a
entradas do usurio, interagir com bancos de dados, ler e escrever em arquivos e tudo mais que uma
                 a
linguagem de programa~o  capaz de realizar.
                         ca e
    As atividades propostas neste material foram implementadas utilizando o PHP juntamente com
o servidor web Apache no sistema operacional Linux. Essa  a combinaao de ferramentas mais
                                                                e            c~
comum para utilizar o PHP. Entretanto, existem vers~es tanto do PHP quanto do Apache para
                                                         o
outros sistemas operacionais como Windows e MacOS. Instru~es detalhadas sobre a instalaao e
                                                                 co                             c~
preparaao do ambiente de desenvolvimento para cada plataforma podem ser encontradas no manual
        c~
do PHP dispon no endereo:
                vel           c

                                                 13
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
cas indicando ao Apache
     que os comandos entre estas tags devem ser processados pelo interpretador PHP. Observar a listagem
     2.1.
1    ? php
2
3    comandos PHP
4
5    ?

                                       Listagem 2.1:   Tags   da linguagem PHP
         Um exemplo simples de como os comandos PHP s~o colocados junto com HTML  mostrado na
                                                     a                           e
     listagem 2.2.
1    html 
2    head 
3     title  Matrix / title 
4    / head 
5    body 
6
7    Agente : Quem voce pensa que e?
8    br 
9
10   ? php
11   // saida mostrada
12   echo ' Neo : Eu sou Neo , mas me chamam de o escolhido . ';
13   ?
14
15   / body 
16   / html 

                                        Listagem 2.2: PHP e HTML juntos
         Executando-se o cdigo mostrado na listagem 2.2 e abrindo o cdigo HTML lido pelo navegador
                           o                                              o
      possvel observar que as tags PHP n~o est~o presentes. O que aconteceu? Quando a pgina  req-
     e                                     a      a                                            a      e
     uisitada ao servidor web (Apache) pelo ciente web (navegador) esta  interpretada pelo interpretador
                                                                           e
     PHP presente no servidor, que por sua vez, repassa o resultado na forma de um arquivo HTML que
     e                                                 a                           
      visualizado pelo navegador. Este processo est ilustrado na
gura 2.1. E importante notar que a
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
gura 2.2. Estes sistemas s~o utilizados para testar modi

Contenu connexe

Tendances

K19 k32-desenvolvimento-web-com-aspnet-mvc
K19 k32-desenvolvimento-web-com-aspnet-mvcK19 k32-desenvolvimento-web-com-aspnet-mvc
K19 k32-desenvolvimento-web-com-aspnet-mvcTrioBlack Trioblack
 
K19 k11-orientacao-a-objetos-em-java
K19 k11-orientacao-a-objetos-em-javaK19 k11-orientacao-a-objetos-em-java
K19 k11-orientacao-a-objetos-em-javaCaique Moretto
 
K19 k23-integracao-de-sistemas-com-webservices-jms-e-ejb
K19 k23-integracao-de-sistemas-com-webservices-jms-e-ejbK19 k23-integracao-de-sistemas-com-webservices-jms-e-ejb
K19 k23-integracao-de-sistemas-com-webservices-jms-e-ejbCaique Moretto
 
K19 k02-desenvolvimento-web-com-html-css-e-javascript
K19 k02-desenvolvimento-web-com-html-css-e-javascriptK19 k02-desenvolvimento-web-com-html-css-e-javascript
K19 k02-desenvolvimento-web-com-html-css-e-javascriptJandirlei Feliciano
 
Apostila c# iniciantes
Apostila c# iniciantesApostila c# iniciantes
Apostila c# iniciantesCaique Moretto
 
K19 k02-desenvolvimento-web-com-html-css-e-javascript
K19 k02-desenvolvimento-web-com-html-css-e-javascriptK19 k02-desenvolvimento-web-com-html-css-e-javascript
K19 k02-desenvolvimento-web-com-html-css-e-javascriptAnderson Oliveira
 
K19 k12-desenvolvimento-web-com-jsf2-e-jpa2
K19 k12-desenvolvimento-web-com-jsf2-e-jpa2K19 k12-desenvolvimento-web-com-jsf2-e-jpa2
K19 k12-desenvolvimento-web-com-jsf2-e-jpa2Caique Moretto
 
Caelum java-testes-xml-design-patterns-fj16
Caelum java-testes-xml-design-patterns-fj16Caelum java-testes-xml-design-patterns-fj16
Caelum java-testes-xml-design-patterns-fj16Caique Moretto
 
Apostila Tutorial CakePHP
Apostila Tutorial CakePHPApostila Tutorial CakePHP
Apostila Tutorial CakePHPFernando Palma
 
Fenix Nox 199
Fenix Nox 199Fenix Nox 199
Fenix Nox 199Alan Lima
 
K19 k52-desenvolvimento-web-com-struts
K19 k52-desenvolvimento-web-com-strutsK19 k52-desenvolvimento-web-com-struts
K19 k52-desenvolvimento-web-com-strutsCaique Moretto
 
K19 k21-persistencia-com-jpa2-e-hibernate
K19 k21-persistencia-com-jpa2-e-hibernateK19 k21-persistencia-com-jpa2-e-hibernate
K19 k21-persistencia-com-jpa2-e-hibernateCaique Moretto
 
K19 k41-desenvolvimento-mobile-com-android
K19 k41-desenvolvimento-mobile-com-androidK19 k41-desenvolvimento-mobile-com-android
K19 k41-desenvolvimento-mobile-com-androidCaique Moretto
 

Tendances (19)

K19 k32-desenvolvimento-web-com-aspnet-mvc
K19 k32-desenvolvimento-web-com-aspnet-mvcK19 k32-desenvolvimento-web-com-aspnet-mvc
K19 k32-desenvolvimento-web-com-aspnet-mvc
 
Manual sobre a ferramenta Kate - Linux
Manual sobre a ferramenta Kate - LinuxManual sobre a ferramenta Kate - Linux
Manual sobre a ferramenta Kate - Linux
 
K19 k11-orientacao-a-objetos-em-java
K19 k11-orientacao-a-objetos-em-javaK19 k11-orientacao-a-objetos-em-java
K19 k11-orientacao-a-objetos-em-java
 
K19 k23-integracao-de-sistemas-com-webservices-jms-e-ejb
K19 k23-integracao-de-sistemas-com-webservices-jms-e-ejbK19 k23-integracao-de-sistemas-com-webservices-jms-e-ejb
K19 k23-integracao-de-sistemas-com-webservices-jms-e-ejb
 
K19 k02-desenvolvimento-web-com-html-css-e-javascript
K19 k02-desenvolvimento-web-com-html-css-e-javascriptK19 k02-desenvolvimento-web-com-html-css-e-javascript
K19 k02-desenvolvimento-web-com-html-css-e-javascript
 
Apostila c# iniciantes
Apostila c# iniciantesApostila c# iniciantes
Apostila c# iniciantes
 
K19 k02-desenvolvimento-web-com-html-css-e-javascript
K19 k02-desenvolvimento-web-com-html-css-e-javascriptK19 k02-desenvolvimento-web-com-html-css-e-javascript
K19 k02-desenvolvimento-web-com-html-css-e-javascript
 
K19 k12-desenvolvimento-web-com-jsf2-e-jpa2
K19 k12-desenvolvimento-web-com-jsf2-e-jpa2K19 k12-desenvolvimento-web-com-jsf2-e-jpa2
K19 k12-desenvolvimento-web-com-jsf2-e-jpa2
 
Apostila latex
Apostila latexApostila latex
Apostila latex
 
Caelum java-testes-xml-design-patterns-fj16
Caelum java-testes-xml-design-patterns-fj16Caelum java-testes-xml-design-patterns-fj16
Caelum java-testes-xml-design-patterns-fj16
 
Apostila Tutorial CakePHP
Apostila Tutorial CakePHPApostila Tutorial CakePHP
Apostila Tutorial CakePHP
 
Fenix Nox 199
Fenix Nox 199Fenix Nox 199
Fenix Nox 199
 
Manualipdoc4 pt
Manualipdoc4 ptManualipdoc4 pt
Manualipdoc4 pt
 
K19 k52-desenvolvimento-web-com-struts
K19 k52-desenvolvimento-web-com-strutsK19 k52-desenvolvimento-web-com-struts
K19 k52-desenvolvimento-web-com-struts
 
K19 k21-persistencia-com-jpa2-e-hibernate
K19 k21-persistencia-com-jpa2-e-hibernateK19 k21-persistencia-com-jpa2-e-hibernate
K19 k21-persistencia-com-jpa2-e-hibernate
 
K19 k41-desenvolvimento-mobile-com-android
K19 k41-desenvolvimento-mobile-com-androidK19 k41-desenvolvimento-mobile-com-android
K19 k41-desenvolvimento-mobile-com-android
 
Material LINUX
Material LINUXMaterial LINUX
Material LINUX
 
Perl
PerlPerl
Perl
 
Ap tut arduino
Ap   tut arduinoAp   tut arduino
Ap tut arduino
 

En vedette

Apostila de geografia do brasil pg56
Apostila de geografia do brasil pg56Apostila de geografia do brasil pg56
Apostila de geografia do brasil pg56kisb1337
 
Tn70 especial _produtores_independentes[1]
Tn70 especial _produtores_independentes[1]Tn70 especial _produtores_independentes[1]
Tn70 especial _produtores_independentes[1]victor_souza
 
Atlas brasil volume 1 - panorama nacional
Atlas brasil   volume 1 - panorama nacionalAtlas brasil   volume 1 - panorama nacional
Atlas brasil volume 1 - panorama nacionalJosé Fernando Miranda
 
Inconfidência nº 224 de 29 de fevereiro‏
Inconfidência nº 224 de 29 de fevereiro‏Inconfidência nº 224 de 29 de fevereiro‏
Inconfidência nº 224 de 29 de fevereiro‏Lucio Borges
 
Guia nacional de_coleta_e_preservacao_de_amostras_
Guia nacional de_coleta_e_preservacao_de_amostras_Guia nacional de_coleta_e_preservacao_de_amostras_
Guia nacional de_coleta_e_preservacao_de_amostras_100604
 
Manual Étnico-racial para o Jornalismo
Manual Étnico-racial para o JornalismoManual Étnico-racial para o Jornalismo
Manual Étnico-racial para o JornalismoJuliana Dias
 
Jornal do Beirú
Jornal do BeirúJornal do Beirú
Jornal do BeirúVilma Neres
 
ManhuaçU
ManhuaçUManhuaçU
ManhuaçUecsette
 
Balanço final do PAC no governo Lula
Balanço final do PAC no governo LulaBalanço final do PAC no governo Lula
Balanço final do PAC no governo LulaGiovanni Sandes
 
Celson Ricardo Carvalho de Oliveira
Celson Ricardo Carvalho de OliveiraCelson Ricardo Carvalho de Oliveira
Celson Ricardo Carvalho de OliveiraDelza
 
Revista Boa Vontade, edição 238
Revista Boa Vontade, edição 238Revista Boa Vontade, edição 238
Revista Boa Vontade, edição 238Boa Vontade
 
Classificação cafe 1ª_etapa2012
Classificação cafe 1ª_etapa2012Classificação cafe 1ª_etapa2012
Classificação cafe 1ª_etapa2012Luiz Valeriano
 
Mercado de trabalho marketing e vendas- artigo
Mercado de trabalho   marketing e vendas- artigoMercado de trabalho   marketing e vendas- artigo
Mercado de trabalho marketing e vendas- artigoDeborah Moreira
 

En vedette (20)

Zoneamento Soja RS
Zoneamento Soja RSZoneamento Soja RS
Zoneamento Soja RS
 
Apostila de geografia do brasil pg56
Apostila de geografia do brasil pg56Apostila de geografia do brasil pg56
Apostila de geografia do brasil pg56
 
Tn70 especial _produtores_independentes[1]
Tn70 especial _produtores_independentes[1]Tn70 especial _produtores_independentes[1]
Tn70 especial _produtores_independentes[1]
 
Atlas brasil volume 1 - panorama nacional
Atlas brasil   volume 1 - panorama nacionalAtlas brasil   volume 1 - panorama nacional
Atlas brasil volume 1 - panorama nacional
 
2014 levantamento-de-safra-3
2014 levantamento-de-safra-32014 levantamento-de-safra-3
2014 levantamento-de-safra-3
 
Inconfidência nº 224 de 29 de fevereiro‏
Inconfidência nº 224 de 29 de fevereiro‏Inconfidência nº 224 de 29 de fevereiro‏
Inconfidência nº 224 de 29 de fevereiro‏
 
Reporter 171
Reporter 171Reporter 171
Reporter 171
 
Guia nacional de_coleta_e_preservacao_de_amostras_
Guia nacional de_coleta_e_preservacao_de_amostras_Guia nacional de_coleta_e_preservacao_de_amostras_
Guia nacional de_coleta_e_preservacao_de_amostras_
 
Caderno MÍDIA & SAÚDE PÚBLICA - ESPMG
Caderno MÍDIA & SAÚDE PÚBLICA - ESPMGCaderno MÍDIA & SAÚDE PÚBLICA - ESPMG
Caderno MÍDIA & SAÚDE PÚBLICA - ESPMG
 
Jornal Julho
Jornal JulhoJornal Julho
Jornal Julho
 
Manual Étnico-racial para o Jornalismo
Manual Étnico-racial para o JornalismoManual Étnico-racial para o Jornalismo
Manual Étnico-racial para o Jornalismo
 
Jornal do Beirú
Jornal do BeirúJornal do Beirú
Jornal do Beirú
 
ManhuaçU
ManhuaçUManhuaçU
ManhuaçU
 
Sensor Varejo, edição 04
Sensor Varejo, edição 04Sensor Varejo, edição 04
Sensor Varejo, edição 04
 
Balanço final do PAC no governo Lula
Balanço final do PAC no governo LulaBalanço final do PAC no governo Lula
Balanço final do PAC no governo Lula
 
Celson Ricardo Carvalho de Oliveira
Celson Ricardo Carvalho de OliveiraCelson Ricardo Carvalho de Oliveira
Celson Ricardo Carvalho de Oliveira
 
Apostila atualidades 2013
Apostila atualidades 2013Apostila atualidades 2013
Apostila atualidades 2013
 
Revista Boa Vontade, edição 238
Revista Boa Vontade, edição 238Revista Boa Vontade, edição 238
Revista Boa Vontade, edição 238
 
Classificação cafe 1ª_etapa2012
Classificação cafe 1ª_etapa2012Classificação cafe 1ª_etapa2012
Classificação cafe 1ª_etapa2012
 
Mercado de trabalho marketing e vendas- artigo
Mercado de trabalho   marketing e vendas- artigoMercado de trabalho   marketing e vendas- artigo
Mercado de trabalho marketing e vendas- artigo
 

Similaire à Aula 3 com propostas

Alternativas ao Software Proprietário
Alternativas ao Software ProprietárioAlternativas ao Software Proprietário
Alternativas ao Software ProprietárioHudson Augusto
 
Introdução à programação em R
Introdução à programação em RIntrodução à programação em R
Introdução à programação em RMonica Barros
 
Programming Languages Paradigms
Programming Languages ParadigmsProgramming Languages Paradigms
Programming Languages Paradigmsrodrigovmoraes
 
Programacao Orientada A Objetos (Java)
Programacao Orientada A Objetos (Java)Programacao Orientada A Objetos (Java)
Programacao Orientada A Objetos (Java)Robson Silva Espig
 
Apostila ata informatica_julio_alves
Apostila ata informatica_julio_alvesApostila ata informatica_julio_alves
Apostila ata informatica_julio_alvesYara Grasielle
 
Ncl e Lua - desenvolvendo aplicações interativas para tv digital
Ncl e Lua - desenvolvendo aplicações interativas para tv digitalNcl e Lua - desenvolvendo aplicações interativas para tv digital
Ncl e Lua - desenvolvendo aplicações interativas para tv digitalRafael Carvalho
 
Relatório de Projecto de Licenciatura
Relatório de Projecto de LicenciaturaRelatório de Projecto de Licenciatura
Relatório de Projecto de LicenciaturaJoel Carvalho
 
Manual gps tracker 7, multilaser gp015
Manual gps tracker 7, multilaser  gp015Manual gps tracker 7, multilaser  gp015
Manual gps tracker 7, multilaser gp015Jose llIMA
 

Similaire à Aula 3 com propostas (20)

Introdução às redes
Introdução às redesIntrodução às redes
Introdução às redes
 
Alternativas ao Software Proprietário
Alternativas ao Software ProprietárioAlternativas ao Software Proprietário
Alternativas ao Software Proprietário
 
Introdução à programação em R
Introdução à programação em RIntrodução à programação em R
Introdução à programação em R
 
Manual de portugol
Manual de portugolManual de portugol
Manual de portugol
 
Apostila de computação gráfica (2006)
Apostila de computação gráfica (2006)Apostila de computação gráfica (2006)
Apostila de computação gráfica (2006)
 
Tutorial de Uppaal
Tutorial de UppaalTutorial de Uppaal
Tutorial de Uppaal
 
Tut arduino
Tut arduinoTut arduino
Tut arduino
 
Livro angular2
Livro angular2Livro angular2
Livro angular2
 
Sql
SqlSql
Sql
 
Programming Languages Paradigms
Programming Languages ParadigmsProgramming Languages Paradigms
Programming Languages Paradigms
 
Manual do Kile
Manual do KileManual do Kile
Manual do Kile
 
Programacao Orientada A Objetos (Java)
Programacao Orientada A Objetos (Java)Programacao Orientada A Objetos (Java)
Programacao Orientada A Objetos (Java)
 
Apostila ata informatica_julio_alves
Apostila ata informatica_julio_alvesApostila ata informatica_julio_alves
Apostila ata informatica_julio_alves
 
Php
PhpPhp
Php
 
Ncl e Lua - desenvolvendo aplicações interativas para tv digital
Ncl e Lua - desenvolvendo aplicações interativas para tv digitalNcl e Lua - desenvolvendo aplicações interativas para tv digital
Ncl e Lua - desenvolvendo aplicações interativas para tv digital
 
Hardware CDTC
Hardware CDTCHardware CDTC
Hardware CDTC
 
Relatório de Projecto de Licenciatura
Relatório de Projecto de LicenciaturaRelatório de Projecto de Licenciatura
Relatório de Projecto de Licenciatura
 
Blender
BlenderBlender
Blender
 
Mnl gp015
Mnl gp015Mnl gp015
Mnl gp015
 
Manual gps tracker 7, multilaser gp015
Manual gps tracker 7, multilaser  gp015Manual gps tracker 7, multilaser  gp015
Manual gps tracker 7, multilaser gp015
 

Aula 3 com propostas

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