Você está na página 1de 41

PHP

• PHP e a WWW

• Funcionamento do PHP

• PHP com Apache e MySQL

• XAMPP
PHP e a WWW

 Páginas estáticas / Páginas dinâmicas

O PHP permite a criação de páginas dinâmicas.


Informação dinâmica

O que fazer quando a informação que está no website


muda constantemente, como por exemplo as
cotações da bolsa?

Neste caso, os documentos estáticos em HTML não


são a melhor solução.

É necessário criar HTML dinâmico para que no


momento em que o cliente contacta o servidor lhe
seja enviada a informação actualizada.
PHP

 É uma linguagem de programação


vocacionada para o desenvolvimento de
aplicações 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 código PHP é embebido no código HTML dando


origem a um script contendo instruções específicas.

 O servidor lê o código PHP e interpreta os


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>
Formulários HTML

 Botões
 Radio buttons
 Seleccion lists
 Input boxes
 Checkbox
 Etc…
Formulários HTML

 method - Especifica o modo como a informação é


transmitida. Pode ser GET ou POST.

 action - Indica o nome e a localização do script PHP


que irá processar a informação que foi introduzida no
formulário.
Métodos de transmissão

O protocolo HTTP (HiperText Transfer Protocol) utiliza


vários métodos de manipulação e organização dos
dados.

Actualmente, os dois métodos mais utilizados para


submeter dados de formulários são o GET e o POST.

Ambos os métodos transferem dados do browser para


o servidor, a maior diferença entre eles é a maneira
como essa informação é transmitida.
GET

O browser acrescenta ao URL, especificado no atributo


ACTION, um "?" e os valores codificados;

Os dados não são encriptados, logo informações que


exigem segurança não devem ser manipuladas por este
método;

Suporta apenas até 128 caracteres, logo é útil para


valores pequenos.
POST

Os dados introduzidos num formulário fazem parte do


corpo da mensagem enviada para o servidor;

Pode encriptar os dados;

É possível transferir uma grande quantidade de dados.

Este é o método aconselhado.


Exemplo 2

 Situação em que são usados dois ficheiros:

form.html - É o local onde o utilizador fará os “inputs”.

php_2.php - Contém os comandos PHP que irão


processar os dados inseridos no formulário.
Exemplo 2

<html>
<head>
<title> formulário 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: Atenção à junção de


<html> texto com variáveis numa
<head> instrução 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)
1 3
PHP
BD
2 4
Cliente Servidor web

1 - O cliente solicita a página ao servidor web. Este,


verificando que existe um script PHP, chama o módulo PHP
para efectuar o processamento.
2 - Se no script existirem comandos que abrem uma ligação
a uma base de dados, o PHP trata de efectuar essa
ligação.
3 - Os dados pretendidos são então 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 página HTML devidamente formatada.
Porque utilizar o Apache?

 É o líder do mercado;

 É o mais seguro;

 Não tem concorrentes quanto à riqueza de recursos,


estabilidade, performance, ...
Porque utilizar o MySQL?
 Baixa exigência de recursos de hardware;

 Simplicidade de administração;

 É o mais veloz do mercado;

 Foi optimizado para as aplicações típicas da Web,

onde ocorrem mais consultas do que actualizações.


Porque usar PHP, Apache e
MySQL?
 Porque fornecem tudo o que necessitamos
para construir aplicações e web sites
sofisticados, e de maneira mais simples do
que outras alternativas.

 Principalmente porque são software livre!


Tenho que utilizar os três em
conjunto?
 Não, esta é apenas uma combinação
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
constituído 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


PHP

• Tipos de dados

• Variáveis e constantes

• Operadores

• Estruturas de controlo
PHP
Operadores, tipos de dados e
alguns caracteres especiais
Operadores Operadores
Operadores lógicos
Aritméticos relacionais
+ - * / % ! NOT == != < <=
+= -= *= /= %= && AND > >= === !==
++ -- || OR === (igualdade restrita)

Tipos de dados Alguns caracteres especiais


Booleanos \n Muda de linha
Inteiros, Strings, Array, Object
Números reais (floating point) \t Tabulação horizontal

\r Volta início da linha


PHP

Variáveis

