Programação Web Aula 11 - PHP



Documentos relacionados
PHP. Hypertext Pre-Processor

2 echo "PHP e outros.";

Linguagem de Programação. Introdução ao PHP. Prof Mauricio Lederer Ciência da Computação - UNIANDRADE 1

Introdução ao PHP. Prof. Késsia Marchi

OPERADORES E ESTRUTURAS DE CONTROLE

Instituto Federal do Sertão-PE. Curso de PHP. Professor: Felipe Correia

APOSTILA PHP PARTE 1

Programação Web com PHP. Prof. Wylliams Barbosa Santos Optativa IV Projetos de Sistemas Web

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP

CAPITULO 5 COMANDO DE FLUXO IF

PÓS-GRADUAÇÃO EM MATEMÁTICA COMPUTACIONAL INFORMÁTICA INSTRUMENTAL

Desenvolvimento de Aplicações Web. Prof. José Eduardo A. de O. Teixeira / j.edu@vqv.com.br

Programação WEB. Prof. André Gustavo Duarte de Almeida docente.ifrn.edu.br/andrealmeida. Aula III Introdução PHP

Internet e Programação Web

Linguagem de Programação III Aula 2 - Apresentação da Disciplina

Programação WEB II. Introdução. Variáveis, Constantes, Operadores, Estruturas de Seleção e Repetição Arrays e Vetores. Thiago Miranda dos Santos Souza

Treinamento em PHP. Aula 1. Ari Stopassola Junior

Sumário. Capítulo 1 O que é o PHP? Capítulo 2 Instalação do PHP Capítulo 3 Noções básicas de programação... 25

JSP - ORIENTADO A OBJETOS

Introdução ao Javascript

O código JavaScript deve ser colocado entre tags de comentário para ficar escondido no caso de navegadores antigos que não reconhecem a linguagem.

Para testar seu primeiro código utilizando PHP, abra um editor de texto (bloco de notas no Windows) e digite o código abaixo:

Panorâmica geral sobre PHP. PHP é uma linguagem que permite fazer. um ficheiro em PHP contem código PHP misturado com HTML.

Programação Web Prof. Wladimir

PHP() é uma linguagem de integração de servidor que permite a criação de paginas dinâmicas. Como todas

Lista de operadores de comparação - > Maior que - < Menor que - <= Menor ou igual a - >= Maior ou igual a - === Igual a -!

JavaScript (Funções, Eventos e Manipulação de Formulários)

Manipulação de Dados em PHP (Visualizar, Inserir, Atualizar e Excluir) Parte 2

Estruturas de controle no nível de sentença

Universidade Federal do Espírito Santo CCA UFES. Centro de Ciências Agrárias CCA UFES Departamento de Computação. JavaScript

2.3. PHP Tipos de dados e operadores

Programação Web Aula 4 - Javascript Parte 1 - O Núcleo

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

Introdução a PHP (Estruturas de Controle)

INF 1005 Programação I

Algoritmos em Javascript

Capítulo 1 Introdução A quem se destina Convenções utilizadas Evolução do PHP Capítulo 2 Sintaxe do PHP...

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis

Programação Web Prof. Wladimir

Informática I. Aula 6. Aula 6-12/09/2007 1

Programação Básica em Arduino Aula 2

2. OPERADORES ALGORITMOS, FLUXOGRAMAS E PROGRAMAS FUNÇÕES... 10

Programação: Estruturas de seleção

Programação para web JavaScript

Javascript 101. Parte 2

Aula 1. // exemplo1.cpp /* Incluímos a biblioteca C++ padrão de entrada e saída */ #include <iostream>

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

Programação WEB I Estruturas de controle e repetição

O que é o JavaScript?

Desenvolvendo Websites com PHP

Introdução a PHP (Um Programa PHP)

JavaScript (ou JScript)

HTML / JAVASCRIPT. A versão atual é o HTML5 (seus predecessores imediatos são HTML 4.01, XHTML 1.1, etc.).

PHP: Funções. Programação de Servidores Marx Gomes Van der Linden

