programao web com php atualizada

Upload: thiagosodre

Post on 19-Feb-2018

231 views

Category:

Documents


4 download

TRANSCRIPT

  • 7/23/2019 Programao Web Com Php Atualizada

    1/67

    Programao Web com PHP

  • 7/23/2019 Programao Web Com Php Atualizada

    2/67

    g

    O que PHP?

    PHP uma linguagem deprogramao multiparadigma,com tipagem dinmica e fraca,

    voltada para o desenvolvimentode websites dinmicos;

  • 7/23/2019 Programao Web Com Php Atualizada

    3/67

    O que da pra fazercom PHP? PHP uma linguagem voltada para o

    desenvolvimento de websites dinmicos; Com PHP, podemos criar websites capazes

    de: Enviar e-mail utilizando servios de e-mail

    !endmail, Post"i#$; %azer diversas opera&es em banco de

    dados;

    'rabal(ar com dados enviados por"ormul)rio; 'rabal(ar com coo*ies e sess&es H''P;

  • 7/23/2019 Programao Web Com Php Atualizada

    4/67

    Como a web funciona?

  • 7/23/2019 Programao Web Com Php Atualizada

    5/67

    Cliente x Seridor

    +a web, como em ualuer aruiteturaCliente # !ervidor, o "uncionamento baseia-se em reuisio de um cliente .nternetE#plorer, %ire"o#, !a"ari, /pera, etc0$ a um

    servidor 1pac(e, .nternet .n"ormation!ervice, 2lass"is(, etc0$ e resposta de umservidor a um cliente;

    3uando () acesso a banco de dados, oservidor trabal(a de "orma di"erenciada,pois a implementao de um servidor web um servio di"erente 4 implementao deum servidor de banco de dados;

  • 7/23/2019 Programao Web Com Php Atualizada

    6/67

    Cliente x Seridor

    +a web, o cliente o navegador %ire"o#,por e#emplo$0 / navegador "unciona comoum interpretador compilador #interpretador, lembra a di"erena5$;

    / navegador capaz de interpretarapena!H'67, 8avascript e C!!9

    PHP interpretado no servidor e no nocliente0 / servidor aciona o interpretador

    PHP, ue "az as opera&es necess)riasacesso a banco de dados, por e#emplo$,retorna uma resposta ao servidor web;

  • 7/23/2019 Programao Web Com Php Atualizada

    7/67

    Cliente x Seridor

    / servidor web interpreta a resposta,trans"orma a mesma em H'67 e envia aocliente;

    / cliente navegador$ interpreta o H'67 e

    e#ibe na tela o resultado da interpretao0

  • 7/23/2019 Programao Web Com Php Atualizada

    8/67

    Cliente x Seridor

    "

    #

    $

    %

    &

    '

    cadastrarsuario0p(p

    1 vi, to comesse aruivo aui,interpreta ele pramim5

    E a 6

    na tabela usuario0 'oma aos dados e insere, beleza5

    %irmeza, ta inserido9

    1e, interpretei e virou esse

    H'67 a9 1gora contigobrot(er9

    1, esse H'67 eu sei ue tuentende9

  • 7/23/2019 Programao Web Com Php Atualizada

    9/67

    Onde( quando e porque u!ar PHP? =om, ue PHP utilizado para

    desenvolvimento de websites dinmicosn>s ?) sabemos, mas onde, uando e porue usar PHP5

    Pela sua "acilidade de uso e deaprendizagem, o uso de PHP constanteem sites simples, sendo geralmente a portade entrada no desenvolvimento web paraauto-didatas;

    / prop>sito do PHP ser utilizado parasites e no em grandes e con"i)veissistemas web;

  • 7/23/2019 Programao Web Com Php Atualizada

    10/67

    Onde( quando e porque u!ar PHP? PHP uma resposta r)pida para problemas

    peuenos; +ingum vai usar 8ava ou 0+E' para "azer

    um site dinmico ue acessa um banco de

    dados com tr@s tabelin(as; !e voc@ precisa de muita velocidade,

    poder) utilizar um dos "ramewor*s 6ACpara PHP;

  • 7/23/2019 Programao Web Com Php Atualizada

    11/67

    PHP na Pr)tica

  • 7/23/2019 Programao Web Com Php Atualizada

    12/67

    *ag!

    3uanto utilizamos H'67, tudo tag9

    Ttulo da

    Pgina

    Texto da pgina.

  • 7/23/2019 Programao Web Com Php Atualizada

    13/67

    *ag!

    'emos tag para o documento H'67, tagpara o ttulo da p)gina000; 'emos tag para colocar nosso c>digo PHP9 'odo o nosso c>digo "icara entre as tags do

    PHP, ue so B5p(p 50

    Ttulo da Pgina

  • 7/23/2019 Programao Web Com Php Atualizada

    14/67

    Sintaxe+ ,!creendona tela !empre comeamos escrevendo nosso /l)

    mundo default, n59 Para escrevermos na tela em PHP

    utilizamos o seguinte comando:

    echo no PHP semel(ante ao print no p

  • 7/23/2019 Programao Web Com Php Atualizada

    15/67

    Pr)tica

    %aa um aruivo PHP ue escreva na telaD6eu primeiro e#emplo PHP0

    %aa um programa ue escreva na telaD6eu primeiro e#emplo PHP em negrito0

  • 7/23/2019 Programao Web Com Php Atualizada

    16/67

    -ari)ei!

    Aari)veis so de"inidas utilizando um ci"ro$$;

    Em PHP, vari)veis possuem tipagemdinmica e "raca;

    'ipagem dinmica signi"ica ue umavari)vel assume um tipo de acordo com ovalor ue l(e atribudo;

    'ipagem "raca signi"ica ue voc@ pode

    trabal(ar de "orma livre com as vari)veis;

  • 7/23/2019 Programao Web Com Php Atualizada

    17/67

    -ari)ei!

    n #;

    n$ "%";

    n& n ' n$;

    1 vari)vel nF do tipointeiro0

    1 vari)vel nG do tipostring0

    3ual o tipo da vari)vel n5

  • 7/23/2019 Programao Web Com Php Atualizada

    18/67

    .tilizando controlede fluxo Para controle de deciso temos o if... else

    if... else e o switch... case; Para controle de repetio, temos o for, o

    foreach, o whilee o do... while;

  • 7/23/2019 Programao Web Com Php Atualizada

    19/67

    if

    i()nume*o < $#+, echo "nume*o - meno* ue $#";

    el0e ,

    echo "nume*o - maio* ue $#";

    i"Dcondio$I B"az alguma coisa uando Dcondio verdadeira

    J else I B"az alguma coisa uando Dcondio "alsaJ

  • 7/23/2019 Programao Web Com Php Atualizada

    20/67

    !witc/

    01itch)nome+,

    ca0e "2o0-"3

    echo "Ol 0enho* 2o0-!";

    b*ea4; ca0e "5a*ia"3

    echo "Ol 0enho*a 5a*ia!";

    b*ea4;

    de(ault3

    echo "Ol nome!";

    0*,123O4

    Aoc@ pode usar strings9

  • 7/23/2019 Programao Web Com Php Atualizada

    21/67

    w/ile

    1hile)nume*o < $##+,

    nume*o'';

    w(ileDcondio$I B"az alguma coisa enuanto Dcondio "or verdadeiraJ

  • 7/23/2019 Programao Web Com Php Atualizada

    22/67

    do555 w/ile

    do,

    nume*o'';

    1hile)nume*o < $##+;

    do I B"az Dalguma coisa e veri"ica se Dcondio verdadeira0

    Em seguida, repete alguma coisa enuantoDcondio "or verdadeira

    J w(ileKcondioL$;

  • 7/23/2019 Programao Web Com Php Atualizada

    23/67

    for

    (o*)i ; i

  • 7/23/2019 Programao Web Com Php Atualizada

    24/67

    foreac/

    Aeremos o foreachmais adiante;

  • 7/23/2019 Programao Web Com Php Atualizada

    25/67

    Pr)tica

    Mesenvolva um algoritmo ue leia umnNmero # e imprima na tela todos osmpares entre F e #0

  • 7/23/2019 Programao Web Com Php Atualizada

    26/67

    ,!trutura! de 6ado! em

    PHP

  • 7/23/2019 Programao Web Com Php Atualizada

    27/67

    ,!trutura! de 6ado!

    PHP suporta apenas uma estrutura dedados: o array/vetor;

    6as no se engane com o array do PHP; / array do PHP consegue ser a

    implementao de praticamente todas asestruturas de dados: vetor, matriz, lista,pil(a, "ila, tabela (as(, etc0;

  • 7/23/2019 Programao Web Com Php Atualizada

    28/67

    0rra7

    Arrays possuem alocao FOO dinmica; Arrays podem possuir ndices numricos

    inteiros$, al"anumricos e al"abticosstrings$ ou mesmo ob?etos personalizados

    QArrays associativos; Arrayspodem ser acessado apenas

    utilizando "un&es, simulando listas, pil(asou "ilas;

  • 7/23/2019 Programao Web Com Php Atualizada

    29/67

    0rra7

    7eto* a**ay)8 $8 &+;

    (o*each)7eto* a0 nume*o+,

    echo "nume*o";

    Meclarando um array0

    "oreac(arrayas variavel$I Bacessa cada elemento de arrayunicamente,

    armazenando seu conteNdo temporariamenteem variavel

    J

  • 7/23/2019 Programao Web Com Php Atualizada

    30/67

    0rra7

    7eto* a**ay)8 $8 &+;

    tamanho 0i9eo()7eto*+;

    (o*)i #; i < tamanho; i''+, echo "7eto*:i";

  • 7/23/2019 Programao Web Com Php Atualizada

    31/67

    *rabal/ando com

    8ormul)rio!

  • 7/23/2019 Programao Web Com Php Atualizada

    32/67

    8ormul)rio!

    Criar um "ormul)rio ue simula o sistemade venda de uma lo?a de esportes;

    / "ormul)rio enviar) os dados viareuisio POSTpara a p)gina PHP

    pedido.php; Esta p)gina processar) a reuisio e

    enviar) uma resposta0

  • 7/23/2019 Programao Web Com Php Atualizada

    33/67

    8ormul)rio!

  • 7/23/2019 Programao Web Com Php Atualizada

    34/67

    8ormul)rio!

    /s dados enviados em um "ormul)rio soarmazenados em um array9 :

    Aoc@ pode acessar "acilmente estes dadosatravs deste arra

  • 7/23/2019 Programao Web Com Php Atualizada

    35/67

    8ormul)rio!

    Primeiramente, escreveremos em nossap)gina uma mensagem in"ormando ue opedido "oi processado;

    Mepois pegaremos as uantidades

    in"ormadas em nosso arra< $_POSTlembre-se ue "izemos uma reuisio dotipo P/!'$;

    Meclararemos uma vari)vel pararepresentar o custo de cada uma das bolas;

    6ultiplicaremos o valor da uantidade decada bola pelo seu respectivo preo;

    6ostraremos na tela o valor total de cadaitem e o valor total da compra0

  • 7/23/2019 Programao Web Com Php Atualizada

    36/67

    8ormul)rio!

  • 7/23/2019 Programao Web Com Php Atualizada

    37/67

    8ormul)rio!

  • 7/23/2019 Programao Web Com Php Atualizada

    38/67

    8ormul)rio!

  • 7/23/2019 Programao Web Com Php Atualizada

    39/67

    8ormul)rio!

    Aamos utilizar controle de "lu#o paradeterminar ue se um item no "oipreenc(ido ou "oi preenc(ido com valor O,este item no dever) aparecer na p)gina

    PHP ue processa o "ormul)rio;

  • 7/23/2019 Programao Web Com Php Atualizada

    40/67

    8ormul)rio!

  • 7/23/2019 Programao Web Com Php Atualizada

    41/67

    8ormul)rio!

  • 7/23/2019 Programao Web Com Php Atualizada

    42/67

    8un9e!

  • 7/23/2019 Programao Web Com Php Atualizada

    43/67

    8un9e!

    Me"inir "un&es em PHP simples; 1 palavra c(ave ue de"ine "un&es bem

    sugestiva: function; 1 sinta#e bem declarativa0

  • 7/23/2019 Programao Web Com Php Atualizada

    44/67

    8un9e!

    (unction e0c*e7e*HaTela)texto+,

    echo texto;

    (unction maio*Dalo*)n8 n$+,

    i()n > n$+,

    *etu*n n;

    el0e ,

    *etu*n n$;

  • 7/23/2019 Programao Web Com Php Atualizada

    45/67

    -alor padro paraargumento! R possvel de"inir uma valor padro para

    um ou mais argumentos de uma "uno;

    (unction conta*)limite ##+,

    (o*)i #; i < limite; i''+,

    echo "i";

  • 7/23/2019 Programao Web Com Php Atualizada

    46/67

    -alor ou :efer;ncia?

    1ssim como CSS e CT e ao contr)rio de Ce 8ava, PHP possui passagem deparmetros por re"er@ncias;

    1 "orma de "azer praticamente igual 4

    "orma "eita em CSS se "or "eito como se"az em CSS "unciona, porm () uma outra"orma de "azer$;

    tiliza-se o U na declarao da "uno;

    / U tambm pode ser utilizado nomomento em ue voc@ c(ama a "uno; Para gerar um c>digo mel(or,

    aconsel()vel usar o U na assinatura da"uno0

  • 7/23/2019 Programao Web Com Php Atualizada

    47/67

    -alor ou :efer;ncia?

    (unction 0eta*ComIe9)J7al+, 7al #;

    (unction 0eta*ComDinte)7al+,

    7al $#;

    0eta*ComIe9)x+;

    0eta*ComDinte)Jy+;

    Warning: Call-time pass-b

  • 7/23/2019 Programao Web Com Php Atualizada

    48/67

    Pr)tica

    Me"ina uma "uno ue receba umavari)vel e um valor0 Essa "uno dever)con"igurar esta vari)vel com este valor semretornar valor algum0

  • 7/23/2019 Programao Web Com Php Atualizada

    49/67

    0ce!!ando

  • 7/23/2019 Programao Web Com Php Atualizada

    50/67

    PHP @ =7S>

    PHP e 6

    1cessar um banco de dados 6

  • 7/23/2019 Programao Web Com Php Atualizada

    51/67

    PHP @ =7S>

    Aamos con(ecer as "un&es do PHP paratrabal(ar com 6

  • 7/23/2019 Programao Web Com Php Atualizada

    52/67

  • 7/23/2019 Programao Web Com Php Atualizada

    53/67

    ConectandoA!e aobanco de dado! Para conectar-se ao banco de dados,

    utilizamos a "uno #ysl_connect;

    conexao my0lconnect

    )"localho0t"8 "php"8 "php"8 "minicu*0o"8 &K+;

    !ervidor ao ual estamos nos conectando0

    su)rio utilizado para obter cone#o0

    !en(a do usu)rio0

    !en(a do usu)rio0Porta onde seconectar) no servidor0

  • 7/23/2019 Programao Web Com Php Atualizada

    54/67

    *e!tando a conexo

    1 "uno #ysl_connect retorna umidenti"icador ou false;

    1travs de um i" conseguimos descobrir seestamos conectados ao banco de dados9

    i()conexao+,

    echo "Bba8 conectei no banco!";

    el0e ,

    echo LOp08 deu e**o!";

  • 7/23/2019 Programao Web Com Php Atualizada

    55/67

    Pr)tica

    Crie uma "uno ue retorne uma cone#ocom o banco de dados0 Metermine valorespadr&es para todos os atributos, tornando-os opcionais0

  • 7/23/2019 Programao Web Com Php Atualizada

    56/67

    *e!tando a conexo

    , d < d

  • 7/23/2019 Programao Web Com Php Atualizada

    57/67

    ,!quema do

  • 7/23/2019 Programao Web Com Php Atualizada

    58/67

    O que faremo!?

    'eremos dois clientes inseridos no banco dedados: 6aria e 8os;

    'eremos dois produtos inseridos no bancode dados: Camisa e '@nis;

    Criaremos um peueno site capaz derealizar compras9 :

  • 7/23/2019 Programao Web Com Php Atualizada

    59/67

    6o que preci!amo!?

    Precisamos de um select bo# ue possuatodos os clientes;

    Precisamos de um select bo# ue possuatodos os produtos;

    Precisamos de um campo de entrada paraue a uantidade dese?ada se?a in"ormada;

  • 7/23/2019 Programao Web Com Php Atualizada

    60/67

    6o que preci!amo!?

    Para colocar todos os clientes em um selectbo#, precisamos de peg)-los no banco dedados antes;

    Para colocar todos os produtos em um

    select bo#, precisamos de peg)-los nobanco de dados antes;

    :ec perando dado! do

  • 7/23/2019 Programao Web Com Php Atualizada

    61/67

    :ecuperando dado! dobanco Para recuperarmos dados de um banco de

    dados utilizando !37, e#ecutamos a "uno#ysl_uery%&;

    Aamos us)-la duas vezes para selecionar

    nossos clientes e nossos produtos;

    *0Cliente0 my0lue*y)"BMBCT F GAO5 cliente0"+;

    *0P*oduto0 my0lue*y)"BMBCT F GAO5 p*oduto0"+;

    *rabal/ando com

  • 7/23/2019 Programao Web Com Php Atualizada

    62/67

    *rabal/ando comrow!et! 3uando e#ecutamos uma consulta ue nos

    retorna algum dado do banco, a biblioteca#ysl nos prov@ um rowset con?unto delin(as, traduzindo$;

    Para pegarmos uma lin(a deste con?unto,utilizamos a "uno #ysl_fetch_assoc,passando o rowset como parmetro;

    Como nosso rowsetpossui v)rios valoresde retorno, devemos ento utilizar umwhilepara percorrer todo o rowset, lin(a alin(a0

    Aamos colocar todos os nossos clientes emum array;

    %aremos a mesma coisa com produtos;

    *rabal/ando com

  • 7/23/2019 Programao Web Com Php Atualizada

    63/67

    *rabal/ando comrow!et!

    cliente0 a**ay)+;

    i #;

    1hile)cliente my0l(etcha00oc)*0Cliente0++, cliente0:i cliente;

    i'';

    p*oduto0 a**ay)+;

    i #;

    1hile)p*oduto my0l(etcha00oc)*0P*oduto0++, p*oduto0:i p*oduto;

    i'';

    =i!turando PHP com

  • 7/23/2019 Programao Web Com Php Atualizada

    64/67

    =i!turando PHP comH*=

    Criaremos nosso select bo# e utilizaremos oforeach para colocar todos os elementos nonosso select bo#;

    =i!turando PHP com

  • 7/23/2019 Programao Web Com Php Atualizada

    65/67

    =i!turando PHP comH*=

    B i d

  • 7/23/2019 Programao Web Com Php Atualizada

    66/67

    Bn!erindo a compra

    1gora ")cil9 Precisamos apenas inserir a compra no

    banco de dados; Aamos obter as in"orma&es do "ormul)rio

    e ento vamos inserir a compra no bancode dados9

    i d C

  • 7/23/2019 Programao Web Com Php Atualizada

    67/67

    Bn!erindo a Compra