SlideShare uma empresa Scribd logo
1 de 60
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

Webservices e Computação em Nuvem com PHP
Webservices e Computação em Nuvem com PHPWebservices e Computação em Nuvem com PHP
Webservices e Computação em Nuvem com PHPFlávio Lisboa
 
Resumo Anotacoes JAX-WS Certificacao SCDJWS 5
Resumo Anotacoes JAX-WS Certificacao SCDJWS 5Resumo Anotacoes JAX-WS Certificacao SCDJWS 5
Resumo Anotacoes JAX-WS Certificacao SCDJWS 5Gilberto Holms
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHPFelipe Ribeiro
 
Cakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPCakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPArlindo Santos
 
Performance em Serviços Web - Vinicius Mello
Performance em Serviços Web - Vinicius MelloPerformance em Serviços Web - Vinicius Mello
Performance em Serviços Web - Vinicius MelloTchelinux
 
Navegadores por de baixo dos panos - Ana Luiza Bastos
Navegadores por de baixo dos panos - Ana Luiza BastosNavegadores por de baixo dos panos - Ana Luiza Bastos
Navegadores por de baixo dos panos - Ana Luiza BastosiMasters
 
CakePHP e o desenvolvimento rápido
CakePHP e o desenvolvimento rápidoCakePHP e o desenvolvimento rápido
CakePHP e o desenvolvimento rápidoIvan Rosolen
 
Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHPRangel Javier
 
Aula 1 - curso java web - JSP Java Server Page
Aula 1 - curso java web - JSP Java Server PageAula 1 - curso java web - JSP Java Server Page
Aula 1 - curso java web - JSP Java Server PageEvandro Júnior
 
Introdução ao Ruby on Rails
Introdução ao Ruby on RailsIntrodução ao Ruby on Rails
Introdução ao Ruby on RailsJuan Maiz
 
Java Web 5 - JSP, Expression Language e Taglibs
Java Web 5 - JSP, Expression Language e TaglibsJava Web 5 - JSP, Expression Language e Taglibs
Java Web 5 - JSP, Expression Language e TaglibsEduardo Mendes
 
Criando e consumindo Web Services (REST) com o CakePHP
Criando e consumindo Web Services (REST) com o CakePHPCriando e consumindo Web Services (REST) com o CakePHP
Criando e consumindo Web Services (REST) com o CakePHP2km interativa!
 
Web 2.0 e RIA com PHP
Web 2.0 e RIA com PHPWeb 2.0 e RIA com PHP
Web 2.0 e RIA com PHPAdler Medrado
 
Frontline - Rails3.1
Frontline - Rails3.1Frontline - Rails3.1
Frontline - Rails3.1Daniel Lopes
 

Mais procurados (20)

Webservices e Computação em Nuvem com PHP
Webservices e Computação em Nuvem com PHPWebservices e Computação em Nuvem com PHP
Webservices e Computação em Nuvem com PHP
 
Resumo Anotacoes JAX-WS Certificacao SCDJWS 5
Resumo Anotacoes JAX-WS Certificacao SCDJWS 5Resumo Anotacoes JAX-WS Certificacao SCDJWS 5
Resumo Anotacoes JAX-WS Certificacao SCDJWS 5
 
JSPs Introdução Parte 1
JSPs Introdução Parte 1JSPs Introdução Parte 1
JSPs Introdução Parte 1
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHP
 
Cakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPCakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHP
 
Curso de JSP
Curso de JSPCurso de JSP
Curso de JSP
 
Performance em Serviços Web - Vinicius Mello
Performance em Serviços Web - Vinicius MelloPerformance em Serviços Web - Vinicius Mello
Performance em Serviços Web - Vinicius Mello
 
Navegadores por de baixo dos panos - Ana Luiza Bastos
Navegadores por de baixo dos panos - Ana Luiza BastosNavegadores por de baixo dos panos - Ana Luiza Bastos
Navegadores por de baixo dos panos - Ana Luiza Bastos
 
