Programção PHP
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Programção PHP

on

  • 6,660 views

Curso de progamação em php e mysql.

Curso de progamação em php e mysql.

Statistics

Views

Total Views
6,660
Views on SlideShare
6,639
Embed Views
21

Actions

Likes
3
Downloads
192
Comments
0

1 Embed 21

http://www.slideshare.net 21

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Programção PHP Presentation Transcript

  • 1. Aplicações WEB com PHP Desenvolvimento de Aplicações para WEB com PHP e MySQL Por Tadeu Ferreira Oliveira 1 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 2. Conteúdo Programático ■ A Linguagem PHP ■ Programando em PHP ■ Banco de Dados ■ Segurança 2 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 3. A linguagem PHP ■ Porque PHP? ■ O conjunto LAMP (Linux Apache Mysql PHP) ■ Requisição HTTP e Respostas ■ Os Métodos GET e POST ■ Scripts de Cliente e Scripts de Servidor ■ Hello World! 3 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 4. Programando em PHP ■ Sintaxe ■ Variáveis ■ Obtendo dados de uma página HTML ■ Vetores ■ Repetição ■ Condicionais (if e switch) ■ Funções ■ Classes ■ Exemplos ■ Delimitando código PHP dentro do HTML 4 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 5. Banco de Dados ■ Conexão com o banco de Dados ■ Executando uma query de consulta ■ Obtendo o resultado ■ Formas de obtenção do resultado de uma query ■ Sessões ■ Autenticando um usuário 5 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 6. Segurança ■ Conceitos básicos ■ SQL Injection ■ XSS(Cross-site-scripting) ■ Protegendo as senhas de seu usuário 6 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 7. A Linguagem PHP ■ Por quê PHP?  Sintaxe parecida com C/C++ porém simplificada  Desenvolvimento rápido  Altamente integrada ao Servidor WEB mais usado no mundo: Apache  Desenhada para a Internet  Software Livre 7 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 8. LAMP: tudo que você precisa ■ Linux ■ Linux Sistema  Sistema Operacional Operacional Livre ■ Apache ■ Apache o Servidor  Servidor WEB WEB mais usado no ■ MySQL mundo  Servidor de Banco ■ MySQL Open Source de Dados parceiro do PHP a ■ PHP  Linguagem muito tempo ■ Desenvolvimento no Interpretada Windows ■ Execução no Linux 8 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 9. Programando na WEB ■ O protocolo HTTP PHP está (4) aqui!! Response (1) (2) Request Dados APACHE (3) Dados MySQL 9 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 10. Programando na WEB ■ Requisições e respostas HTTP ■ GET  Passado na URL  Restrições de tamanho  Claramente visível a qualquer usuário ➔ Ex.: - http://www.ig.com.br/notcia.php?data=28052007&usuario= Tadeu ■ POST  Passado no cabeçalho HTTP  Espaço de para os parâmetros muito maior  Pouco visível ao usuário comum - www.ig.com.br/notcia.php 10 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 11. O Método GET ■ As variáveis são passadas em texto junto da URL ■ Composição  http://site.com/pagina.php?var1=valor1&var2= valor2 ■ O Limite para passagem de variáveis é de 255 bytes ■ O texto deve ser URL Encoded  Use a função urlencode(); ■ Assim caracteres especiais são trocados pelo seu código em hexadecimal  Ex: O texto: ➔ “Paca Tatu Cutia Não” ficaria ➔ “Paca+Tatu+Cutia+N%E3o” 11 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 12. O Método POST ■ Não está limitado ao tamanho da URL ■ Não precisa ser explicitamente URL Enconded ■ É passado apenas usando <form> HTML ■ Invisível ao usuário comum ■ Não dá pra usar em links 12 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 13. Script Cliente X Script Servidor ■ Não confunda banana com laranja 13 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 14. Hello World! ■ Mãos à Obra! <?php echo(“Hello World”); ?> 14 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 15. Sintaxe ■ Linguagem comum estruturas de repetição e condicionais ■ Pode ser utilizada Orientação a Objetos ■ Suporte a procedimentos e funções ■ Fracamente Tipada ■ Linguagem Interpretada ■ Comentários de uma linha com //  Ou /**/ para mais de uma linha <?php /*Este é um comentário PHP de várias linhas, tudo que estiver dentro dele será ignorado*/ echo(“Hello World”); //este é um comentário de uma linha ?> 15 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 16. Variáveis ■ Não precisam ser declaradas ■ São identificadas por ter um $ na frente ■ Nomes de variáveis válidos começam com uma letra ou _ e podem ter números ■ As variáveis começadas por __ (dois underlines são para uso interno) ■ CaSe-SeNsItIvE ■ Exemplos <?php $a = 1; $codigo = “S0003”; $usuario1 = “Tadeu”; $_u_ = (3 * 5) + $a; $__NAO_USE_ISSO__ = 1; ?> 16 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 17. Strings ■ Concatenar usando .(Ponto) ■ “ e ' são diferentes ■ “$variavel” != '$variavel' ■ Caracter de escape  ■ Caracteres Especiais  “n”  “t” 17 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 18. Vetores ■ O PHP suporta vetores e matrizes; ■ Não precisam ser declarados explicitamente ■ Podem ter índices numéricos e índices <?php textuais é um vetor com índices numéricos //este $vet[0] = “banana”; $vet[1] = “maçã”; $vet[2] = “caju”; //este é um vetor com índices textuais $vet[“carro”] = “vectra”; $vet[“nome”] = “Rasmus”; $vet[“senha”] = “A5D151F5E31F5B5CF15”; //esta é uma matriz $matriz[0][0] = 1; $matriz[0][1] = 2; $matriz[1][0] = 3; $matriz[1][1] = 4; ?> 18 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 19. Obtendo dados de uma página ■ Depende do method do <form> ■ $_POST ■ $_GET <?php echo(“Olá”.$_POST[“nome”]); ?> 19 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 20. A Tag <FORM> ■ <form  name  action  method ➔ GET <form> ➔ POST <input type=text name=login> <input type=password name=senha> ■ > <input type=submit value=Entrar> ■ <input </form>  name  type ➔ text ➔ password ➔ submit ■ > 20 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 21. Condicionais (if e switch) ■ IF $politico = quot;empregadoquot;; if ($politico == quot;aposentadoquot;){ echo(quot;Vida mansa...quot;); }else{ echo(quot;Vida boa...quot;); } 21 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 22. Operadores Relacionais ■ ==  igual ■ !=  diferente ■ <=  menor ou igual ■ >=  maior ou igual ■ ===  totalmente igual 22 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 23. Repetição ■ WHILE ■ $i = 1; ■ while($i < 3){ echo(quot;Oi<br>quot;); ■ $i++; ■ } ■ DO – WHILE $i = 1; ■ do{ ■ echo(quot;Oi<br>quot;); $i++; ■ }while($i < 3); ■ 23 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 24. Repetição ■ FOR ■ for($i=1;$i<=3;$i++){ ■ echo(quot;Oi<br>quot;); } ■ ■ FOREACH ■ $vet[0] = quot;Oiquot;; $vet[1] = quot;Oiquot;; ■ $vet[2] = quot;Oiquot;; ■ foreach($vet as $item){ echo($item.quot;<br>quot;); ■ } 24 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 25. Condicionais (if e switch) ■ SWITCH $time = quot;flamengoquot;; switch($time){ case quot;flamengoquot; : echo(quot;Voou...quot;); break; case quot;grêmioquot; : echo(quot;Ficou...quot;); break; case quot;vascoquot; : echo(quot;Voou...quot;); break; case quot;sergipequot; : echo(quot;ãhn!?quot;); break; default : echo(quot;Time desconhecidoquot;); break; } 25 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 26. Funções ■ A biblioteca de Funções pré-definidas do PHP é um dos seus grandes trunfos ■ Acessível em:  http://www.php.net/manual/pt_BR/funcref.php ■ Funções definidas pelo usuário  Não têm tipo de retorno definido <?php //definição de função function soma($num1, $num2){ echo(quot;Antes<br>quot;); return $num1 + $num2; //linha abaixo não executará por causa do return echo(quot;Depois<br>quot;); } echo(soma(1,2)); ?> 26 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 27. Funções ■ Passagem de parâmetros  Padrão por Valor  Por Referência utiliza-se o operador & <?php //argumento passados por referência function soma(&$num1, &$num2){ echo(quot;Antes<br>quot;); return $num1 + $num2; } echo(soma(1,2)); ?> 27 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 28. Classes ■ Suporte no PHP5.0 melhorado ■ Exemplo <?php class ClasseSimples { // declaração de membro public $var = 'um valor padrão'; // declaração de método public function getVar() { return $this->var; } } ?> 28 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 29. Classes - Construtor e Destrutor ■ Existem duas funções especiais em toda classe ■ __contructor() __destructor() ■ <?php class ClasseSimples{ function __construct() { echo(quot;Criando Objetoquot;); } function __destruct() { echo(quot;Finalizando Objetoquot;); } } $objSimples = new ClasseSimples(); ?> 29 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 30. Classes – Visibilidade de Membros ■ public ■ protected ■ private ■ Caso não seja especificado o padrão é public 30 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 31. Código PHP dentro do HTML <HTML> <BODY> Lista de Nomes: <form> <?php for($i=1;$i<5;$i++){ echo(“<input type=text><br>”) } ?> <input type=submit> </form> </BODY> </HTML> 31 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 32. Conexão com o banco de Dados ■ Funções específicas para cada banco ■ Melhor performance ■ Mais dependência do servidor de banco de dados ■ MySQL X PostgreSQL 32 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 33. Conectando com o MySQL ■ Funções da API do MySQL ■ mysql_connect(servidor,usuario,senha); Conecta ao banco de dados retornando um link  para a conexão  Retorna false caso a conexão não tenha sido possível <?php $con = mysql_connect(“localhost”, ”root”, ”tiradentes”); if($con){ echo(“conexão efetuada com sucesso”); }else{ echo(“Erro na conexão com o banco de dados”); } 33 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 34. Executando uma query de consulta ■ Após efetuar a conexão podemos usar o link para efetuar queries ■ Selecionar o banco de dados com mysql_select_db(banco,conexão) ■ Efetuar a query com o comando mysql_query(query, conexão) <?php if (mysql_select_db(“test”,$con)){ $result = mysql_query(“select * from tabela”); }else{ echo(“O banco de dados não pode ser selecionado.”) } ?> 34 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 35. Obtendo o resultado ■ O PHP retornará os resultados da query em um vetor ■ Dependendo de como o resultado for obtido será um vetor cujos índices são numéricos ou o nome dos campos. <?php if ($linha = mysql_fetch_array($result)){ echo($linha[0]); }else{ echo(“Nenhuma informação encontrada”); } ?> 35 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 36. Obtendo todas linhas de uma query ■ Receita de bolo <?php while($linha = mysql_fetch_array($result)){ echo($linha[“nome_do_campo”].”<br>”); } ?> 36 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 37. Executando query de manutenção ■ Feita da mesma maneira da query de consulta ■ Retorna true caso a query tenha executado corretamente ■ Pode se usar o comando mysql_affected_rows para descobrir quantas linhas foram afetadas pela última query executada 37 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 38. Sessões ■ HTTP não é orientado a conexão ■ Maneira de identificar um usuário ■ Baseada em cookies ■ Os dados são armazenados no servidor ■ Apenas um cookie é gravado no cliente 38 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 39. Sessões - Cookies ■ Um cookie é um valor que após gravado pelo servidor o browser do cliente é responsável por enviar a cada requisição ■ Assim o PHP envia um número para o cliente no início da sessão ■ Esse número identifica um arquivo no servidor onde estão os dados daquela sessão 39 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 40. Exemplo de uso de sessão ■ Sempre que for necessário acessar informações na sessão deve-se chamar a função session_start() ■ Essa função é responsável por preencher o vetor especial $_SESSION com as variáveis registradas na sessão atual ■ Caso queira terminar a sessão antes do tempo determinado pode-se usar a função session_unset() e session_destroy() 40 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 41. Autenticando um usuário <?php session_start(); if(isset($_SESSION[quot;nomequot;])){ echo(quot;Olá quot;.$_SESSION[quot;nomequot;]); }else{ echo(quot;Você não está autenticado.quot;); } ?> 41 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 42. Conceitos básicos de Segurança ■ Se você está online você está vulnerável ■ Não existe sistema 100% seguro ■ Existem sistemas mais seguros que outros 42 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 43. SQL Injection ■ Não confie no usuário ■ Entradas de usuários são a porta de entrada no seu servidor ■ Sempre use a função addslashes() para retirar aspas e caracteres especiais <?php $query = “select * from usuario where”. “ senha = '”.$_POST[senha]”. “' and login = '”.$_POST[senha].”'”; //e se o cara digita na senha algo inválido vai //ser inserido na sua query ?> 43 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 44. XSS(Cross-site-scripting) ■ Consiste em inserir código javascript ou php dentro de uma página ■ O usuário preenche um texto e envia ao site que adiciona esse texto a uma página ■ Comum em mural de recados ■ Coitado do ORKUT 44 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 45. Protegendo senhas de seu usuário ■ Ao enviar senha de usuário pela WEB cuidado você pode estar sendo vigiado ■ É possível interceptar uma requisição HTTP na rede ■ Para garantir a “invisibilidade” dos dados pode-se usar HTTPS ■ No Yahoo-Mail a tela para digitar a senha é HTTPS enquanto o resto do site em HTTP comum 45 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 46. PHP – Tópicos Especiais ■ MVC no PHP com Smarty ■ Abstração de banco de dados ■ PHP também faz aplicações para desktop com PHP-GTK ■ Pode criar imagens dianmicamente com a biblioteca GD ■ Instalação do PHP com APACHE no Windows 46 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007
  • 47. Obrigado Para dúvidas correções e comentários acesse www.notnet.blogspot.com ou tadeu_fo@yahoo.com.br 47 Desenvolvimento de Aplicações para WEB com PHP/MYSQL - Tadeu Ferreira Oliveira - 2007