Escolar Documentos
Profissional Documentos
Cultura Documentos
Aula PHP
Aula PHP
PHP e a WWW
Funcionamento do PHP
PHP com Apache e MySQL
XAMPP
PHP e a WWW
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 actualizada.
PHP
uma linguagem de programao
PHP
O cdigo PHP embebido no cdigo HTML dando
comandos.
Exemplo 1
<?php /*php_1.php */?>
<html>
<head>
<title> Resultado </title>
</head>
<body>
<?php $X=5; $Y=3; $Z=$X+$Y;
echo Total ;
echo = $Z;
?>
</body>
</html>
Formulrios HTML
Botes
Radio buttons
Seleccion lists
Input boxes
Checkbox
Etc
Formulrios HTML
Mtodos de transmisso
O protocolo HTTP (HiperText Transfer Protocol) utiliza
vrios mtodos de manipulao e organizao dos
dados.
Actualmente, 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.
GET
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.
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.
Exemplo 2
Situao em que so usados dois ficheiros:
Exemplo 2
<html>
<head>
<title> formulrio PHP </title>
</head>
<body>
<form enctype="multipart/form-data" method="POST" action="php_2.php">
<p> Nome <input type="text" name="nome" size=30> </p>
<p> Idade <input type="text" name="idade" size=2> </p>
<p> Qual o carro que mais gostas?
<select name="marca">
<option> Ferrari </option>
<option> Mercedes </option>
<option> BMW </option>
</select> </p>
<p> <input type="submit" value="OK"> </p>
</form>
</body>
</html>
Exemplo 2
<?php /*php_2.php*/ ?>
Nota: Ateno juno de
<html>
texto com variveis numa
<head>
instruo de escrita
<title> Resultado </title>
</head>
<body>
<?php
echo "O meu nome ".$_POST['nome']. " ,tenho " .$_POST['idade'].
" anos e gosto de carros da marca "
.$_POST['marca'];
?>
</body>
</html>
O que preciso?
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)
3
PHP
2
Cliente
BD
Servidor web
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
PHP
Tipos de dados
Variveis e constantes
Operadores
Estruturas de controlo
Operadores lgicos
+ - * / %
+= -= *= /= %=
++ --
! NOT
&& AND
|| OR
Tipos de dados
Booleanos
Inteiros, Strings, Array, Object
Nmeros reais (floating point)
Operadores
relacionais
== != < <=
> >= === !==
=== (igualdade restrita)
Muda de linha
\t
Tabulao horizontal
\r
PHP
PHP
Variveis
$var=1234; //inteiro
$var=-1234; //inteiro
$var= 1.234 //real
$var= 1.2e3
$var=5;
$var2= O valor da varivel $var;
Em PHP o tipo de dados das variveis no
definido pelo programador.
PHP
Arrays
0
$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
PHP
Estruturas de controlo
if(condio)
<bloco de instrues>
[else
<bloco de instrues>]
while (condio)
<bloco de instrues>;
switch (selector) {
case valor1: <bloco> break;
case valor2: <bloco> break;
[default: <bloco>; ] }
do <bloco de instrues>
while (condio);
PHP
Exemplo
<table border=1>
<?php
for($i=1; $i<6; $i++)
{
echo '<tr>';
$q=$i*$i*$i;
echo "<td> $i </td>";
echo "<td> $q </td>";
echo '</tr>';
}
?>
</table>
i3
PHP
SQL / MySQL
Ligao a base de dados
Seleco e visualizao de registos
Adicionar, Eliminar, Pesquisar e Editar registos
Exemplo
Servidor
BD vendas
Browser
PHP
Clientes
Encomendas
Fornecedores
Artigos
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);
<?php include (ligacao.php);?>
LISTAR
<html>
<head> <title> Listar Clientes </title> </head>
<body> <h2> Lista de clientes: </h2> <br>
<?php
$ligax = mysqli_connect('localhost', 'root', '');
if (!$ligax) {echo '<p> Falha na ligao.';}
mysqli_select_db($ligax, 'vendas');
$consulta = "Select * From Clientes";
$result = mysqli_query($ligax, $consulta);
$nregistos = mysqli_num_rows($result);
echo "N de registos encontrados: $nregistos ";
?>
<br> <table border="1">
<tr><td> Codigo: <td> Nome: <td> Morada: </tr>
<?php
for ($i=0; $i <$nregistos; $i++) {
$registo = mysqli_fetch_assoc($result);
echo '<tr>';
echo '<td>'.$registo['CodCli'].'</td>';
echo '<td>'.$registo['Nome'].'</td>';
echo '<td>'.$registo['Morada'].'<td>';
echo '</tr>'; echo '</p>';
}
?>
</table> <br> <a href="index.htm">Voltar entrada</a>
</body>
</html>
PESQUISAR
ADICIONAR
<html>
<head> <title> Inserir </title> </head>
<body> <h2> Novo cliente </h2>
<?php /*inserir.php*/
$cod = $_POST['codcli'];
$nome = $_POST['nome'];
$morada = $_POST['morada'];
echo 'Dados recebidos: <br />';
echo 'Cdigo: '.$cod.'<br />';
echo 'Nome: '.$nome.'<br />';
echo 'Morada: '.$morada.'<br />';
$ligax = mysqli_connect('localhost', 'root', '');
if (!$ligax) {echo '<p> Erro: Falha na ligao.'; exit;}
mysqli_select_db($ligax, 'vendas');
$insere = INSERT INTO clientes ( CodCli, Nome, Morada )
VALUES ( ".$cod. , ".$nome. , ".$morada. )";
$result = mysqli_query($ligax, $insere);
if ($result==1) echo "<p>Dados inseridos<br>";
else "<p>Dados no inseridos<br>";
?>
<p> <a href="index.htm">Voltar entrada</a>
<p> <a href="listar.php">Listar clientes</a>
</body>
</html>
ELIMINAR
<html>
<head> <title> Remover </title> </head>
<body> <h2> Remover cliente </h2>
<?php
$codrem = $_POST['codcli'];
if (!$codrem) {echo 'Volte atrs e escreva o cdigo do cliente a remover.'; }
echo "Cliente a remover: $codrem. <p>";
$ligax = mysqli_connect('localhost', 'root','');
if (!$ligax){echo "<p> Falha na ligao."; exit; }
mysqli_select_db($ligax, 'vendas');
$consulta = "Select * From Clientes";
$result = mysqli_query($ligax, $consulta);
$nr_antes = mysqli_num_rows($result);
$remove = "delete from clientes
where codcli = ".$codrem." ' ";
$result = mysqli_query($ligax, $remove);
if ($result==0) echo "<p>No removido<br>";
$consulta = "Select * From Clientes";
$result = mysqli_query($ligax, $consulta);
$nr_depois = mysqli_num_rows($result);
$nr_removidos = $nr_antes - $nr_depois;
echo 'N de registos removidos: '.$nr_removidos;
?>
<p> <a href="listar.php"> Listar registos </a>
</body> </html>
}
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;
}