HTML5 & CSS3
HTML5 & CSS3HTML5 & CSS3
HTML5 & CSS3
 
CakePHP e o desenvolvimento rápido
CakePHP e o desenvolvimento rápidoCakePHP e o desenvolvimento rápido
CakePHP e o desenvolvimento rápido
 
Java Web 1 Introducao
Java Web 1 IntroducaoJava Web 1 Introducao
Java Web 1 Introducao
 
Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHP
 
Aula 1 - curso java web - JSP Java Server Page
Aula 1 - curso java web - JSP Java Server PageAula 1 - curso java web - JSP Java Server Page
Aula 1 - curso java web - JSP Java Server Page
 
Web Sphere
Web SphereWeb Sphere
Web Sphere
 
Security & PHP
Security & PHPSecurity & PHP
Security & PHP
 
Introdução ao Ruby on Rails
Introdução ao Ruby on RailsIntrodução ao Ruby on Rails
Introdução ao Ruby on Rails
 
Java Web 5 - JSP, Expression Language e Taglibs
Java Web 5 - JSP, Expression Language e TaglibsJava Web 5 - JSP, Expression Language e Taglibs
Java Web 5 - JSP, Expression Language e Taglibs
 
Criando e consumindo Web Services (REST) com o CakePHP
Criando e consumindo Web Services (REST) com o CakePHPCriando e consumindo Web Services (REST) com o CakePHP
Criando e consumindo Web Services (REST) com o CakePHP
 
Web 2.0 e RIA com PHP
Web 2.0 e RIA com PHPWeb 2.0 e RIA com PHP
Web 2.0 e RIA com PHP
 
Frontline - Rails3.1
Frontline - Rails3.1Frontline - Rails3.1
Frontline - Rails3.1
 

Destaque (20)

Linguagem PHP
Linguagem PHPLinguagem PHP
Linguagem PHP
 
Sockets
SocketsSockets
Sockets
 
Pyhug zmq
Pyhug zmqPyhug zmq
Pyhug zmq
 
Aplicações Web Ricas e Acessíveis
Aplicações Web Ricas e AcessíveisAplicações Web Ricas e Acessíveis
Aplicações Web Ricas e Acessíveis
 
Aulas de Java Avançado 2- Faculdade iDez 2010
Aulas de Java Avançado 2- Faculdade iDez 2010Aulas de Java Avançado 2- Faculdade iDez 2010
Aulas de Java Avançado 2- Faculdade iDez 2010
 
Aula sockets
Aula socketsAula sockets
Aula sockets
 
Network programming
Network programmingNetwork programming
Network programming
 
Lidando com Erros - Android
Lidando com Erros - AndroidLidando com Erros - Android
Lidando com Erros - Android
 
Módulo-6-7-ip-com-sockets
Módulo-6-7-ip-com-socketsMódulo-6-7-ip-com-sockets
Módulo-6-7-ip-com-sockets
 
Tecnologia java para sockets
Tecnologia java para socketsTecnologia java para sockets
Tecnologia java para sockets
 
Linguagem C 06 Funcoes
Linguagem C 06 FuncoesLinguagem C 06 Funcoes
Linguagem C 06 Funcoes
 
Redes 1 - Sockets em C#
Redes 1 - Sockets em C#Redes 1 - Sockets em C#
Redes 1 - Sockets em C#
 
Socket programming with php
Socket programming with phpSocket programming with php
Socket programming with php
 
correção Ficha 4,5,6,e 7
correção Ficha 4,5,6,e 7correção Ficha 4,5,6,e 7
correção Ficha 4,5,6,e 7
 
Programming TCP/IP with Sockets
Programming TCP/IP with SocketsProgramming TCP/IP with Sockets
Programming TCP/IP with Sockets
 
