Upload
thiagosodre
View
231
Download
4
Embed Size (px)
Citation preview
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