CONVENÇÃO DE CÓDIGO JAVA

JavaScript 2.0X X

Construindo Aplicações Web com. PHPe MySQL. André Milani. Novatec

INTRODUÇÃO À LINGUAGEM PHP CESAR BEZERRA TEIXEIRA,MSC

Java II. Sérgio Luiz Ruivace Cerqueira

Guia de Consulta Rápida. PHP com XML. Juliano Niederauer. Terceira Edição. Novatec

Aluísio Eustáquio da Silva

Unidade IV: Ponteiros, Referências e Arrays

Características do PHP. Começando a programar

e à Linguagem de Programação Python

Conceitos de extensões Joomla!

Fundamentos de Programação. Turma CI-240-EST. Josiney de Souza.

JavaScript: Validação de Formulários. Prof. Ivanilton Polato

Algoritmos e Estrutura de Dados. Introdução a Linguagem Python (Parte I) Prof. Tiago A. E. Ferreira

INTRODUÇÃO À LINGUAGEM C++

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: Prof. Dr. Raimundo Moura

Curso de Programação Web com PHP Aula 01

Ajax Asynchronous JavaScript and Xml

Expressões Lógicas Comandos de Seleção

Construindo portais com Plone. Módulo 3 Templates

9 Comandos condicionais

Curso de Linguagem C

CURSO DE PROGRAMAÇÃO EM JAVA

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

Prof Evandro Manara Miletto. parte 2

Pesquisa Operacional na Tomada de Decisões. Conteúdos do Capítulo. Programação Linear. Lindo. s.t. Resolvendo Programação Linear Em um Microcomputador

GUIA PHP com MYSQL Autor: Everton Mendes Messias

Programação Web com Webdev 19 Julio Cesar Pedroso Conteúdo

Capítulo 2: Introdução à Linguagem C

1 O PHP E A WORLD WIDE WEB

PHP (Seções, Cookies e Banco de Dados)

PROJETO PEDAGÓGICO DE CURSOS

Primeiro contato com JavaScript

Conceitos básicos da linguagem C

Aplicativos para Internet Aula 01

Introdução ao HTML 5 e Implementação de Documentos

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos

Introdução aos cálculos de datas

2 Orientação a objetos na prática

Transcrição:

Programação Web Aula 11 - PHP Departamento de Informática UFPR 4 de Maio de 2015

1 Origens 2 Exemplo Exemplo - arquivo PHP Exemplo: arquivo cliente Características Sintáticas Variáveis Tipos Expressões Comandos Saída Operadores Condicionais Variáveis Arrays Criação e Atribuição Funções para lidar com Arrays Acesso Sequencial a Elem. de Array

Origens Rasmus Lerdorf (Apache Group), 1994 (aplicação pessoal). 1995 Primeiro pacote. PHP = Personal Home Page Tools. Posteriormente, PHP = PHP Hypertext Preprocessor.

Quando o navegador carrega uma página.html, e encontra uma referência a um arquivo com extensão.php,.php3 ou.phtml, então: ele envia uma requisição ao servidor indicando o arquivo; o servidor obtém o arquivo e envia ao interpretador php que: interpreta os trechos do arquivo que indicam código php e copia o resultado da execução para a saída (modo interpretação); copia o resto para a saída (modo cópia);

Exemplo Exemplo Os próximos slides mostram o funcionamento de um script PHP no lado do servidor e no lado do cliente. Não será possível usá-lo na prática pois o Dinf não instala servidores php por medida de segurança. Existem vários tutoriais, mas usaremos o da w3schools: http://www.w3schools.com/php/.

Exemplo - arquivo PHP Exemplo - arquivo PHP No script php abaixo, o trecho em vermelho está em modo interpretação e o trecho em preto está em modo cópia.. <?xml version = "1.0" encoding = "utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd"> <!-- today.php - A trivial example to illustrate a php document --> <html xmlns = "http://www.w3.org/1999/xhtml"> <head> <title> today.php </title> </head> <body> <p> <?php print "<b>welcome to my home page <br /> <br />"; print "Today is:</b> "; print date("l, F js"); print "<br />";?> </p> </body> </html>