Basic socket programming
Basic socket programmingBasic socket programming
Basic socket programming
 
Socket programming
Socket programmingSocket programming
Socket programming
 
O nome da rosa (filme) trabalho
O nome da rosa (filme)   trabalhoO nome da rosa (filme)   trabalho
O nome da rosa (filme) trabalho
 
Socket Programming Tutorial
Socket Programming TutorialSocket Programming Tutorial
Socket Programming Tutorial
 
Curso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP BásicoCurso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP Básico
 

Semelhante a Linguagem PHP para principiantes

4. Introdução ao PHP.pdf
4. Introdução ao PHP.pdf4. Introdução ao PHP.pdf
4. Introdução ao PHP.pdfRubenManhia
 
Uma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web APIUma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web APIComunidade NetPonto
 
Introdução a programação para a Internet
Introdução a programação para a InternetIntrodução a programação para a Internet
Introdução a programação para a InternetLeonardo Soares
 
Ebook Apache Server: Guia Introdutório
Ebook Apache Server: Guia IntrodutórioEbook Apache Server: Guia Introdutório
Ebook Apache Server: Guia IntrodutórioFernando Palma
 
Curso PHP - 1a. Aula (2013.2)
Curso PHP - 1a. Aula (2013.2)Curso PHP - 1a. Aula (2013.2)
Curso PHP - 1a. Aula (2013.2)Jonata Weber
 
Curso de WebServlets (Java EE 7)
Curso de WebServlets (Java EE 7)Curso de WebServlets (Java EE 7)
Curso de WebServlets (Java EE 7)Helder da Rocha
 
Conhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkConhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkMario Guedes
 
1 serviços de-rede-dns-dhcp-web
1 serviços de-rede-dns-dhcp-web1 serviços de-rede-dns-dhcp-web
1 serviços de-rede-dns-dhcp-webangelnisia
 
Técnicas de Programação para a Web
Técnicas de Programação para a WebTécnicas de Programação para a Web
Técnicas de Programação para a WebLuiz Cláudio Silva
 
De Web Services RESTful a Aplicações Mashup
De Web Services RESTful a Aplicações MashupDe Web Services RESTful a Aplicações Mashup
De Web Services RESTful a Aplicações MashupWagner Roberto dos Santos
 
Servlet jsp tomcat 8
Servlet jsp tomcat 8Servlet jsp tomcat 8
Servlet jsp tomcat 8maxrosan
 
Construindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS LambdaConstruindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS LambdaAmazon Web Services LATAM
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev IntroduçãoMarcio Marinho
 
FISL12. Web Services e Computação em Nuvem com PHP
FISL12. Web Services e Computação em Nuvem com PHPFISL12. Web Services e Computação em Nuvem com PHP
FISL12. Web Services e Computação em Nuvem com PHPFlávio Lisboa
 

Semelhante a Linguagem PHP para principiantes (20)

4. Introdução ao PHP.pdf
4. Introdução ao PHP.pdf4. Introdução ao PHP.pdf
4. Introdução ao PHP.pdf
 
Rest workshop
Rest workshopRest workshop
Rest workshop
 
Uma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web APIUma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web API
 
Introdução a programação para a Internet
Introdução a programação para a InternetIntrodução a programação para a Internet
Introdução a programação para a Internet
 
Php
PhpPhp
Php
 
Ebook Apache Server: Guia Introdutório
Ebook Apache Server: Guia IntrodutórioEbook Apache Server: Guia Introdutório
Ebook Apache Server: Guia Introdutório
 
06 - Servidor Apache
06 - Servidor Apache06 - Servidor Apache
06 - Servidor Apache
 
Curso PHP - 1a. Aula (2013.2)
Curso PHP - 1a. Aula (2013.2)Curso PHP - 1a. Aula (2013.2)
Curso PHP - 1a. Aula (2013.2)
 
