Escolar Documentos
Profissional Documentos
Cultura Documentos
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:
php_2.php - Contm os comandos PHP que iro processar os dados inseridos no formulrio.
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)
1
PHP
BD
1 - O cliente solicita a pgina ao servidor web. Este, verificando que existe um script PHP, chama o mdulo PHP para efectuar o processamento.
2 - Se no script existirem comandos que abrem uma ligao a uma base de dados, o PHP trata de efectuar 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.
para construir aplicaes e web sites sofisticados, e de maneira mais simples do que outras alternativas.
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
PHP
Operadores
Estruturas de controlo
PHP
Tipos de dados Booleanos Inteiros, Strings, Array, Object Nmeros reais (floating point) \n \t \r
PHP
Variveis
$var=1234; //inteiro
$var=-1234; //inteiro $var= 1.234 //real
$var= 1.2e3
$var=5; $var2= O valor da varivel $var;
PHP
Arrays
0 1 2 3 4 5 6 7
PHP
Estruturas de controlo
if(condio) <bloco de instrues> [else <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
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 <$nregistos; $i++) { $registo = mysqli_fetch_assoc($result); echo '<tr> <td>' .$registo['CodCli']. '</td>'; echo '<td>' .$registo['Nome']. '</td>'; echo '<td>' .$registo['Morada']. '<td> </tr>'; }
ex.:
Exemplo
Servidor
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
<html> <head> <title>Mostrar</title> </head> <body> <h3>Mostrar cliente procurado</h3> <?php /*pesquisa.php*/ $nomeproc = $_POST['nome']; if (!$nomeproc) {echo "Volte atrs e escreva o nome.";} echo "<p>Nome procurado: $nomeproc. </p>"; $ligax = mysqli_connect('localhost', 'root',''); if (!$ligax){echo "<p> Falha na ligao."; 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
<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; }