Professor Luiz José Hoffmann Filho

1 Professor Luiz José Hoffmann Filho [email protected]...
Author: João Vítor Farias Caetano
0 downloads 1 Views

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 Resultado

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 formulário PHP

Nome

Idade

Qual o carro que mais gostas?

14 Exemplo 2 Resultado echo "O meu nome é ".$_POST['nome']. " ,tenho " .$_POST['idade']. " anos e gosto de carros da marca " .$_POST['marca']; ?> Nota: Atenção à junção de texto com variáveis numa instrução de escrita

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 ' ' .$registo['CodCli']. ''; echo '' .$registo['Nome']. ''; echo '' .$registo['Morada']. ' '; } ex.:

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

Lista de clientes:


$ligax = mysqli_connect('localhost', 'root', ''); if (!$ligax) {echo '

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 "; ?>

for ($i=0; $i <$nregistos; $i++) {$registo = mysqli_fetch_assoc($result);echo '';echo '';echo '';echo ''; echo '

';}
Codigo: Nome: Morada:
'.$registo['CodCli'].' '.$registo['Nome'].' '.$registo['Morada'].''; echo '

Voltar à entrada

29 Pesquisar dados numa BDCódigo php para pesquisar dados da tabela

30 Mostrar

Mostrar cliente procurado

$nomeproc = $_POST['nome']; if (!$nomeproc) {echo "Volte atrás e escreva o nome.";} echo "

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"; ?>

for ($i=0; $i <$nregistos; $i++) { $registo = mysqli_fetch_assoc($result); echo '';echo '';echo ''; }?>
Codigo: Nome: Morada:
' .$registo['CodCli']. ' ' .$registo['Nome']. ' ' .$registo['Morada']. '

Listar registos

31 Adicionar dados a uma BD

32 Inserir

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 '

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 "

Dados inseridos
"; else "

Dados não inseridos
"; ?>

Voltar à entrada

Listar clientes

33 Eliminar dados numa BD ELIMINAR

34 Remover

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.

"; $ligax = mysqli_connect('localhost', 'root',''); if (!$ligax){echo "

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 "

Não removido
"; $nr_depois = mysqli_num_rows($result); $nr_removidos = $nr_antes - $nr_depois; echo 'Nº de registos removidos: '.$nr_removidos; ?>

Listar registos

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;