1 / 41

PHP

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.

Download Presentation

PHP

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PHP • PHP e a WWW • Funcionamento do PHP • PHP com Apache e MySQL • XAMPP

  2. PHP e a WWW • Páginas estáticas / Páginas dinâmicas O 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 <?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>

  7. Formulários HTML • Botões • Radio buttons • Seleccion lists • Input boxes • Checkbox • 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ão O protocolo HTTP (HiperTextTransferProtocol) 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 <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>

  14. Exemplo 2 <?php /*php_2.php*/ ?> <html> <head> <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> 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. 1 3 PHP BD 4 2 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.

  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 • Tipos de dados • Variáveis e constantes • Operadores • Estruturas de controlo

  23. PHP Operadores, tipos de dados e alguns caracteres especiais

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

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

  26. PHP Estruturas de controlo switch (selector) { case valor1: <bloco> break; case valor2: <bloco> break; … [default: <bloco>; ] } if(condição) <bloco de instruções> [else <bloco de instruções>] do <bloco de instruções> while (condição); while (condição) <bloco de instruções>; for (inicialização; condição; incremento) <bloco de instruções>;

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

  28. PHP • SQL / MySQL • Ligação a base de dados • Selecção e visualização de registos • Adicionar, Eliminar, Pesquisar e Editar registos

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

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

  31. Exemplo Servidor BD vendas Browser PHP Clientes Encomendas Fornecedores Artigos

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

  33. Listar dados de uma BD LISTAR

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

  35. Pesquisar dados numa BD PESQUISAR Código php para pesquisar dados da tabela

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

  37. Adicionar dados a uma BD ADICIONAR

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

  39. Eliminar dados numa BD ELIMINAR

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

  41. 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; }

More Related