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;
}
Top Related