$var=1234; //inteiro
$var=-1234; //inteiro
$var= 1.234 //real
$var= 1.2e3
$var=5;
$var2= “O valor da variável é $var”;

Em PHP o tipo de dados das variáveis não é


definido pelo programador.
PHP

Arrays
0 1 2 3 4 5 6 7
$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(condição) switch (selector) {


<bloco de instruções> case valor1: <bloco> break;
[else case valor2: <bloco> break;
<bloco de instruções>] …
[default: <bloco>; ] }

while (condição) do <bloco de instruções>


<bloco de instruções>; while (condição);

for (inicialização; condição; incremento)


<bloco de instruções>;
PHP

Exemplo

<table border=”1”>
<?php
for($i=1; $i<6; $i++) i3
{
echo '<tr>';
$q=$i*$i*$i;
echo "<td> $i </td>";
echo "<td> $q </td>";
echo '</tr>';
}
?>
</table>
PHP

• SQL / MySQL

• Ligação a base de dados

• Selecção e visualização de registos

• Adicionar, Eliminar, Pesquisar e Editar registos


Acesso a bases de dados
com PHP

1.º - Captar os dados


2.º - Estabelecer a ligação
3.º - Aplicar um comando SQL
4.º - Preparar os dados obtidos
Principais funções com suporte ao
MySQL
improved
mysqli_connect - Estabelece uma ligação 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 <$nregistos; $i++) {
$registo = mysqli_fetch_assoc($result);
ex.: echo '<tr> <td>' .$registo['CodCli']. '</td>';
echo '<td>' .$registo['Nome']. '</td>';
echo '<td>' .$registo['Morada']. '<td>
</tr>'; }
Exemplo

Servidor

BD vendas
Browser
Clientes Encomendas
PHP

Fornecedores Artigos
Ficheiro ligacao.php

$host = 'localhost';
$user = 'root';
$pwd = '';
$db = ‘dados';

$ligax=mysqli_connect($host, $user, $pwd) or


die ('Não conseguiu fazer a conexão ao servidor');
mysqli_select_db($ligax,$db);

<?php include (‘ligacao.php’);?>


Listar dados de uma BD

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 ligação.';}
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 dados numa BD

PESQUISAR
Código php para pesquisar dados da tabela
<html> <head> <title>Mostrar</title> </head>
<body> <h3>Mostrar cliente procurado</h3>
<?php /*pesquisa.php*/
$nomeproc = $_POST['nome'];
if (!$nomeproc)
{echo "Volte atrás e escreva o nome.";}
echo "<p>Nome procurado: $nomeproc. </p>";
$ligax = mysqli_connect('localhost', 'root','');
if (!$ligax){echo "<p> Falha na ligação."; exit; }
mysqli_select_db($ligax, 'vendas');
$procura = "Select * from clientes
where nome like ‘ %".$nomeproc."% ‘ ";
$result = mysqli_query($ligax, $procura);
$nregistos = mysqli_num_rows($result);
echo "Nº de registos encontrados: $nregistos";
?>
<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> <td>' .$registo['CodCli']. '</td>';
echo '<td>' .$registo['Nome']. '</td>';
echo '<td>' .$registo['Morada']. '<td> </tr>'; }
?> </table>
<p> <a href="listar.php"> Listar registos </a>
</body></html>
Adicionar dados a uma BD

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 'Código: '.$cod.'<br />';
echo 'Nome: '.$nome.'<br />';
echo 'Morada: '.$morada.'<br />';
$ligax = mysqli_connect('localhost', 'root', '');
if (!$ligax) {echo '<p> Erro: Falha na ligação.'; 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 não inseridos<br>";
?>
<p> <a href="index.htm">Voltar à entrada</a>
<p> <a href="listar.php">Listar clientes</a>
</body>
</html>
Eliminar dados numa BD

ELIMINAR
<html>
<head> <title> Remover </title> </head>
<body> <h2> Remover cliente </h2>
<?php
$codrem = $_POST['codcli'];
if (!$codrem) {echo 'Volte atrás e escreva o código do cliente a remover.'; }
echo "Cliente a remover: $codrem. <p>";
$ligax = mysqli_connect('localhost', 'root','');
if (!$ligax){echo "<p> Falha na ligação."; 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>Não 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>
Exemplos de validações 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;
}

Você também pode gostar