PHP
programação server-side




     www.w3schools.com/php/php_intro.asp
               www.php.net
Introdução
o ambiente de desenvolvimento open-source
 •   Máquina Virtual (virtualbox)

     •   Sistema operativo Debian 5

     •   Suite de aplicações de servidor xampp

            •     Apache (servidor web)

            •     PHP (interpretador de comandos)

            •     MySQL (SGBD relacional)

            •     ProFTP (servidor ftp)

            •     ...

 •   O xampp pode ser descarregado aqui > http://www.apachefriends.org/en/xampp.html
Introdução
o ambiente de desenvolvimento open-source
Introdução
o ambiente de desenvolvimento open-source
 •   Debian:

     •   Utilizador: aluno

     •   Password: esap (a mesma de root)




 •   Pasta dos ficheiros do servidor apache:

     •   /opt/lampp/htdocs
Introdução
páginas estáticas vs dinâmicas | páginas estáticas
   Uma página estática para a Web é uma página cujos conteúdos foram completamente determinados pelo seu
   autor.


   Quer isto dizer que o conteúdo e o aspecto dessa página é sempre o mesmo, independentemente de quem

   visita a página, quando a visita ou como a visita.


   Essencialmente, consiste num ficheiro HTML que se encontra publicado num servidor Web.
