php - parte 1
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;
}