php - parte 1

Upload: claudio-azevedo-passos

Post on 10-Oct-2015

19 views

Category:

Documents


0 download

TRANSCRIPT

  • PHP

    PHP e a WWW

    Funcionamento do PHP

    PHP com Apache e MySQL

    XAMPP

    Material compilado da Internet

    Prof. Claudio Azevedo Passos

  • PHP e a WWW

    Pginas estticas / Pginas dinmicas

    O PHP permite a criao de pginas dinmicas.

  • Informao dinmica

    O que fazer quando a informao que est no website muda constantemente, como por exemplo as cotaes da bolsa?

    Neste caso, os documentos estticos em HTML no so a melhor soluo.

    necessrio criar HTML dinmico para que no momento em que o cliente contacta o servidor lhe seja enviada a informao atualizada.

  • PHP

    uma linguagem de programao vocacionada para o desenvolvimento de aplicaes orientadas para a www.

    Existem 2 tipos de linguagens web:

    - Baseadas no cliente (browser) (JavaScript, ActiveX, Java Applets, etc)

    - Baseadas no servidor. (PHP, ASP, etc)

  • PHP

    O cdigo PHP embebido no cdigo HTML dando

    origem a um script contendo instrues especficas.

    O servidor l o cdigo PHP e interpreta os

    comandos.

  • Exemplo 1

    Resultado

  • O que preciso para executar o PHP?

    Um cliente (browser)

    Um servidor Web (ex.: Apache)

    Um servidor de bases de dados (ex.: MySQL)

    Uma ferramenta que permita ligar tudo isto

    (ex.: PHP)

  • Cliente Servidor web

    PHP BD

    1

    2

    3

    4

    1 - O cliente solicita a pgina ao servidor web. Este,

    verificando que existe um script PHP, chama o mdulo PHP

    para efetuar o processamento.

    2 - Se no script existirem comandos que abrem uma ligao

    a uma base de dados, o PHP trata de efetuar essa ligao.

    3 - Os dados pretendidos so ento extraidos da base de

    dados, sendo enviados pelo PHP ao servidor web em

    formato HTML.

    4 - O servidor web envia os dados ao cliente, sendo estes

    visualizados numa pgina HTML devidamente formatada.

  • Porque utilizar o Apache?

    o lder do mercado;

    o mais seguro;

    No tem concorrentes quanto riqueza de recursos,

    estabilidade, performance, ...

  • Porque utilizar o MySQL?

    Baixa exigncia de recursos de hardware;

    Simplicidade de administrao;

    o mais veloz do mercado;

    Foi optimizado para as aplicaes tpicas da Web,

    onde ocorrem mais consultas do que atualizaes.

  • Porque usar PHP, Apache e

    MySQL?

    Porque fornecem tudo o que necessitamos

    para construir aplicaes e web sites

    sofisticados, e de maneira mais simples do

    que outras alternativas.

    Principalmente porque so software livre!

  • Tenho que utilizar os trs em

    conjunto?

    No, esta apenas uma combinao

    popular na Internet. Outras alternativas

    seriam:

    Apache com Perl, Python, ASP, Java, ...

    PHP com IIS, PWS, Xitami, ...

    PHP com PostgreSQL, Interbase, Oracle, DB2 ...

    MySQL com Perl, Phyton, ASP, Java, ...

  • Software

    Xampp -O XAMPP um servidor Web multiplataforma constitudo por um servidor HTTP Apache.

    X- Sistema operativo (atualmente suportado por windows, Linux, SunSolaris e MacOs. A-Apache

    M-MySQL

    P-PHP

    P-PERL

    wamp - Windows, Apache, MySQL e PHP

    lamp - Linux, Apache, MySQL e PHP

  • Outro Exemplo

    i3

    PHP

  • Formulrios HTML

    Botes

    Radio buttons

    Seleccion lists

    Input boxes

    Checkbox

    Etc

  • Formulrios HTML

    method - Especifica o modo como a informao

    transmitida. Pode ser GET ou POST.

    action - Indica o nome e a localizao do script PHP

    que ir processar a informao que foi introduzida no

    formulrio.

  • Mtodos de transmisso

    O protocolo HTTP (HiperText Transfer Protocol) utiliza

    vrios mtodos de manipulao e organizao dos

    dados.

    Atualmente, os dois mtodos mais utilizados para

    submeter dados de formulrios so o GET e o POST.

    Ambos os mtodos transferem dados do browser para

    o servidor, a maior diferena entre eles a maneira

    como essa informao transmitida.

  • O browser acrescenta ao URL, especificado no atributo

    ACTION, um "?" e os valores codificados;

    Os dados no so encriptados, logo informaes que

    exigem segurana no devem ser manipuladas por

    este mtodo;

    Suporta apenas at 128 caracteres, logo til para

    valores pequenos.

    GET

  • POST

    Os dados introduzidos num formulrio fazem parte do

    corpo da mensagem enviada para o servidor;

    Pode encriptar os dados;

    possvel transferir uma grande quantidade de dados.

    Este o mtodo aconselhado.

  • 20

    Exemplo 2 Mtodo POST form.html

    Nome:

    script.php

  • 21

    Exemplo 3 Mtodo GET form.html

    Nome:

    script.php

  • Exemplo 4

    Situao em que so usados dois ficheiros:

    form.html - o local onde o utilizador far os inputs.

    php_2.php - Contm os comandos PHP que iro

    processar os dados inseridos no formulrio.

  • formulrio PHP

    Nome

    Idade

    Qual o carro que mais gostas?

    Ferrari

    Mercedes

    BMW

    Exemplo 4

  • Resultado

    Exemplo 4

    Nota: Ateno juno de

    texto com variveis numa

    instruo de escrita

  • PHP

    Tipos de dados

    Variveis e constantes

    Operadores

    Estruturas de controlo

  • Operadores

    Aritmticos Operadores lgicos

    Operadores

    relacionais

    + - * / %

    += -= *= /= %=

    ++ --

    ! NOT

    && AND

    || OR

    == != < >= === !==

    === (igualdade restrita)

    Tipos de dados

    Booleanos

    Inteiros, Strings, Array, Object

    Nmeros reais (floating point)

    Alguns caracteres especiais

    \n Muda de linha

    \t Tabulao horizontal

    \r Volta incio da linha

    PHP

    Operadores, tipos de dados e

    alguns caracteres especiais

  • 27

    Transformao de Tipos por coero

    Coero a converso de um tipo em outro tipo diferente mediante operao realizada com tipos diferentes. Por exemplo:

    $a=1;

    $a = $a + "5";

    Nesse exemplo a varivel $a numrica (integer) na primeira atribuio e string na segunda atribuio

  • 28

    Transformao explicita de tipos

    Feita via typecast (como em

    linguagem C)

    Exemplo: $a = 6; # a um integer (6)

    $a = (float) 6; # um float (6.0)

  • 29

    Constantes

    Uma constante um identificador (nome) para um nico valor que no se altera durante a execuo de um script)

    Pr-definidas

    Definidas pelo usurio

    Exemplo:

    define("MOL", 6.14e22);

    define("PI", 3.1415);

    echo MOL;

    echo PI;

  • 30

    Constantes - Exemplo

  • 31

    Constantes "Mgicas"

  • 32

    Operadores de Atribuio

    = ($a=5);

    += ($a = $a + 5; $a+=5;)

    -=

    *=

    /=

    %=

    .=

  • 33

    Operadores de Atribuio (2)

    &=

    |=

    ^=

  • 34

    Operador Ternrio (ou Condicional)

    (expresso) ? (expresso2) : (expresso3);

    Exemplo:

    $a=5;

    $a > 5 ? $b="1" : $b="0";

    equivalente a:

    if($a>5)

    $b="1";

    else

    $b="0";

  • 35

    Operadores Unrios

    -oper : troca o sinal do operando

    ++

    --

    ++$a : pr-incremento (incrementa $a em

    um e depois retorna $a)

    $a++ : ps-incremento

    --$a : pr-decremento

    $a-- : ps-decremento

  • 36

    Precedncia de Operadores

    - ! ~ ++ --

    - * / %

    - + - .

    - >

    - > < >=

  • 37

    Estruturas de Controle

    Blocos

    Comandos condicionais

    Comando de repetio

  • 38

    Blocos

    So sequncia de comandos delimitados por

    abre e fecha chaves ({ e })

  • 39

    Comando Condicional

    if (expresso)

    comando;

    if(expresso) {

    comando1;

    ...

    comandoN;

    }

  • 40

    Comando Condicional (2)

    If (expresso) comando1;

    else

    comando2;

    If(expresso): comando1;

    ...

    comandoN;

    else

    comando1;

    ...

    comandoN;

    endif

  • 41

    Comando Condicional (3)

    if(expresso1) { comando1;

    }

    elseif(expresso2) { comando2;

    }

    ...

    else{ comandoN;

    }

  • 42

    Exemplo

  • 43

    switch

    switch (expresso) {

    case valor1:

    comando1;

    break;

    case valor2:

    comando2;

    break;

    }

  • 44

    Exemplo - switch

  • 45

    Comandos de repetio (laos)

    while

    do .. while

    for

    foreach

  • 46

    while

    while (expresso) {

    comando;

    }

    while (expresso) :

    comando1;

    ...

    comandoN;

    endwhile;

  • 47

    Exemplo comando while

  • 48

    do..while

    $a=0;

    do

    {

    echo "a=$a\n";

    $a++;

    }

    while ($a

  • 49

    Exemplo do .. while

  • 50

    for

    for (expr1; expr2; expr3 ) {

    comando1

    ..

    comandoN

    }

  • 51

    foreach

    Apresenta duas sintaxes:

    foreach ($nome_array as $elemento)

    {

    comandos

    }

    ou

    foreach ($nome_array as $chave => $valor)

    {

    comandos

    }

  • 52

    foreach (exemplo)

  • 53

    foreach (exemplo)

  • 54

    Comandos break e continue

    break: pode ser usado em laos do, for e while.

    O break "quebra" a execuo e continua

    executando o prximo comando

    break [n]; // onde n indica o nmero de

    estruturas que devero ser finalizadas

  • 55

    Comandos break e continue

    continue: interrompe a execuo e avalia

    novamente a condio de teste

    continue [n]; // onde n indica o nmero de nveis

    que devero ser iniciados

  • 56

    Exemplo - break

  • 57

    Exemplo - continue

  • Em PHP o tipo de dados das variveis no

    definido pelo programador.

    $var=1234; //inteiro

    $var=-1234; //inteiro

    $var= 1.234 //real

    $var= 1.2e3

    $var=5;

    $var2= O valor da varivel $var;

    PHP

    Variveis

  • Arrays

    $arr= array(5,20,32,400,500,62,47,58);

    echo $arr[1]; // resulta em 20

    Array multidimensional: $arr=array(1,2, array(Carlos, array(7,9) ) , xa);

    echo $arr[0]; //resulta em 1

    echo $arr[2][0]; // resulta em Carlos

    echo $arr[2][1][1]; // resulta em 9

    0 1 2 3 4 5 6 7

    PHP

  • Exemplo

    i3

    PHP

  • 61

    Funes

    Definio

    Argumentos

    Passagem de parmetros (valor ou

    referncia)

    Argumentos com valores pr-definidos

  • 62

    Funes - Sintaxe

    function nome_da_funo(

    [arg1, [arg2, ...,[argN]]]

    )

    {

    comando1;

    ...

    comandoN;

    [ return valor_de_retorno ];

    }

  • 63

    Funes definidas pelo usurio

    Uma funo deve ser definida com a usando a

    sintaxe indicada abaixo:

  • 64

    Valores Retorno

    A declarao return opcional

    Qualquer tipo poder ser retornado incluindo

    listas e objetos.

  • 65

    Exemplo do uso do return

  • 66

    Exemplo: Retornando um array com

    mltiplos elementos

  • 67

    Passagem de parmetros

    Existem dois tipos de passagem de

    parmetros:

    por valor (by value)

    por referncia (by reference)

    O padro a passagem por valor.

  • 68

    Exemplo de passagem de parmetros

  • 69

    Definio de valores padres na

    chamada de funes

  • 70

    Modificadores de variveis

    Variveis estticas (static)

    mantm o valor que lhes foi atribudo na

    ltima execuo. Usa o operador static.

    Variveis variveis ($$)

    Variveis de ambiente

  • 71

    Exemplo: uso de varivel esttica

  • 72

    Variveis de Ambiente

  • 73

    Incluso de arquivos

    include caso o arquivo no seja encontrado, retornado um warning e o processamento da pgina continua

    require caso o arquivo no seja encontrado, retornado um erro fatal

    include_once se o arquivo j estiver sido incluso ele ser ignorado

    require_once

    Obs:

    include e include_once retornam uma advertncia (warning) no caso de erro.

    require e require_once retornam um erro fatal em caso de erro.

  • 74

    Include x Require

    O comando include reavaliado a cada

    chamada

    A instruo require pode incluir apenas um

    arquivo (a funo require no inclui arquivos

    dinamicamente)

  • 75

    Exemplo

    biblioteca.php

  • 76

    Exemplo

    teste_include.php

  • PHP

    SQL / MySQL

    Ligao a base de dados

    Seleco e visualizao de registos

    Adicionar, Eliminar, Pesquisar e Editar registos

  • Acesso a bases de dados

    com PHP

    1. - Captar os dados

    2. - Estabelecer a ligao

    3. - Aplicar um comando SQL

    4. - Preparar os dados obtidos

  • Principais funes com suporte ao

    MySQL

    mysqli_connect - Estabelece uma ligao ao servidor

    ex.: $ligax = mysqli_connect('localhost', 'root', password');

    mysqli_select_db - Selecciona uma base de dados

    ex.: mysqli_select_db($ligax, 'vendas');

    mysqli_query - Interroga uma base de dados

    ex.: mysqli_query($ligax, $insere);

    mysqli_num_rows - Devolve n. de registos resultantes de uma consulta.

    ex.: $nregistos = mysqli_num_rows($result);

    mysqli_fetch_assoc - Guarda num array o resultado de uma consulta.

    for ($i=0; $i

  • Exemplo

    Browser

    Servidor

    PHP

    BD vendas

    Clientes

    Artigos Fornecedores

    Encomendas

  • Ficheiro ligacao.php

    $host = 'localhost';

    $user = 'root';

    $pwd = '';

    $db = dados';

    $ligax=mysqli_connect($host, $user, $pwd) or

    die ('No conseguiu fazer a conexo ao servidor');

    mysqli_select_db($ligax,$db);

  • LISTAR

    Listar dados de uma BD

  • Listar Clientes

    Lista de clientes:

    Codigo: Nome: Morada:

    Voltar entrada

  • Cdigo php para pesquisar dados da tabela

    PESQUISAR

    Pesquisar dados numa BD

  • Mostrar

    Mostrar cliente procurado

    Codigo: Nome: Morada:

    Listar registos

  • ADICIONAR

    Adicionar dados a uma BD

  • Inserir

    Novo cliente

  • ELIMINAR

    Eliminar dados numa BD

  • Remover

    Remover cliente

    Listar registos

  • Exemplos de validaes em PHP

    if ($pass!=$conf_pass || $pass=="") { $flag=true; $flag_pass=true;

    }

    if (!preg_match ("/^[0-9]{4}[\-][0-9]{3}$/",$cod_postal)) {

    $flag=true;$flag_cod_postal=true;

    }

    if (!preg_match ("/^[0-9]{4}$/",$ano_nasc)) {

    $flag=true;$flag_ano_nasc=true;

    }

    if (!preg_match ("/^[0-9]{9,12}$/",$telefone)) {

    $flag=true;$flag_telefone=true;

    }