php php e a www funcionamento do php php com apache e mysql xampp

41
PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP

Upload: internet

Post on 17-Apr-2015

175 views

Category:

Documents


18 download

TRANSCRIPT

Page 1: PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP

PHP

• PHP e a WWW

• Funcionamento do PHP

• PHP com Apache e MySQL

• XAMPP

Page 2: 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.

Page 3: PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP

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.

Page 4: PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP

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…)

Page 5: PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP

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.

Page 6: PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP

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>

Page 7: PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP

Formulários HTML

Botões Radio buttons Seleccion lists Input boxes Checkbox Etc…

Page 8: PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP

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.

Page 9: PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP

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.

Page 10: PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP

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.

GET

Page 11: PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP

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.

Page 12: PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP

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.

Page 13: PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP

<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

Page 14: PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP

<?php /*php_2.php*/ ?><html><head><title> Resultado </title></head><body><?phpecho "O meu nome é ".$_POST['nome']. " ,tenho " .$_POST['idade']. " anos e gosto de carros da marca " .$_POST['marca'];?></body></html>

Exemplo 2

Nota: Atenção à junção de texto com variáveis numa instrução de escrita

Page 15: PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP

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)

Page 16: PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP

Cliente Servidor web

PHP BD

1

2

3

4

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.

Page 17: PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP

Porque utilizar o Apache?

É o líder do mercado;

É o mais seguro;

Não tem concorrentes quanto à riqueza de recursos, estabilidade, performance, ...

Page 18: PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP

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.

Page 19: PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP

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!

Page 20: PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP

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, ...

Page 21: PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP

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-ApacheM-MySQLP-PHPP-PERL

wamp - Windows, Apache, MySQL e PHP

lamp - Linux, Apache, MySQL e PHP

Page 22: PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP

PHP

• Tipos de dados

• Variáveis e constantes

• Operadores

• Estruturas de controlo

Page 23: PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP

Operadores Aritméticos

Operadores lógicosOperadores relacionais

+ - * / %+= -= *= /= %=

++ --

! NOT&& AND

|| OR

== != < <= > >= === !===== (igualdade restrita)

Tipos de dados

BooleanosInteiros, Strings, Array, ObjectNúmeros reais (floating point)

Alguns caracteres especiais

\n Muda de linha

\t Tabulação horizontal

\r Volta início da linha

PHP

Operadores, tipos de dados e alguns caracteres especiais

Page 24: PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP

Em PHP o tipo de dados das variáveis não é definido pelo programador.

$var=1234; //inteiro

$var=-1234; //inteiro

$var= 1.234 //real

$var= 1.2e3

$var=5;

$var2= “O valor da variável é $var”;

PHP

Variáveis

Page 25: PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP

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

Page 26: PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP

Estruturas de controlo

if(condição) <bloco de instruções>[else <bloco de instruções>]

switch (selector) { case valor1: <bloco> break; case valor2: <bloco> break; … [default: <bloco>; ] }

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

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

for (inicialização; condição; incremento) <bloco de instruções>;

PHP

Page 27: PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP

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

Page 28: PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP

PHP

• SQL / MySQL

• Ligação a base de dados

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

• Adicionar, Eliminar, Pesquisar e Editar registos

Page 29: PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP

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

Page 30: PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP

Principais funções com suporte ao MySQL

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 dadosex.: 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.:

improved

Page 31: PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP

Exemplo

Browser

Servidor

PHP

BD vendas

Clientes

ArtigosFornecedores

Encomendas

Page 32: PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP

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’);?>

Page 33: PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP

LISTAR

Listar dados de uma BD

Page 34: PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP

<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>

Page 35: PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP

Código php para pesquisar dados da tabela

PESQUISAR

Pesquisar dados numa BD

Page 36: PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP

<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>

Page 37: PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP

ADICIONAR

Adicionar dados a uma BD

Page 38: PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP

<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>

Page 39: PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP

ELIMINAR

Eliminar dados numa BD

Page 40: PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP

<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>

Page 41: PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP

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;

}