Exemplo: arquivo cliente Exemplo: arquivo cliente Ao ser executado, irá gerar o seguinte arquivo enviado ao servidor: Observe que o resultado gerado pelo interpretador PHP substituiu o script. Em princípio, o cliente não vê o script. <?xml version = "1.0" encoding = "utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd"> <!-- today.php - A trivial example to illustrate a php document --> <html xmlns = "http://www.w3.org/1999/xhtml"> <head> <title> today.php </title> </head> <body> <p> <b>welcome to my home page <br /> <br />Today is:</b> Wednesday, April 8th<br /> </body> </html> </p>

Características Sintáticas Características Sintáticas No arquivo html, o script encontra-se entre os tags <?php> e </php>. A diretiva include("arquivo.inc") faz o interpretador substituir a diretiva pelo o arquivo indicado. As variáveis são sempre precedidas com o símbolo $. Regra sintática: $[a-z A-Z _][a-z A-Z _ 0-9]* Case-sensitive Palavras reservadas não são Case-sensitive (ou seja, While, WHILE, WhIlE são a mesma coisa. Exemplos de palavras reservadas and, break, case, etc.

Variáveis Variáveis Tipos Escalares: boolean, integer, double, string Tipos Compostos: array, object Tipos Especiais: resource, NULL Declaração implícita de tipos. O tipo é denido em atribuição à var. Var. sem atribuição: unbound variable (valor NULL). IsSet é uma função booleana que indica se a var. é ou não unbound.

Variáveis Tipos Integer corresponde ao long em C. Double corresponde ao double em C. String 'String $var' (literal) ou "String $var"(substituição). Codicação String Projetado para inglês. Cuidado com UTF-8, Unicode, etc. Boolean [TRUE FALSE] Case-sensitive.

Variáveis Expressões Aritméticas String Semelhantes a C: +,-,*,/,%,++, Funções pré-denidas: floor(double), ceil(double), round(integer), etc. funções pré-denidas: strlen, strcmp, chop, substretc. $str = "Apples are good"; $sub = substr($str, 7, 1); # = "a"

Comandos Comandos Vamos examinar os comandos PHP para: Saída; Expressões de Comparação; Comandos de Comparação; Comandos Repetitivos; Arrays

Saída Saída print para saída não formatada printf para saída formatada Exemplos: print("o resultado é $res <br />"); print("o resultado é %d <br />", $res);

Saída Relacionais: Semelhantes a C: >, <, >=, <=. ==,!= === é TRUE se os dois operandos são do mesmo tipo e contém o mesmo valor.!== que é not === executa coerção entre String e Números. Por exemplo, ao comparar String com Integer ou Double, converte para o String para o outro operador e compara. a comparação de dois String contendo números é interessante: ("12.0"== "12") TRUE Booleanos: and, or, xor,!, &&,. A precedência de && e é menor que and e or.

Saída if ($dia == "Sabado" $dia == "Domingo") $hoje = "Feriado"; else { $hoje = "Trabalho"; $acordar = TRUE; } switch ($dia) { case "Feriado" : print "<br> FESTA </br>"; break; case "Trabalho": print "<br> Levantar </br>"; break; default : print "<br> Me perdi </br>"; }

Saída Semelhantes a C: while, for, do-while Para Arrays: foreach

Arrays Características: Combinação de Array convencional com Hash; Cada Array tem duas partes: chave e valor; Em Array convencional, a chave é um inteiro não negativo;

Criação e Atribuição Criação: $list[0] = 17; $list[1] = "Um string"; $list[] = 42; # Posição [2] (primeira disponível) $list = array(); $list = array(14, 24, 47, 89); $list = array(1=>14, 2=>24, 3=>47, 4=>89); $list = array("pedro"=>14, "Joao"=> 24, "Carlos"=>47, 6=>"Junior"); Atribuição: $list['carlos']=48; # atribuição múltipla $trees = array ("oak", "pine", "binary"); list ($a1, $a2, $a3) = $trees # equivalente a $a1="oak", $a2="pine",$a3="binary

Funções para lidar com Arrays unset: elimina elementos indicados do array ou o array todo. $list = array[2, 4, 6, 8] unset ($list[2]) # $list passa a ter três elementos:[2,4,8] unset ($list) # $list é eliminado array_keys: cria um novo Array somente com as chaves do parâmetro. array_values: cria um novo Array somente com os valores do parâmetro. $heights = array ("Mon" => 74, "Tue" => 70, "Wed" => 67); $days = array_keys ($heights) # $days = [0 => "Mon", 1 => "Tue", 2 => "Wed"] $temps = array_keys ($heights) # $temps = [0 => 74, 1 => 70, 2 => 67] array_key_exists(chave, Array) is_array(var) sizeof(array) explode(delim, String) converte String em Array usando delim como separador; implode(delim, Array)

Acesso Sequencial a Elem. de Array Além do acesso via chaves, PHP também permite acesso sequencial a elementos de um array. Para isto, cada array contém uma referência ao elemento atual através da função current(array). Para seguir para o próximo elemento, usa-se a função next(array). Assim como uma lista, o último elemento aponta para FALSE. $city = current (cities); print ("$city <br />"); while ($city = next(cities)) print ("$city <br />"); Quando alguns elementos tiverem o conteúdo FALSE, utiliza-se each ao invés de next, pois ele retorna o par (chave, valor) ao invés de só o valor.

Acesso Sequencial a Elem. de Array Além do acesso via chaves, PHP também permite acesso sequencial a elementos de um array. Para isto, cada array contém uma referência ao elemento atual através da função current(array). Para seguir para o próximo elemento, usa-se a função next(array). Assim como uma lista, o último elemento aponta para FALSE. $city = current (cities); print ("$city <br />"); while ($city = next(cities)) print ("$city <br />"); Quando alguns elementos tiverem o conteúdo FALSE, utiliza-se each ao invés de next, pois ele retorna o par (chave, valor) ao invés de só o valor.

Diversos em Arrays Exemplo com each: $salaries = array ("Mike" => 3000, "Jerry" => 1000, "Fred" => 500); while ($employee = each ($salaries)) { $name = $employee ["key"]; $salary = $employee ["value]; print ("The salary of $name is $salary <br />"); } As funções array_push e array_pop são úteis para implementar pilha em arrays. O comando foreach é um comando repetitivo para acessar todos os elementos de um array. foreach ($list as $temp); #list é o array, temp é a var. print ("$temp <br \>); A função sort ordena o array de acordo com o value e substitui key por {0, 1, e... }. A função asort ordena array de acordo com o value mantendo as key originais. A função ksort ordena array de acordo com key.

Funções Estrutura geral: function nome ([parametros]) {... } o nome da função não é case sensitive (sum == SUM); comando return indica o valor a ser retornado pela função. Se não existe, não retorna nada. Para usar funções de arquivos externos, usar comando include. o número de parâmetros formais pode ser diferente dos parâmetros reais. Excessos de parâmetros reais são ignorados. Falta de parâmetros reais fazem os parâmetros formais serão unbound.

Passagem de parâmetros Padrão: passagem por valor Passagem por referência: Método 1 (usando & no parâmetro formal): function set_max (&$max, $first, $second) { if ($first >= $second) $max = $first else $max = $second; } Passagem por referência: Método 2 é usar & no parâmetro real Escopo de variáveis: http://www.w3schools.com/php/php_variables.asp

PHP e Form http://www.w3schools.com/php/php_forms.asp Estudo adicional: http://www.w3schools.com/php/ Problemas: por ser simples, PHP é a "porta de entrada"de programadores no mundo da web. houveram vários casos de quebra de segurança (principalmente sql injection). Muitos eram problemas dos interpretadores, outros de programadores. existem muitos frameworks, talvez demais: http://www.phpframeworks.com/, Referência a problemas de segurança: http://blog.templatemonster.com/2014/05/08/ php-security-issues/. Procure por outros.