Introdução
páginas estáticas vs dinâmicas | páginas estáticas | limitações
deste tipo de página
•   Não é possível personalizar a página para o utilizador que a está a visualizar de modo a que esta varie ao longo do
    tempo de acordo com o modo como está a ser visualizada... seria portanto impossível haver websites ao estilo da
    web 2.0 (artigos de jornais com comentários quase em tempo real, upload de vídeos, blogs, etc...


•   Alterações nos seus conteúdos ou aspecto só podem ser efectuados através da edição do próprio código HTML



                                                    pedido de ficheiro

                                                                            html
                                                                               B



                                                        resposta          browser cliente
Introdução
páginas estáticas vs dinâmicas | páginas dinâmicas
•   Uma página dinâmica para a Web é uma página cujos conteúdos não são determinados no seu estado inicial (isto
    é, quando é publicada pelo autor); o conteúdo final da página é determinado após um utilizador executar um
    pedido da mesma ao servidor Web através de um browser;


•   Os conteúdos e aspecto das páginas pode variar de pedido para pedido;


•   Para tornar as páginas dinâmicas é necessário substituir algumas partes (ou a totalidade) do código HTML por
    uma outra linguagem. No momento em que existe um pedido de acesso à página, estas instruções são
    executadas / processadas pelo servidor e é então gerada a página final


                                           servidor



                                                        pedido

                                                                    html
                                        processamento                  B




                                                        resposta   browser cliente
Introdução
funcionamento modelo cliente-servidor (dynamic)
  1.   O cliente envia um pedido (GET ou POST) ao servidor (Apache)

  2.   O Apache processa o pedido com ajuda da biblioteca de PHP

         1.    Caso seja necessário, efectua queries no sgbd (mysql)

  3.   Por último, o Apache responde com um documento html contendo o resultado do pedido do cliente.




                                     servidor



                                                      pedido

                                                                       html
                                  processamento                           B




                                                      resposta     browser cliente
Introdução
funcionamento modelo cliente-servidor (dynamic)


                servidor



                             pedido

                                         html
             processamento                  B




                             resposta   browser cliente
A linguagem PHP
história...
  •   1995
        •    Rasmus Lerdorf desenvolve Script Perl/CGI (contador de visitantes da sua página)
        •    Oferece Script sob o nome – Personal Home Page

  •   1997
        •    PHP 2.0
             •  Personal Home Page/Form Interpreter
             •  Popularidade cresce exponencialmente
             •  Desenvolve-se uma comunidade de programadores/utilizadores

  •   1998
        •    PHP 3.0 --> 1999 + 1 milhão de utilizadores

  •   2000
        •    PHP 4.0 PHP: Hypertext Preprocessor
        •    Motor/Parser reescrito - Zend Engine
        •    Gestão Recursos, OOP, Gestão de Sessões, Encrypt, ISAPI, JAVA,

  •   2004
        •    PHP 5.0
        •    Maior suporte a OOP - Desenvolvimento de Frameworks (ZEND)
        •    Suporte a XML, Web Services (SOAP), …
        •    Utilizada em mais de 20 milhões de domínios…
A linguagem PHP
porquê PHP e não ASP, JSP ou outra?
  •   Custos (gratuito!)

  •   Disponível para diversas plataformas (Linux, Unix, Windows, Mac OS X)

  •   Funciona com os servidores web mais famosos (Apache em Linux, MS IIS em Windows)

  •   Suporta maioria dos SGBDs (MySQL, PostegreSQL, Oracle, MS-SQL, ODBC...)



  •   Fácil integração noutros serviços de rede:

         •     LDAP, IMAP, SNMP, HTTP, POP3, Sockets...



  •   Linguagem (sintaxe) simples, principalmente para quem já programou em C;

  •   Fácil de começar

  •   Boa documentação em português (open source)

  •   Comunidade enorme!
A linguagem PHP
o que podemos fazer com ela?
 •   Recolher e processar dados de formulários

 •   Criar conteúdos dinâmicos, ligados a bases de dados

 •   Enviar e receber cookies

 •   Criar sessões no navegador

 •   Criar imagens dinamicamente (biblioteca GD)

 •   Gerar ficheiros PDF

 •   Gerar qualquer tipo de ficheiros de texto (XML, CSV, .XLS)

 •   Interagir com a shell do sistema operativo (copiar ficheiros, criar pastas, mudar permissões, fazer backups...)

 •   Criar e “consumir” web-services

 •   etc. etc. etc...
A linguagem PHP
bons exemplos de onde ela está actualmente
A linguagem PHP
introdução à sintaxe | delimitadores (e echo!)
A linguagem PHP
introdução à sintaxe | comentários
A linguagem PHP
introdução à sintaxe | variáveis regulares

  •   Representadas pelo símbolo $ seguido de uma ou mais letras

         •    Ex. $login $passwd $cor_preferida $preferencia

  •   O PHP é case sensitive, ou seja, faz distinção entre maiusculas e minusculas no nome da variável

         •    $nome != $NoMe

  •   Não é necessário declarar (inicializar) as variáveis no topo do documento nem o seu tipo (é dinâmico)
A linguagem PHP
introdução à sintaxe | variáveis superglobais

  •   $_SERVER

      •   Fornece dados sobre o ambiente em que a Web application corre (servidor)



  •   $_FILES

      •   Dados sobre os ficheiros transferidos para o servidor pelo método POST



  •   $_ENV

      •   Tal como a $_SERVER fornece dados sobre o ambiente onde a Web application corre (servidor e cliente)



  •   $_SESSION

      •   Guarda os dados de todas as variáveis de sessão dum utilizador
A linguagem PHP
introdução à sintaxe | variáveis superg. | $_SERVER

  •   $_SERVER                                          $_SERVER['HTTP_HOST'] = aulas
                                                        $_SERVER['HTTP_USER_AGENT'] = Mozilla/5.0 (Macintosh; U; Intel

      •
                                                        Mac OS X 10.5; pt-PT; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3
          Fornece dados sobre o ambiente em que a Web   $_SERVER['HTTP_ACCEPT'] = text/html,application/xhtml
                                                        +xml,application/xml;q=0.9,*/*;q=0.8
                                                        $_SERVER['HTTP_ACCEPT_LANGUAGE'] = pt,pt-br;q=0.8,en-
          application corre (servidor)                  us;q=0.5,en;q=0.3
                                                        $_SERVER['HTTP_ACCEPT_ENCODING'] = gzip,deflate
                                                        $_SERVER['HTTP_ACCEPT_CHARSET'] =
                                                        ISO-8859-1,utf-8;q=0.7,*;q=0.7
                                                        $_SERVER['HTTP_KEEP_ALIVE'] = 300
                                                        $_SERVER['HTTP_CONNECTION'] = keep-alive
                                                        $_SERVER['PATH'] = /usr/bin:/bin:/usr/sbin:/sbin
                                                        $_SERVER['SERVER_SIGNATURE'] =
                                                        $_SERVER['SERVER_SOFTWARE'] = Apache
                                                        $_SERVER['SERVER_NAME'] = aulas
                                                        $_SERVER['SERVER_ADDR'] = 127.0.0.1
                                                        $_SERVER['SERVER_PORT'] = 80
                                                        $_SERVER['REMOTE_ADDR'] = 127.0.0.1
                                                        $_SERVER['DOCUMENT_ROOT'] = /Applications/MAMP/htdocs/
                                                        aulas_php
                                                        $_SERVER['SERVER_ADMIN'] = marcoalexpinheiro@gmail.com
                                                        $_SERVER['SCRIPT_FILENAME'] = /Applications/MAMP/htdocs/
                                                        aulas_php/index.php
                                                        $_SERVER['REMOTE_PORT'] = 63113
                                                        $_SERVER['GATEWAY_INTERFACE'] = CGI/1.1
                                                        $_SERVER['SERVER_PROTOCOL'] = HTTP/1.1
                                                        $_SERVER['REQUEST_METHOD'] = GET
                                                        $_SERVER['QUERY_STRING'] =
                                                        $_SERVER['REQUEST_URI'] = /
                                                        $_SERVER['SCRIPT_NAME'] = /index.php
                                                        $_SERVER['PHP_SELF'] = /index.php
                                                        $_SERVER['REQUEST_TIME'] = 1254769862
                                                        $_SERVER['argv'] = Array
                                                        $_SERVER['argc'] = 0
A linguagem PHP
introdução à sintaxe | variáveis superg. | $_FILES

  •   $_FILES

      •   Dados sobre os ficheiros transferidos para o   $foto_temp = $_FILES["nomeCampo"]["tmp_name"];

                                                        //NOME DO ARQUIVO NA MÁQUINA DO USUÁRIO
          servidor pelo método POST                     $foto_name = $_FILES["nomeCampo"]["name"];

                                                        //TAMANHO DO ARQUIVO
                                                        $foto_size = $_FILES["nomeCampo"]["size"];

                                                        //TIPO MIME DO ARQUIVO
                                                        $foto_type = $_FILES["nomeCampo"]["type"];
A linguagem PHP
introdução à sintaxe | variáveis superg. | $_ENV

  •   $_ENV
                                                              $_ENV['SHELL'] = /bin/bash

      •
                                                              $_ENV['TMPDIR'] = /var/folders/kj/kjQ0yyueFIGcanhFcYS2Xk+++TI/-
          Tal como a $_SERVER fornece dados sobre o           Tmp-/
                                                              $_ENV['Apple_PubSub_Socket_Render'] = /tmp/launch-gRnkfD/
                                                              Render
          ambiente onde a Web application corre (servidor e   $_ENV['USER'] = alexkidd
                                                              $_ENV['COMMAND_MODE'] = legacy
          cliente)                                            $_ENV['SSH_AUTH_SOCK'] = /tmp/launch-G3tZvU/Listeners
                                                              $_ENV['__CF_USER_TEXT_ENCODING'] = 0x1F5:0:0
                                                              $_ENV['PATH'] = /usr/bin:/bin:/usr/sbin:/sbin
                                                              $_ENV['PWD'] = /
                                                              $_ENV['SHLVL'] = 1
                                                              $_ENV['HOME'] = /Users/alexkidd
                                                              $_ENV['DYLD_LIBRARY_PATH'] = /Applications/MAMP/Library/lib:
                                                              $_ENV['LOGNAME'] = alexkidd
                                                              $_ENV['DISPLAY'] = /tmp/launch-kgoYXi/:0
                                                              $_ENV['SECURITYSESSIONID'] = a21180
                                                              $_ENV['_'] = /Applications/MAMP/Library/bin/httpd
A linguagem PHP
introdução à sintaxe | variáveis superg. | $_SESSION

  •   $_SESSION

      •   Por vezes há a necessidade de ter uma variável cujo valor seja acessível em diversas páginas da

          mesma aplicação web - são as chamadas variáveis de sessão

             •    session_start() - inicia / continua sessão na página actual

             •    session_destroy() - destroi a sessão e respectivas variáveis




                                                                index.php



                                                                                             contactos.php
A linguagem PHP
introdução à sintaxe | constantes

  •   $_SESSION

      •   Valores que não são modificados ao longo da execução da aplicação - Valores Globais
A linguagem PHP
introdução à sintaxe | $_COOKIES

  •   $_COOKIES

      •   Por vezes há a necessidade de guardar uma variável do lado do cliente. Tal pode ser feito com

          recurso a um cookie. Desta forma, o valor desta pode ser recuperado mesmo depois do utilizador

          desligar o seu computador (desde que não elimine os cookies do browser...)
A linguagem PHP
introdução à sintaxe | variáveis | tipos (1/2)
  •   Boolean

         •      true ou false; 1 ou 0;

  •   Numbers

         •      Operadores: + - * / ++ --

  •   String

         •      ‘ ‘ (single-quoted) - não processa nenhum código interno

         •      “ “ (double-quoted) - processa código interno

         •      <<< EOT ... EOT;

         •      Operadores: . (ponto, para concatenar strings)

                   •     Ex. $nomeCompleto = $primeiroNome . $ultimoNome ;
A linguagem PHP
introdução à sintaxe | variáveis | tipos (2/2)
  •   Arrays

        •       Funções úteis

               •    unset()

               •    print_r()

  •   Objects

  •   Resources

  •   NULL
A linguagem PHP
introdução à sintaxe | variáveis | funções para tipos
  •   Eis algumas funções verificadoras de tipo de dados (retorna uma variável booleana)



         •    is_bool()

         •    is_numeric()

         •    is_float()

         •    is_int()

         •    is_string()

         •    is_object()

         •    is_array()



  •   No caso do programador querer simplesmente saber qual o tipo:

         •    echo gettype ($variavel);
A linguagem PHP
introdução à sintaxe | variáveis | arrays

  •   Os arrays podem ser associativos, numéricos ou multidimensionais
A linguagem PHP
introdução à sintaxe | variáveis | arrays associativos
A linguagem PHP
introdução à sintaxe | variáveis | arrays numéricos
A linguagem PHP
introdução à sintaxe | variáveis | arrays multidim.
A linguagem PHP
introdução à sintaxe | variáveis | arrays
A linguagem PHP
introdução à sintaxe | variáveis | arrays | funções
  •   count() || sizeof()

  •   array_push()

  •   array_rand()

  •   in_array()

  •   ...
A linguagem PHP
introdução à sintaxe | estrutura de controle | IF
  •   Condicional - IF
A linguagem PHP
introdução à sintaxe | estrutura de controle | IF
  •   Condicional - IF (alternativas)
A linguagem PHP
introdução à sintaxe | estrutura de controle | IF ELSE
  •   Condicional - IF ELSE
A linguagem PHP
introdução à sintaxe | estrutura de controle | Switch
A linguagem PHP
introdução à sintaxe | operadores de atribuição
A linguagem PHP
introdução à sintaxe | operadores lógicos
A linguagem PHP
introdução à sintaxe | operadores de comparação
A linguagem PHP
introdução à sintaxe | estrutura de controle | Ciclos
  •   While
A linguagem PHP
introdução à sintaxe | estrutura de controle | Ciclos
  •   Do
A linguagem PHP
introdução à sintaxe | estrutura de controle | Ciclos
  •   For
A linguagem PHP
introdução à sintaxe | estrutura de controle | Ciclos
  •   Foreach




  •   Pode ser interrompido em qualquer momento com o comando break;
A linguagem PHP
introdução à sintaxe | funções (que retornam)
  •   Function
A linguagem PHP
introdução à sintaxe | funções (procedimento)
  •   Function
A linguagem PHP
Formulários e $_POST

            formulário.php




                             processa.php
A linguagem PHP
Formulários e $_GET

           formulário.php

                                                     Atenção ao envio de
                                                   informação privada pois
                                                        ficará exposta!!




      http://www.esap.edu.pt/processa.php?nome=Tonecas&idade=37


                              processa.php
A linguagem PHP
Querystrings e $_GET

     cria_query.php




                      processa.php
A linguagem PHP
redireccionamento
A linguagem PHP
envio de e-mail simples
A linguagem PHP
upload de ficheiros (1/3)

                     formulário.php
A linguagem PHP
upload de ficheiros (2/3)

                           upload_file.php
A linguagem PHP
upload de ficheiros (3/3)

  •   Validação dos ficheiros enviados   upload_file.php
A linguagem PHP
manipulação de imagens (GD)
A linguagem PHP
manipulação de imagens (GD)
A linguagem PHP
SSI - server side include
  •   No PHP é possível incluir o conteúdo de um ficheiro .php dentro de outro do lado do servidor, antes deste ser

      processado;



  •   Torna-se assim possível não repetir código e, consequentemente, melhorar a organização de toda a aplicação;

  •   O PHP oferece ao programador duas funções para o fazer:

         •    include() (ou include_once() para, caso já tenha sido incluido, não o volte a fazer)

         •    require() (ou require_once() para, caso já tenha sido incluido, não o volte a fazer)



  •   A maior diferença entre ambas é que a require() interrompe o script principal exista algum erro no ficheiro a

      incluir, enquanto que a include() não.
A linguagem PHP
datas

 •   A função Date() serve para formatar convenientemente uma data em PHP;

     •   d - representa o dia do mês (01 a 31)

     •   m - representa o número do mês (01 a 12)

     •   Y - representa o ano (com quatro dígitos)
A linguagem PHP
introdução à sintaxe | OOP
  •   Classes



      •   new

          •     Cria uma nova instância de uma classe



      •   $this

          •     referência ao objecto que chamou



      •   parent

              •     referência a classe extendida
A linguagem PHP
introdução à sintaxe | OOP
  •   Classes



      •   ->

          •     acesso aos membros da instância



      •   ::

          •     Acesso aos membros da classe



      •   extends

               •    Faz uma classe herdar as propriedades e métodos de outra
A linguagem PHP
introdução à sintaxe | OOP
  •   Classes



      •   __construct

          •     Contrutor da classe, chamado quando se usa new Classe()



      •   __destruct

          •     Destrutor da Classe

Linguagem PHP para principiantes

  • 1.
    PHP programação server-side www.w3schools.com/php/php_intro.asp www.php.net
  • 2.
    Introdução o ambiente dedesenvolvimento open-source • Máquina Virtual (virtualbox) • Sistema operativo Debian 5 • Suite de aplicações de servidor xampp • Apache (servidor web) • PHP (interpretador de comandos) • MySQL (SGBD relacional) • ProFTP (servidor ftp) • ... • O xampp pode ser descarregado aqui > http://www.apachefriends.org/en/xampp.html
  • 3.
    Introdução o ambiente dedesenvolvimento open-source
  • 4.
    Introdução o ambiente dedesenvolvimento open-source • Debian: • Utilizador: aluno • Password: esap (a mesma de root) • Pasta dos ficheiros do servidor apache: • /opt/lampp/htdocs
  • 5.
    Introdução páginas estáticas vsdinâmicas | páginas estáticas Uma página estática para a Web é uma página cujos conteúdos foram completamente determinados pelo seu autor. Quer isto dizer que o conteúdo e o aspecto dessa página é sempre o mesmo, independentemente de quem visita a página, quando a visita ou como a visita. Essencialmente, consiste num ficheiro HTML que se encontra publicado num servidor Web.
  • 6.
    Introdução páginas estáticas vsdinâmicas | páginas estáticas | limitações deste tipo de página • Não é possível personalizar a página para o utilizador que a está a visualizar de modo a que esta varie ao longo do tempo de acordo com o modo como está a ser visualizada... seria portanto impossível haver websites ao estilo da web 2.0 (artigos de jornais com comentários quase em tempo real, upload de vídeos, blogs, etc... • Alterações nos seus conteúdos ou aspecto só podem ser efectuados através da edição do próprio código HTML pedido de ficheiro html B resposta browser cliente
  • 7.
    Introdução páginas estáticas vsdinâmicas | páginas dinâmicas • Uma página dinâmica para a Web é uma página cujos conteúdos não são determinados no seu estado inicial (isto é, quando é publicada pelo autor); o conteúdo final da página é determinado após um utilizador executar um pedido da mesma ao servidor Web através de um browser; • Os conteúdos e aspecto das páginas pode variar de pedido para pedido; • Para tornar as páginas dinâmicas é necessário substituir algumas partes (ou a totalidade) do código HTML por uma outra linguagem. No momento em que existe um pedido de acesso à página, estas instruções são executadas / processadas pelo servidor e é então gerada a página final servidor pedido html processamento B resposta browser cliente
  • 8.
    Introdução funcionamento modelo cliente-servidor(dynamic) 1. O cliente envia um pedido (GET ou POST) ao servidor (Apache) 2. O Apache processa o pedido com ajuda da biblioteca de PHP 1. Caso seja necessário, efectua queries no sgbd (mysql) 3. Por último, o Apache responde com um documento html contendo o resultado do pedido do cliente. servidor pedido html processamento B resposta browser cliente
  • 9.
    Introdução funcionamento modelo cliente-servidor(dynamic) servidor pedido html processamento B resposta browser cliente
  • 10.
    A linguagem PHP história... • 1995 • Rasmus Lerdorf desenvolve Script Perl/CGI (contador de visitantes da sua página) • Oferece Script sob o nome – Personal Home Page • 1997 • PHP 2.0 • Personal Home Page/Form Interpreter • Popularidade cresce exponencialmente • Desenvolve-se uma comunidade de programadores/utilizadores • 1998 • PHP 3.0 --> 1999 + 1 milhão de utilizadores • 2000 • PHP 4.0 PHP: Hypertext Preprocessor • Motor/Parser reescrito - Zend Engine • Gestão Recursos, OOP, Gestão de Sessões, Encrypt, ISAPI, JAVA, • 2004 • PHP 5.0 • Maior suporte a OOP - Desenvolvimento de Frameworks (ZEND) • Suporte a XML, Web Services (SOAP), … • Utilizada em mais de 20 milhões de domínios…
  • 11.
    A linguagem PHP porquêPHP e não ASP, JSP ou outra? • Custos (gratuito!) • Disponível para diversas plataformas (Linux, Unix, Windows, Mac OS X) • Funciona com os servidores web mais famosos (Apache em Linux, MS IIS em Windows) • Suporta maioria dos SGBDs (MySQL, PostegreSQL, Oracle, MS-SQL, ODBC...) • Fácil integração noutros serviços de rede: • LDAP, IMAP, SNMP, HTTP, POP3, Sockets... • Linguagem (sintaxe) simples, principalmente para quem já programou em C; • Fácil de começar • Boa documentação em português (open source) • Comunidade enorme!
  • 12.
    A linguagem PHP oque podemos fazer com ela? • Recolher e processar dados de formulários • Criar conteúdos dinâmicos, ligados a bases de dados • Enviar e receber cookies • Criar sessões no navegador • Criar imagens dinamicamente (biblioteca GD) • Gerar ficheiros PDF • Gerar qualquer tipo de ficheiros de texto (XML, CSV, .XLS) • Interagir com a shell do sistema operativo (copiar ficheiros, criar pastas, mudar permissões, fazer backups...) • Criar e “consumir” web-services • etc. etc. etc...
  • 13.
    A linguagem PHP bonsexemplos de onde ela está actualmente
  • 14.
    A linguagem PHP introduçãoà sintaxe | delimitadores (e echo!)
  • 15.
    A linguagem PHP introduçãoà sintaxe | comentários
  • 16.
    A linguagem PHP introduçãoà sintaxe | variáveis regulares • Representadas pelo símbolo $ seguido de uma ou mais letras • Ex. $login $passwd $cor_preferida $preferencia • O PHP é case sensitive, ou seja, faz distinção entre maiusculas e minusculas no nome da variável • $nome != $NoMe • Não é necessário declarar (inicializar) as variáveis no topo do documento nem o seu tipo (é dinâmico)
  • 17.
    A linguagem PHP introduçãoà sintaxe | variáveis superglobais • $_SERVER • Fornece dados sobre o ambiente em que a Web application corre (servidor) • $_FILES • Dados sobre os ficheiros transferidos para o servidor pelo método POST • $_ENV • Tal como a $_SERVER fornece dados sobre o ambiente onde a Web application corre (servidor e cliente) • $_SESSION • Guarda os dados de todas as variáveis de sessão dum utilizador
  • 18.
    A linguagem PHP introduçãoà sintaxe | variáveis superg. | $_SERVER • $_SERVER $_SERVER['HTTP_HOST'] = aulas $_SERVER['HTTP_USER_AGENT'] = Mozilla/5.0 (Macintosh; U; Intel • Mac OS X 10.5; pt-PT; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 Fornece dados sobre o ambiente em que a Web $_SERVER['HTTP_ACCEPT'] = text/html,application/xhtml +xml,application/xml;q=0.9,*/*;q=0.8 $_SERVER['HTTP_ACCEPT_LANGUAGE'] = pt,pt-br;q=0.8,en- application corre (servidor) us;q=0.5,en;q=0.3 $_SERVER['HTTP_ACCEPT_ENCODING'] = gzip,deflate $_SERVER['HTTP_ACCEPT_CHARSET'] = ISO-8859-1,utf-8;q=0.7,*;q=0.7 $_SERVER['HTTP_KEEP_ALIVE'] = 300 $_SERVER['HTTP_CONNECTION'] = keep-alive $_SERVER['PATH'] = /usr/bin:/bin:/usr/sbin:/sbin $_SERVER['SERVER_SIGNATURE'] = $_SERVER['SERVER_SOFTWARE'] = Apache $_SERVER['SERVER_NAME'] = aulas $_SERVER['SERVER_ADDR'] = 127.0.0.1 $_SERVER['SERVER_PORT'] = 80 $_SERVER['REMOTE_ADDR'] = 127.0.0.1 $_SERVER['DOCUMENT_ROOT'] = /Applications/MAMP/htdocs/ aulas_php $_SERVER['SERVER_ADMIN'] = marcoalexpinheiro@gmail.com $_SERVER['SCRIPT_FILENAME'] = /Applications/MAMP/htdocs/ aulas_php/index.php $_SERVER['REMOTE_PORT'] = 63113 $_SERVER['GATEWAY_INTERFACE'] = CGI/1.1 $_SERVER['SERVER_PROTOCOL'] = HTTP/1.1 $_SERVER['REQUEST_METHOD'] = GET $_SERVER['QUERY_STRING'] = $_SERVER['REQUEST_URI'] = / $_SERVER['SCRIPT_NAME'] = /index.php $_SERVER['PHP_SELF'] = /index.php $_SERVER['REQUEST_TIME'] = 1254769862 $_SERVER['argv'] = Array $_SERVER['argc'] = 0
  • 19.
    A linguagem PHP introduçãoà sintaxe | variáveis superg. | $_FILES • $_FILES • Dados sobre os ficheiros transferidos para o $foto_temp = $_FILES["nomeCampo"]["tmp_name"]; //NOME DO ARQUIVO NA MÁQUINA DO USUÁRIO servidor pelo método POST $foto_name = $_FILES["nomeCampo"]["name"]; //TAMANHO DO ARQUIVO $foto_size = $_FILES["nomeCampo"]["size"]; //TIPO MIME DO ARQUIVO $foto_type = $_FILES["nomeCampo"]["type"];
  • 20.
    A linguagem PHP introduçãoà sintaxe | variáveis superg. | $_ENV • $_ENV $_ENV['SHELL'] = /bin/bash • $_ENV['TMPDIR'] = /var/folders/kj/kjQ0yyueFIGcanhFcYS2Xk+++TI/- Tal como a $_SERVER fornece dados sobre o Tmp-/ $_ENV['Apple_PubSub_Socket_Render'] = /tmp/launch-gRnkfD/ Render ambiente onde a Web application corre (servidor e $_ENV['USER'] = alexkidd $_ENV['COMMAND_MODE'] = legacy cliente) $_ENV['SSH_AUTH_SOCK'] = /tmp/launch-G3tZvU/Listeners $_ENV['__CF_USER_TEXT_ENCODING'] = 0x1F5:0:0 $_ENV['PATH'] = /usr/bin:/bin:/usr/sbin:/sbin $_ENV['PWD'] = / $_ENV['SHLVL'] = 1 $_ENV['HOME'] = /Users/alexkidd $_ENV['DYLD_LIBRARY_PATH'] = /Applications/MAMP/Library/lib: $_ENV['LOGNAME'] = alexkidd $_ENV['DISPLAY'] = /tmp/launch-kgoYXi/:0 $_ENV['SECURITYSESSIONID'] = a21180 $_ENV['_'] = /Applications/MAMP/Library/bin/httpd
  • 21.
    A linguagem PHP introduçãoà sintaxe | variáveis superg. | $_SESSION • $_SESSION • Por vezes há a necessidade de ter uma variável cujo valor seja acessível em diversas páginas da mesma aplicação web - são as chamadas variáveis de sessão • session_start() - inicia / continua sessão na página actual • session_destroy() - destroi a sessão e respectivas variáveis index.php contactos.php
  • 22.
    A linguagem PHP introduçãoà sintaxe | constantes • $_SESSION • Valores que não são modificados ao longo da execução da aplicação - Valores Globais
  • 23.
    A linguagem PHP introduçãoà sintaxe | $_COOKIES • $_COOKIES • Por vezes há a necessidade de guardar uma variável do lado do cliente. Tal pode ser feito com recurso a um cookie. Desta forma, o valor desta pode ser recuperado mesmo depois do utilizador desligar o seu computador (desde que não elimine os cookies do browser...)
  • 24.
    A linguagem PHP introduçãoà sintaxe | variáveis | tipos (1/2) • Boolean • true ou false; 1 ou 0; • Numbers • Operadores: + - * / ++ -- • String • ‘ ‘ (single-quoted) - não processa nenhum código interno • “ “ (double-quoted) - processa código interno • <<< EOT ... EOT; • Operadores: . (ponto, para concatenar strings) • Ex. $nomeCompleto = $primeiroNome . $ultimoNome ;
  • 25.
    A linguagem PHP introduçãoà sintaxe | variáveis | tipos (2/2) • Arrays • Funções úteis • unset() • print_r() • Objects • Resources • NULL
  • 26.
    A linguagem PHP introduçãoà sintaxe | variáveis | funções para tipos • Eis algumas funções verificadoras de tipo de dados (retorna uma variável booleana) • is_bool() • is_numeric() • is_float() • is_int() • is_string() • is_object() • is_array() • No caso do programador querer simplesmente saber qual o tipo: • echo gettype ($variavel);
  • 27.
    A linguagem PHP introduçãoà sintaxe | variáveis | arrays • Os arrays podem ser associativos, numéricos ou multidimensionais
  • 28.
    A linguagem PHP introduçãoà sintaxe | variáveis | arrays associativos
  • 29.
    A linguagem PHP introduçãoà sintaxe | variáveis | arrays numéricos
  • 30.
    A linguagem PHP introduçãoà sintaxe | variáveis | arrays multidim.
  • 31.
    A linguagem PHP introduçãoà sintaxe | variáveis | arrays
  • 32.
    A linguagem PHP introduçãoà sintaxe | variáveis | arrays | funções • count() || sizeof() • array_push() • array_rand() • in_array() • ...
  • 33.
    A linguagem PHP introduçãoà sintaxe | estrutura de controle | IF • Condicional - IF
  • 34.
    A linguagem PHP introduçãoà sintaxe | estrutura de controle | IF • Condicional - IF (alternativas)
  • 35.
    A linguagem PHP introduçãoà sintaxe | estrutura de controle | IF ELSE • Condicional - IF ELSE
  • 36.
    A linguagem PHP introduçãoà sintaxe | estrutura de controle | Switch
  • 37.
    A linguagem PHP introduçãoà sintaxe | operadores de atribuição
  • 38.
    A linguagem PHP introduçãoà sintaxe | operadores lógicos
  • 39.
    A linguagem PHP introduçãoà sintaxe | operadores de comparação
  • 40.
    A linguagem PHP introduçãoà sintaxe | estrutura de controle | Ciclos • While
  • 41.
    A linguagem PHP introduçãoà sintaxe | estrutura de controle | Ciclos • Do
  • 42.
    A linguagem PHP introduçãoà sintaxe | estrutura de controle | Ciclos • For
  • 43.
    A linguagem PHP introduçãoà sintaxe | estrutura de controle | Ciclos • Foreach • Pode ser interrompido em qualquer momento com o comando break;
  • 44.
    A linguagem PHP introduçãoà sintaxe | funções (que retornam) • Function
  • 45.
    A linguagem PHP introduçãoà sintaxe | funções (procedimento) • Function
  • 46.
    A linguagem PHP Formuláriose $_POST formulário.php processa.php
  • 47.
    A linguagem PHP Formuláriose $_GET formulário.php Atenção ao envio de informação privada pois ficará exposta!! http://www.esap.edu.pt/processa.php?nome=Tonecas&idade=37 processa.php
  • 48.
    A linguagem PHP Querystringse $_GET cria_query.php processa.php
  • 49.
  • 50.
    A linguagem PHP enviode e-mail simples
  • 51.
    A linguagem PHP uploadde ficheiros (1/3) formulário.php
  • 52.
    A linguagem PHP uploadde ficheiros (2/3) upload_file.php
  • 53.
    A linguagem PHP uploadde ficheiros (3/3) • Validação dos ficheiros enviados upload_file.php
  • 54.
  • 55.
  • 56.
    A linguagem PHP SSI- server side include • No PHP é possível incluir o conteúdo de um ficheiro .php dentro de outro do lado do servidor, antes deste ser processado; • Torna-se assim possível não repetir código e, consequentemente, melhorar a organização de toda a aplicação; • O PHP oferece ao programador duas funções para o fazer: • include() (ou include_once() para, caso já tenha sido incluido, não o volte a fazer) • require() (ou require_once() para, caso já tenha sido incluido, não o volte a fazer) • A maior diferença entre ambas é que a require() interrompe o script principal exista algum erro no ficheiro a incluir, enquanto que a include() não.
  • 57.
    A linguagem PHP datas • A função Date() serve para formatar convenientemente uma data em PHP; • d - representa o dia do mês (01 a 31) • m - representa o número do mês (01 a 12) • Y - representa o ano (com quatro dígitos)
  • 58.
    A linguagem PHP introduçãoà sintaxe | OOP • Classes • new • Cria uma nova instância de uma classe • $this • referência ao objecto que chamou • parent • referência a classe extendida
  • 59.
    A linguagem PHP introduçãoà sintaxe | OOP • Classes • -> • acesso aos membros da instância • :: • Acesso aos membros da classe • extends • Faz uma classe herdar as propriedades e métodos de outra
  • 60.
    A linguagem PHP introduçãoà sintaxe | OOP • Classes • __construct • Contrutor da classe, chamado quando se usa new Classe() • __destruct • Destrutor da Classe