Curso de WebServlets (Java EE 7)
Curso de WebServlets (Java EE 7)Curso de WebServlets (Java EE 7)
Curso de WebServlets (Java EE 7)
 
Conhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkConhecendo o Novo REST Framework
Conhecendo o Novo REST Framework
 
1 serviços de-rede-dns-dhcp-web
1 serviços de-rede-dns-dhcp-web1 serviços de-rede-dns-dhcp-web
1 serviços de-rede-dns-dhcp-web
 
Aplicações web parte 1
Aplicações web parte 1Aplicações web parte 1
Aplicações web parte 1
 
Técnicas de Programação para a Web
Técnicas de Programação para a WebTécnicas de Programação para a Web
Técnicas de Programação para a Web
 
De Web Services RESTful a Aplicações Mashup
De Web Services RESTful a Aplicações MashupDe Web Services RESTful a Aplicações Mashup
De Web Services RESTful a Aplicações Mashup
 
Servlet jsp tomcat 8
Servlet jsp tomcat 8Servlet jsp tomcat 8
Servlet jsp tomcat 8
 
PHP 5.3 - Introdução
PHP 5.3 - IntroduçãoPHP 5.3 - Introdução
PHP 5.3 - Introdução
 
Construindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS LambdaConstruindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS Lambda
 
Apache
ApacheApache
Apache
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev Introdução
 
FISL12. Web Services e Computação em Nuvem com PHP
FISL12. Web Services e Computação em Nuvem com PHPFISL12. Web Services e Computação em Nuvem com PHP
FISL12. Web Services e Computação em Nuvem com PHP
 

Mais de Marco Pinheiro

SASS, Compass, Gulp, Greensock
SASS, Compass, Gulp, GreensockSASS, Compass, Gulp, Greensock
SASS, Compass, Gulp, GreensockMarco Pinheiro
 
Dicas para criação rápida de projectos WEB
Dicas para criação rápida de projectos WEBDicas para criação rápida de projectos WEB
Dicas para criação rápida de projectos WEBMarco Pinheiro
 
PHPMyadmin - Introdução
PHPMyadmin - IntroduçãoPHPMyadmin - Introdução
PHPMyadmin - IntroduçãoMarco Pinheiro
 
PHP - Queries a um SGBD MySQL
PHP - Queries a um SGBD MySQLPHP - Queries a um SGBD MySQL
PHP - Queries a um SGBD MySQLMarco Pinheiro
 
funcionamento da internet
funcionamento da internetfuncionamento da internet
funcionamento da internetMarco Pinheiro
 
Projecto de tese | Doutoramento em Ciências da Comunicação (UBI 2011)
Projecto de tese | Doutoramento em Ciências da Comunicação (UBI 2011)Projecto de tese | Doutoramento em Ciências da Comunicação (UBI 2011)
Projecto de tese | Doutoramento em Ciências da Comunicação (UBI 2011)Marco Pinheiro
 
Conceitos de Imagem digital
Conceitos de Imagem digitalConceitos de Imagem digital
Conceitos de Imagem digitalMarco Pinheiro
 
Linguagem SQL (com MySQL)
Linguagem SQL (com MySQL)Linguagem SQL (com MySQL)
Linguagem SQL (com MySQL)Marco Pinheiro
 
IPCOP - Firewalls para os comuns mortais
IPCOP - Firewalls para os comuns mortaisIPCOP - Firewalls para os comuns mortais
IPCOP - Firewalls para os comuns mortaisMarco Pinheiro
 

Mais de Marco Pinheiro (16)

SASS, Compass, Gulp, Greensock
SASS, Compass, Gulp, GreensockSASS, Compass, Gulp, Greensock
SASS, Compass, Gulp, Greensock
 
Dicas para criação rápida de projectos WEB
Dicas para criação rápida de projectos WEBDicas para criação rápida de projectos WEB
Dicas para criação rápida de projectos WEB
 
curso de CSS
curso de CSScurso de CSS
curso de CSS
 
