60
PHP programação server-side www.w3schools.com/php/php_intro.asp www.php.net

Linguagem PHP para principiantes

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 2: Linguagem PHP para principiantes

• 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çãoo ambiente de desenvolvimento open-source

Page 3: Linguagem PHP para principiantes

Introduçãoo ambiente de desenvolvimento open-source

Page 4: Linguagem PHP para principiantes

• Debian:

• Utilizador: aluno

• Password: esap (a mesma de root)

• Pasta dos ficheiros do servidor apache:

• /opt/lampp/htdocs

Introduçãoo ambiente de desenvolvimento open-source

Page 5: Linguagem PHP para principiantes

Introduçãopá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.

Page 6: Linguagem PHP para principiantes

Introduçãopá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

resposta

pedido de ficheiro

B

browser cliente

html

Page 7: Linguagem PHP para principiantes

Introduçãopá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

resposta

pedido

servidor

B

browser cliente

htmlprocessamento

Page 8: Linguagem PHP para principiantes

Introduçãofuncionamento 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.

resposta

pedido

servidor

B

browser cliente

htmlprocessamento

Page 9: Linguagem PHP para principiantes

Introduçãofuncionamento modelo cliente-servidor (dynamic)

resposta

pedido

servidor

B

browser cliente

htmlprocessamento

Page 10: Linguagem PHP para principiantes

• 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 PHPhistória...

Page 11: Linguagem PHP para principiantes

A linguagem PHPporquê 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!

Page 12: Linguagem PHP para principiantes

A linguagem PHPo 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...

Page 13: Linguagem PHP para principiantes

A linguagem PHPbons exemplos de onde ela está actualmente

Page 14: Linguagem PHP para principiantes

A linguagem PHPintrodução à sintaxe | delimitadores (e echo!)

Page 15: Linguagem PHP para principiantes

A linguagem PHPintrodução à sintaxe | comentários

Page 16: Linguagem PHP para principiantes

A linguagem PHPintroduçã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)

Page 17: Linguagem PHP para principiantes

A linguagem PHPintroduçã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

Page 18: Linguagem PHP para principiantes

A linguagem PHPintrodução à sintaxe | variáveis superg. | $_SERVER

• $_SERVER

• Fornece dados sobre o ambiente em que a Web

application corre (servidor)

$_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$_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-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'] = [email protected]$_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

Page 19: Linguagem PHP para principiantes

A linguagem PHPintrodução à sintaxe | variáveis superg. | $_FILES

• $_FILES

• Dados sobre os ficheiros transferidos para o

servidor pelo método POST

$foto_temp = $_FILES["nomeCampo"]["tmp_name"];

//NOME DO ARQUIVO NA MÁQUINA DO USUÁRIO$foto_name = $_FILES["nomeCampo"]["name"];

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

//TIPO MIME DO ARQUIVO$foto_type = $_FILES["nomeCampo"]["type"];

Page 20: Linguagem PHP para principiantes

A linguagem PHPintrodução à sintaxe | variáveis superg. | $_ENV

• $_ENV

• Tal como a $_SERVER fornece dados sobre o

ambiente onde a Web application corre (servidor e

cliente)

$_ENV['SHELL'] = /bin/bash$_ENV['TMPDIR'] = /var/folders/kj/kjQ0yyueFIGcanhFcYS2Xk+++TI/-Tmp-/$_ENV['Apple_PubSub_Socket_Render'] = /tmp/launch-gRnkfD/Render$_ENV['USER'] = alexkidd$_ENV['COMMAND_MODE'] = legacy$_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

Page 21: Linguagem PHP para principiantes

A linguagem PHPintroduçã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

Page 22: Linguagem PHP para principiantes

A linguagem PHPintrodução à sintaxe | constantes

• $_SESSION

• Valores que não são modificados ao longo da execução da aplicação - Valores Globais

Page 23: Linguagem PHP para principiantes

A linguagem PHPintroduçã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...)

Page 24: Linguagem PHP para principiantes

A linguagem PHPintroduçã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 ;

Page 25: Linguagem PHP para principiantes

A linguagem PHPintrodução à sintaxe | variáveis | tipos (2/2)

• Arrays

• Funções úteis

• unset()

• print_r()

• Objects

• Resources

• NULL

Page 26: Linguagem PHP para principiantes

A linguagem PHPintroduçã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);

Page 27: Linguagem PHP para principiantes

