1 Professor Luiz José Hoffmann Filho [email protected]PHP PHP e a WWW Funcionamento do PHP PHP com Apache e MySQL XAMPP Professor Luiz José Hoffmann Filho
2 PHP e a WWW Páginas estáticas / Páginas dinâmicasO PHP permite a criação de páginas dinâmicas.
3 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.
4 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…)
5 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.
6 Exemplo 1
7 Formulários HTML Botões Radio buttons Seleccion lists Input boxesCheckbox Etc…
8 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.
9 Métodos de transmissãoO 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.
10 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.
11 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.
12 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.
13 Exemplo 2
Nome
Idade
Qual o carro que mais gostas?
14 Exemplo 2
15 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)
16 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.
17 Porque utilizar o Apache?É o líder do mercado; É o mais seguro; Não tem concorrentes quanto à riqueza de recursos, estabilidade, performance, ...
18 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.
19 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!
20 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, ...
21 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
22 PHP SQL / MySQL Ligação a base de dadosSelecção e visualização de registos Adicionar, Eliminar, Pesquisar e Editar registos
23 Acesso a bases de dados com PHP1.º - Captar os dados 2.º - Estabelecer a ligação 3.º - Aplicar um comando SQL 4.º - Preparar os dados obtidos
24 Principais funções com suporte ao MySQLimproved 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); echo ' '; } ex.:' .$registo['CodCli']. ' '; echo '' .$registo['Nome']. ' '; echo '' .$registo['Morada']. '
25 Exemplo Servidor BD vendas Browser PHP Clientes EncomendasFornecedores Artigos
26 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);
27 Listar dados de uma BD LISTAR
28 Falha na ligação.';} Lista de clientes:
$ligax = mysqli_connect('localhost', 'root', ''); if (!$ligax) {echo '
for ($i=0; $i <$nregistos; $i++) { $registo = mysqli_fetch_assoc($result); echo ' Codigo: Nome: Morada: '; echo ' '; echo ''; } '.$registo['CodCli'].' '; echo ''.$registo['Nome'].' '; echo ''.$registo['Morada'].' '; echo '
Voltar à entrada
29 Pesquisar dados numa BDCódigo php para pesquisar dados da tabela
30
Nome procurado: $nomeproc.
"; $ligax = mysqli_connect('localhost', 'root',''); if (!$ligax){echo "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"; ?>| Codigo: | Nome: | Morada: | |
| ' .$registo['CodCli']. ' | '; echo '' .$registo['Nome']. ' | '; echo '' .$registo['Morada']. ' |
31 Adicionar dados a uma BD
32 Erro: Falha na ligação.'; exit;} Dados inseridos Dados não inseridos Novo cliente
$cod = $_POST['codcli']; $nome = $_POST['nome']; $morada = $_POST['morada']; echo 'Dados recebidos:
'; echo 'Código: '.$cod.'
'; echo 'Nome: '.$nome.'
'; echo 'Morada: '.$morada.'
'; $ligax = mysqli_connect('localhost', 'root', ''); if (!$ligax) {echo '
";
";
33 Eliminar dados numa BD ELIMINAR
34 "; Falha na ligação."; exit; } Não removido Remover cliente
$codrem = $_POST['codcli']; if (!$codrem) {echo 'Volte atrás e escreva o código do cliente a remover.'; } echo "Cliente a remover: $codrem.
";
35 Exemplos de validações em PHPif ($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;