PHP e Mysql - INSERT
PHP e Mysql - INSERTPHP e Mysql - INSERT
PHP e Mysql - INSERT
 
PHP e Mysql - INSERT
PHP e Mysql - INSERTPHP e Mysql - INSERT
PHP e Mysql - INSERT
 
PHP e Mysql - UPDATE
PHP e Mysql - UPDATEPHP e Mysql - UPDATE
PHP e Mysql - UPDATE
 
PHP e Mysql - DELETE
PHP e Mysql - DELETEPHP e Mysql - DELETE
PHP e Mysql - DELETE
 
PHPMyadmin - Introdução
PHPMyadmin - IntroduçãoPHPMyadmin - Introdução
PHPMyadmin - Introdução
 
PHP e Mysql - SELECT
PHP e Mysql - SELECTPHP e Mysql - SELECT
PHP e Mysql - SELECT
 
PHP - Queries a um SGBD MySQL
PHP - Queries a um SGBD MySQLPHP - Queries a um SGBD MySQL
PHP - Queries a um SGBD MySQL
 
Curso de XHTML
Curso de XHTMLCurso de XHTML
Curso de XHTML
 
funcionamento da internet
funcionamento da internetfuncionamento da internet
funcionamento da internet
 
Projecto de tese | Doutoramento em Ciências da Comunicação (UBI 2011)
Projecto de tese | Doutoramento em Ciências da Comunicação (UBI 2011)Projecto de tese | Doutoramento em Ciências da Comunicação (UBI 2011)
Projecto de tese | Doutoramento em Ciências da Comunicação (UBI 2011)
 
Conceitos de Imagem digital
Conceitos de Imagem digitalConceitos de Imagem digital
Conceitos de Imagem digital
 
Linguagem SQL (com MySQL)
Linguagem SQL (com MySQL)Linguagem SQL (com MySQL)
Linguagem SQL (com MySQL)
 
IPCOP - Firewalls para os comuns mortais
IPCOP - Firewalls para os comuns mortaisIPCOP - Firewalls para os comuns mortais
IPCOP - Firewalls para os comuns mortais
 

Último

Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfEditoraEnovus
 
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxkarinedarozabatista
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasCassio Meira Jr.
 
A experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxA experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxfabiolalopesmartins1
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Mary Alvarenga
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalJacqueline Cerqueira
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasCassio Meira Jr.
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdfJorge Andrade
 
Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.keislayyovera123
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfaulasgege
 
Regência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfRegência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfmirandadudu08
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024Jeanoliveira597523
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxOsnilReis1
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasRosalina Simão Nunes
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditaduraAdryan Luiz
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Centro Jacques Delors
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinhaMary Alvarenga
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?Rosalina Simão Nunes
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOColégio Santa Teresinha
 

Último (20)

Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdf
 
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e Específicas
 
A experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxA experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptx
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem Organizacional
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades Motoras
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf
 
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
 
Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdf
 
Regência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfRegência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdf
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditadura
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinha
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
 

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 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
  • 3. Introdução o ambiente de desenvolvimento open-source
  • 4. 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
  • 5. 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.
  • 6. 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
  • 7. 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
  • 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 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...
  • 13. A linguagem PHP bons exemplos 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ários e $_POST formulário.php processa.php
  • 47. 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
  • 48. A linguagem PHP Querystrings e $_GET cria_query.php processa.php
  • 50. A linguagem PHP envio de e-mail simples
  • 51. A linguagem PHP upload de ficheiros (1/3) formulário.php
  • 52. A linguagem PHP upload de ficheiros (2/3) upload_file.php
  • 53. A linguagem PHP upload de ficheiros (3/3) • Validação dos ficheiros enviados upload_file.php
  • 54. A linguagem PHP manipulação de imagens (GD)
  • 55. A linguagem PHP manipulação de imagens (GD)
  • 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