A linguagem PHPintrodução à sintaxe | variáveis | arrays

• Os arrays podem ser associativos, numéricos ou multidimensionais

Page 28: Linguagem PHP para principiantes

A linguagem PHPintrodução à sintaxe | variáveis | arrays associativos

Page 29: Linguagem PHP para principiantes

A linguagem PHPintrodução à sintaxe | variáveis | arrays numéricos

Page 30: Linguagem PHP para principiantes

A linguagem PHPintrodução à sintaxe | variáveis | arrays multidim.

Page 31: Linguagem PHP para principiantes

A linguagem PHPintrodução à sintaxe | variáveis | arrays

Page 32: Linguagem PHP para principiantes

A linguagem PHPintrodução à sintaxe | variáveis | arrays | funções

• count() || sizeof()

• array_push()

• array_rand()

• in_array()

• ...

Page 33: Linguagem PHP para principiantes

A linguagem PHPintrodução à sintaxe | estrutura de controle | IF

• Condicional - IF

Page 34: Linguagem PHP para principiantes

A linguagem PHPintrodução à sintaxe | estrutura de controle | IF

• Condicional - IF (alternativas)

Page 35: Linguagem PHP para principiantes

A linguagem PHPintrodução à sintaxe | estrutura de controle | IF ELSE

• Condicional - IF ELSE

Page 36: Linguagem PHP para principiantes

A linguagem PHPintrodução à sintaxe | estrutura de controle | Switch

Page 37: Linguagem PHP para principiantes

A linguagem PHPintrodução à sintaxe | operadores de atribuição

Page 38: Linguagem PHP para principiantes

A linguagem PHPintrodução à sintaxe | operadores lógicos

Page 39: Linguagem PHP para principiantes

A linguagem PHPintrodução à sintaxe | operadores de comparação

Page 40: Linguagem PHP para principiantes

A linguagem PHPintrodução à sintaxe | estrutura de controle | Ciclos

• While

Page 41: Linguagem PHP para principiantes

A linguagem PHPintrodução à sintaxe | estrutura de controle | Ciclos

• Do

Page 42: Linguagem PHP para principiantes

A linguagem PHPintrodução à sintaxe | estrutura de controle | Ciclos

• For

Page 43: Linguagem PHP para principiantes

A linguagem PHPintrodução à sintaxe | estrutura de controle | Ciclos

• Foreach

• Pode ser interrompido em qualquer momento com o comando break;

Page 44: Linguagem PHP para principiantes

A linguagem PHPintrodução à sintaxe | funções (que retornam)

• Function

Page 45: Linguagem PHP para principiantes

A linguagem PHPintrodução à sintaxe | funções (procedimento)

• Function

Page 46: Linguagem PHP para principiantes

A linguagem PHPFormulários e $_POST

formulário.php

processa.php

Page 47: Linguagem PHP para principiantes

A linguagem PHPFormulários e $_GET

formulário.php

processa.php

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

Atenção ao envio de informação privada pois

ficará exposta!!

Page 48: Linguagem PHP para principiantes

A linguagem PHPQuerystrings e $_GET

cria_query.php

processa.php

Page 49: Linguagem PHP para principiantes

A linguagem PHPredireccionamento

Page 50: Linguagem PHP para principiantes

A linguagem PHPenvio de e-mail simples

Page 51: Linguagem PHP para principiantes

A linguagem PHPupload de ficheiros (1/3)

formulário.php

Page 52: Linguagem PHP para principiantes

A linguagem PHPupload de ficheiros (2/3)

upload_file.php

Page 53: Linguagem PHP para principiantes

A linguagem PHPupload de ficheiros (3/3)

upload_file.php• Validação dos ficheiros enviados

Page 54: Linguagem PHP para principiantes

A linguagem PHPmanipulação de imagens (GD)

Page 55: Linguagem PHP para principiantes

A linguagem PHPmanipulação de imagens (GD)

Page 56: Linguagem PHP para principiantes

A linguagem PHPSSI - 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.

Page 57: Linguagem PHP para principiantes

A linguagem PHPdatas

• 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)

Page 58: Linguagem PHP para principiantes

A linguagem PHPintroduçã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

Page 59: Linguagem PHP para principiantes

A linguagem PHPintroduçã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

Page 60: Linguagem PHP para principiantes

A linguagem PHPintrodução à sintaxe | OOP

• Classes

• __construct

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

• __destruct

• Destrutor da Classe