PHP Mauro César Lopes 27-11-2008.

Slides:



Advertisements
Apresentações semelhantes
«Forte do Bom Sucesso (Lisboa) – Lápides 1, 2, 3» «nomes gravados, 21 de Agosto de 2008» «Ultramar.TerraWeb»
Advertisements

IFTO ESTRUTURA DE DADOS AULA 05 Prof. Manoel Campos da Silva Filho
Estruturação de Linguagens (Pascal e C++)
PRÓ-INFORMÁTICA QUALIFICAÇÃO PROFISSIONAL
Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Material II-Bimestre Conceitos de lógica.
Introdução à Programação Engenharia da Computação
Nilo Menezes – Lógica de Programação –
A busca das mulheres para alcançar seu espaço dentro das organizações
Vamos contar D U De 10 até 69 Professor Vaz Nunes 1999 (Ovar-Portugal). Nenhuns direitos reservados, excepto para fins comerciais. Por favor, não coloque.
Operadores e Funções do LINGO
Parte I Capítulo 5 Reutilizando código e escrevendo funções.
14/10/09 Uma animação possui: Início; Passo; Fim; 1.
Exercício do Tangram Tangram é um quebra-cabeças chinês no qual, usando 7 peças deve-se construir formas geométricas.
Nome : Resolve estas operações começando no centro de cada espiral. Nos rectângulos põe o resultado de cada operação. Comprova se no final.
Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 3.
Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 3.
Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 4.
Universidade Federal de São Carlos Introdução à Linguagem C Comandos.
Campus Curitiba Departamento Acadêmico de Matemática Angela Olandoski Barboza UTFPR – Damat.
Algoritmos e Programação Linguagens de Programação Teoria Aula 5 (05/05) Universidade Federal do Vale do São.
Curso de ADMINISTRAÇÃO
EXPRESSÕES ARITMÉTICAS
EXPRESSÕES ARITMÉTICAS
Linguagem PHP Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Linguagem PHP Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Linguagem PHP Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Linguagem PHP Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Material I-Bimestre Introdução Programação.
Tipos de dados, valores literais e variáveis
Aula 4 Nomes, Vinculações, Tipos e Escopos
Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos
PHP Mauro César Lopes
Introdução ao JavaScript
Laboratório de Programação de Computadores I
Revisão da Linguagem C.
Classes e objetos Arrays e Sobrecarga
Estrutura de decisão e repetição em JAVA
Classes e objetos P. O. O. Prof. Grace.
Renda até 2 SM.
Diagnósticos Educativos = Diagnósticos Preenchidos 100% = 1.539
PHP Tipos de dados Constantes.
Por André Luis e Arthur Kalsing Mini-curso de PHP.
Curso básico de PHP 1 Vantagens: Gratuito Multiplataforma Estável Rapidez Comunicação.
CATÁLOGO GÉIA PÁG. 1 GÉIA PÁG. 2 HESTIA PÁG. 3.
PROCESSOS PRINCIPAIS Alunos - Grau de Satisfação 4971 avaliações * Questões que entraram em vigor em 2011 ** N.A. = Não Aplicável Versão: 07/02/2012 INDICADORES.
Trabalho sobre Cor Thiago Marques Toledo.
FTIN Formação Técnica em Informática
Seminário 1: Revisão de C
Programação de Computadores
Projeto Medindo minha escola.
O Portal do Estudante de Computação
Programação em C++ Compiladores
Algoritmo e Programação
1 Aplicações do Fecho Regular. 2 A interseção de uma linguagem livre de contexto e uma linguagem regular é uma linguagem livre de contexto livre de contexto.
PROGRAMAÇÃO PARA INTERNET Prof.: Jean Carlo Mendes
CONCEITOS FUNDAMENTAIS
Olhe fixamente para a Bruxa Nariguda
Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;
3ª PESQUISA DE REMUNERAÇÃO
Equipe Bárbara Régis Lissa Lourenço Lucas Hakim Ricardo Spada Coordenador: Gabriel Pascutti.
Algumas notas sobre a linguagem de programação C
Aula prática 2 Operadores e Expressões Comandos de Decisão Comentários
José Francisco PHP & MySQL. Os slides originais são parte do material de cursos anteriores do curso de PHP, ministrados por Sérgio Clemente.
JAVASCRIPT Programação Web. O que é  E uma linguagem interpretada que e executada na maquina do cliente  Não esta associada ao framework java  Não.
11 Revisão da Linguagem C Prof. Kariston Pereira Adaptado de Material gentilmente fornecido pelo Prof. Rui Tramontin (DCC/UDESC)
PROGRAMAÇÃO PARA INTERNET Prof.: Jean Carlo Mendes
VARIÁVEIS Desenvolvido pelo Mestrando Rodrigo Moreira Barreto – VHLab (Virtual Humans Simulation Laboratory – PUCRS) 1 Desenvolvido por: Rodrigo Moreira.
Programação para Internet Rica– Aula 05 Prof. Me. Ronnison Reges Vidal.
 Linguagem do tipo script  Roda do lado do servidor – “server-side”  Suporte à vários BDs (MySQL, Postgres, Oracle, entre outros.)  Ferramentas grátis.
Tecnologia para Internet - II
Transcrição da apresentação:

PHP Mauro César Lopes 27-11-2008

PHP Desenvolvido originalmente por Rasmus Lerdorf em 1994 site do PHP: http://www.php.net

Histórico PHP/FI (Forms Interpreter) (1995) PHP/FI 2.0 (1997) PHP 3.0 (Junho de 1998) PHP 4.0 (maio de 2000) PHP 5.0 (Julho de 2007)

Áreas que os scripts PHP são usados Scripts no lado do servidor (server-side) Scripts de linha de comando Aplicações Desktop

Sistemas operacionais Linux Unix like: Solaris, OpenBSD, MacOS X, ... Microsoft Windows

Servidores HTTP Apache IIS (Internet Information Service)

Tipo de programação Procedural Orientada a Objetos

Funcionalidades do PHP Gerar HTML Geração de imagens Arquivos PDF Animações em Flash

Suporte a banco de dados MySQL Oracle Interbase PostgresSQL Outros ...

Criação de scripts PHP Todo trecho de programa PHP deve estar entre as tags <?php e ?>para que o servidor Web saiba que esse trecho trata-se de um código em PHP e que deve ser processado Tags de abertura e fechamento: <?php e ?>

Variáveis Inicia por $ seguido de uma letra ou _ - é case sensitive, isto é, sensível ao caso (distinção entre letras maiúsculas e minúsculas) Por exemplo, a variável $Cor é completamente diferente da variável $cor

Comentários De uma linha: De mais de uma linha: // este é o comentário de uma linha # este é o comentário de uma linha De mais de uma linha: delimitado por /* e */

Tipos de dados Não é necessário declarar uma variável antes de usá-la. Basta atribuir um valor inicial. A checagem de tipos é feita dinamicamente. Exemplo: $x=5; $x="policamp"; $x=3.14; Inteiro Ponto flutuante String Array Objeto Checagem dinâmica de tipos

Inteiros (integer ou long) $x = 4567; # inteiro $y = -127; # inteiro negativo $o = 0116; # inteiro em representação octal (base 8) $hex = 0x0F; # inteiro em representação hexadecimal (base 16)

Ponto Flutuante (double ou float) $PI=3.14; $MOL=6.02e23; # uso da notação científica

Strings Podem ser delimitadas por aspas simples (literal) ou aspas duplas (onde há interpretação de varáveis e caracteres especiais). \n \r \t \\ \$ \' \"

Booleano Expressa um valor lógico que pode ser verdadeiro (TRUE) ou falso (FALSE) Exemplo: <?php $valida=true; if($valida) { $a = 1; } ?>

Arrays Podem ser definidos como mapeamentos ou vetores indexados Exemplo: <? $cores[0]="Red"; $cores[1]="Green"; $cores[2]="Blue"; ?> Arrays são mapas ordenados. Um mapa é um tipo que relaciona valores para chaves. Este tipo é otimizado de várias maneiras, então você pode usá-lo como um array real, ou uma lista (vetor), hashtable (que é uma implementação de mapa), dicionário, coleção, pilha, fila e provavelmente mais. Como você pode ter outro array PHP como um valor, você pode facilmente simular árvores.

Arrays - tipos de índices Ordenado  baseado em número (começa no 0) Associativo  formado por caracteres alfanuméricos

Arrays $cores = array("Red", "Green", "Blue"); ou $cores[]="Red"; $cores[]="Green"; $cores[]="Blue";

Arrays Associativos São conjunto ordenados de chaves e valores, onde cada valor é acessado através de uma chave associada.

Arrays Associativos <?php $cor['red']=0; $cor['green']=255; $cor['blue']=0; ?> ou $cores=array('red'=>0, 'green'=>1, 'blue'=>2); Exemplo: <?php $cores=array('red'=>0, 'green'=>1, 'blue'=>2); foreach( $cores as $key => $value) { echo "$key => $value\n"; } ?>

Arrays (3) Usamos a função unset() para destruir todo o array.

pseudo-types São tipos "falso" que ajudam da legibilidade: mixed: indica que o parâmetro pode aceitar múltiplos tipos mas não necessariamente todos os tipos. number: indica que o parâmetro pode ser tanto integer ou float callback Mixed: indica que o parâmetro pode aceitar múltiplos tipos mas não necessariamente todos os tipos. Number: indica que o parâmetro pode ser tanto integer ou float mixed mixed indica que um parâmetro pode aceitar vários (mas não necessariamente todos) os tipos gettype(), por exemplo, aceita todos os tipos do PHP, enquanto str_replace() somente aceita strings e arrays. number number indica que um parâmetro pode ser tanto um integer ou float. callback Algumas funções como call_user_func() ou usort() aceitam callback de funções definidas por usuário como parâmetro. Funções de callback não podem ser somente simples funções, mas também métodos de objetos incluindo métodos estáticos de classes. Uma função PHP é simplesmente passado pelo seu nome como uma string. Você pode passar qualquer função nativa ou definida por usuário. Note que construtores da linguagem como array(), echo(), empty(), eval(), exit(), isset(), list(), print() ou unset() não podem ser chamados usando um callback. A method of an instantiated object is passed as an array containing an object as the element with index 0 and a method name as the element with index 1. Static class methods can also be passed without instantiating an object of that class by passing the class name instead of an object as the element with index 0. Apart from common user-defined function, create_function() can be used to create an anonymous callback function.

Funções de array array_pop  retira e retorna o último elemento do array array_push  insere um ou mais elementos no fim de um array array_shift  retira e retorna o primeiro elemento de um array array_unshift  insere um novo elemento no inicio de um array array_rand  retorna um ou mais elementos do array array_reverse  retorna um array com ordem inversa array_keys  retorna as chaves de um array array_values  retorna os valores de um array sizeof  retorna o número de elementos do array count  retorna a quantidade de elementos de um array Array_pop  retira e retorna o último elemento do array Array_push  insere um ou mais elementos no fim de um array Array_rand  retorna um ou mais elementos do array Array_reverse  retorna um array com ordem inversa Array_shift  retira e retorna o primeiro elemento de um array

Função each Percorre os elemento de uma lista $chamada = array (aluno1 => francisco, alunos2 => jose); while(list($chave,$valor)=each($chamada) { echo "<p>Chave=[$chave], Valor=[$valor]\n"; }

Listas Exemplo: list($a,$b,$c)=array("a","b","c");

Transformação de Tipos por coerção Coerção  é a conversão de um tipo em outro tipo diferente mediante operação realizada com tipos diferentes. Por exemplo: $a=1; $a = $a + "5"; Nesse exemplo a variável $a é numérica (integer) na primeira atribuição e string na segunda atribuição Coerção  é a conversão de um tipo em outro tipo diferente mediante operação realizada com tipos diferentes. Por exemplo: $a=1; $a = $a + "5"; Nesse exemplo a variável $a é numérica (integer) na primeira atribuição e string na segunda atribuição

Transformação explicita de tipos Feita via typecast (como em linguagem C) Exemplo: $a = 6; # a é um integer (6) $a = (float) 6; # é um float (6.0)

Casts permitidos (int), (integer) Integer (real), (double), (float) (string) String (array) Array (objeto) objeto

Constantes Uma constante é um identificador (nome) para um único valor que não se altera durante a execução de um script) Pré-definidas Definidas pelo usuário Exemplo: define("MOL", 6.14e22); define("PI", 3.1415); echo MOL; echo PI; É aconselhável o uso de letras maiúsculas para dar nomes a constantes A constant is an identifier (name) for a simple value. As the name suggests, that value cannot change during the execution of the script (except for magic constants, which aren't actually constants). A constant is case-sensitive by default. By convention, constant identifiers are always uppercase.

Constantes - Exemplo <?php // Nomes de constantes válidos define("FOO",     "alguma coisa"); define("FOO2",    "alguma outra coisa"); define("FOO_BAR", "alguma coisa mais"); // Nomes de constantes inválidas define("2FOO",    "alguma coisa"); // Isto é válido, mas deve ser evitado: // O PHP pode vir a fornecer uma constante mágica // que danificará seu script define("__FOO__", "alguma coisa"); ?>

Constantes "Mágicas" <?php print __FILE__ ; # nome do arquivo echo "\n"; echo __LINE__; # nº da linha echo __FUNCTION__; # nome da função ?>

Operadores Aritméticos Atribuição Bit a bit Lógicos Comparação Expressão condicional Incremento e decremento

Aritméticos + Adição - Subtração * Multiplicação / Divisão % Resto da divisão (módulo)

Atribuição = ($a=5); += ($a = $a + 5; $a+=5;) -= *= /= %= .=

Bit a Bit & (and) | (or) ^ (xor) ~ (not) << - deslocamento de bits a esquerda >> - deslocamento de bits a direita

Lógicos and (e) or (ou) xor (ou-exclusivo) ! (negação) && (e) || (ou)

Comparação == (igualdade) != (diferença) < (menor que) > (maior que) <= (menor ou igual a) >= (maior ou igual a)

Condicional (expressão) ? (expressão2) : (expressão3); Exemplo: $a=5; $a > 5 ? $b="1" : $b="0";

Incremento e Decremento ++ $contador=1; -- ++$a : pré-incremento (incrementa $a em um e depois retorna $a) $a++ : pós-incremento --$a : pré-decremento $a-- : pós-decremento

Precedência de Operadores $contador=1;

Estruturas de Controle Blocos Comandos condicionais Comando de repetição Qualquer script PHP é construído por uma série de instruções. Uma instrução pode ser uma atribuição, uma chamada de função, um 'loop', uma instrução condicional, ou mesmo uma instrução que não faz nada (um comando vazio). Instruções geralmente terminam com um ponto e vírgula. Além disso, as instruções podem ser agrupados em um grupo de comandos através do encapsulamento de um grupo de comandos com chaves criando-se um bloco Um grupo de comandos (bloco) é uma instrução também.

Blocos São delimitados por { e }

Comando Condicional if (expressão) comando; if(expressão) { comando1; ... comandoN; } If($x == $y) Comando1; Comando2; If($x == $y) { }

Comando Condicional (2) If (expressão) comando1; else comando2; If(expressão): comando1; ... comandoN; else comando1; ... comandoN; endif

Comando Condicional (3) if(expressão1) { comando1; } elseif(expressão2) { comando2; ... else{ comandoN;

Exemplo <?php $salario = 1000; $desconto = 0.10; // 10% $total = $salario - $salario*$desconto; if($total>900) { echo ""; } ?>

switch switch (expressão) { case valor1: comando1; break; case valor2: }

Exemplo - switch <?php $i = 1; switch($i) { case 0: print "I é igual a 0"; break; case 1: print "I é igual a 1"; case 2: print "I é igual a 2"; default: print "I não é igual a 0, 1 ou 2"; } ?>

Comandos de repetição while do .. while for foreach

while while (expressão) { comando; } while (expressão) : comando1; ... comandoN; endwhile; Avalia uma expressão e caso esta seja verdadeira é executado o comando enquanto a condição permanecer verdadeira. O laço executará 0 ou mais vezes dependendo o valor inicial

Exemplo <?php $a = 1; while ($a < 5) { print $a; $a++; } ?>

do..while $a=0; do { echo "a=$a\n"; $a++; } while ($a<=10); Condição avaliada no final do bloco. Bloco é executado pelo menos uma vez

Exemplo <?php $acabou = false; do { print "loop ..."; $acabou=true; } while (!$acabou); ?>

for for (expr1; expr2; expr3 ) { comando1 .. comandoN } Condição inicial (valor inicial da variável contadora) Condição de parada (condição de execução. Enquanto for TRUE, o bloco de comandos será executado) atualização (valor a ser incrementado após cada execução)

foreach Apresenta duas sintaxes: ou foreach (expressão as $valor) instruções ou foreach (expressão as $chave => $valor) instruções

foreach (exemplo) <?php $a = array(1,2,3,4,5); foreach ($a as $valor) { echo "valor=$valor<br>"; } ?>

foreach (exemplo) <?php $a = array ( "cod1" => 10, foreach ($a as $chave => $valor) { echo "<p>chave=$chave, valor=$valor"; } ?>

Comandos break e continue break cancela a execução do comando for, foreach, while, do-while ou switch atual. break aceita um argumento numérico opcional que diz a ele quantas estruturas aninhadas englobadas devem ser quebradas. continue é usado dentro de estruturas de loops para saltar o resto da iteração do loop atual e continuar a execução na avaliação e no início da próxima iteração.

Comandos break e continue break: pode ser usado em laços do, for e while. O break "quebra" a execução e continua executando o próximo comando continue: interrompe a execução e avalia novamente a condição de teste

Exemplo - break <?php # break.php for($i=0; $i < 100; $i++) { if($i == 10) { break; } echo " $i "; ?>

Exemplo - continue <?php for($i=0; $i < 100; $i++) { if($i % 2) { continue; } echo " $i "; ?>

Funções Definição Argumentos Passagem de parâmetros (valor ou referência) Argumentos com valores pré-definidos

Funções - Sintaxe function nome_da_função( [arg1, [arg2, ...,[argN]]] ) { comando1; ... comandoN; [ return valor_de_retorno ]; }

Funções definidas pelo usuário Uma função deve ser definida com a usando a sintaxe indicada abaixo: <?php function foo($arg_1, $arg_2, /* ..., */ $arg_n) {    echo "Função Exemplo.\n";    return $retval; } ?>

Valores Retorno A declaração return é opcional Qualquer tipo poderá ser retornado incluindo listas e objetos. Values are returned by using the optional return statement. Any type may be returned, including lists and objects. This causes the function to end its execution immediately and pass control back to the line from which it was called. See return() for more information

Exemplo do uso do return <?php function quadrado($num) { return $num * $num; } echo quadrado(4);   // saída '16'. ?>

Exemplo: Retornando um array com múltiplos elementos <?php function numeros_pequenos() {    return array (0, 1, 2); } list($zero,$um,$dois)=numeros_pequenos(); ?>

Modificadores de variáveis Variáveis estáticas (static) mantém o valor que lhes foi atribuído na última execução. Usa o operador static. Variáveis variáveis ($$) Variáveis de ambiente

Exemplo: uso de variável estática <?php function obtemProximo() { static $contador=0; return ++$contador; } echo obtemProximo(),"\n"; // retorna 1 echo obtemProximo(),"\n"; // retorna 2 echo obtemProximo(),"\n"; // retorna 3 ?>

Passagem de parâmetros Existem dois tipos de passagem de parâmetros: por valor (by value) por referência (by reference) O padrão é a passagem por valor.

Exemplo <?php function incByValue($var, $valor) { $var += $valor; } function incByRef(&$var, $valor) { $a = 1; echo incByValue($a,2); // retorna a=1 echo "a=$a\n"; echo incByRef($a,2); // retorna a=3 ?>

Variáveis de Ambiente <?php phpinfo(); ?>

Inclusão de arquivos include require include_once require_once Obs: include e include_once retornam uma advertência (warning) no caso de erro. require e require_once retornam um erro fatal em caso de erro. Include e Include_once retornam um warning no caso de erro. Require e require_once retornam um erro fatal em caso de erro.

Include x Require O comando include é reavaliado a cada chamada A instrução require pode incluir apenas um arquivo (a função require não inclui arquivos dinamicamente)

Exemplo biblioteca.php <?php /* * função quadrado * retorna o quadrado de um número * */ function quadrado($num) { return $num * $num; } ?>

Exemplo teste_include.php <?php // carrega o arquivo com a função necessaria include 'biblioteca.php'; // imprime o quadrado de 2 echo quadrado(2); ?>

Tipo de variável string gettype(mixed var); Possíveis valores de retorno: Integer Double String Array Object Unknown type

Formulários HTML <form method="[GET|POST]" action="" name ="" > ... </form>

Tratando informações recebidas de Formulários $_POST: array global que permite a leitura de variáveis passadas através de um formulário HTML usando método POST $_GET : array global que permite a leitura de variáveis passadas na URL através de um formulário HTML usando método GET

Método GET $_GET['nome'] $_GET['email']

Método POST $_POST['nome'] $_POST['email']

Exemplo – Método POST form.html <form method="POST" action="script.php"> Nome: <input name="nome" type="text"> </form> script.php <?php $nome=$_POST["nome"]; Echo "<p>nome=$nome"; </php>

Exemplo – Método GET form.html <form method="GET" action="script.php"> Nome: <input name="nome" type="text"> </form> script.php <?php $nome=$_GET["nome"]; echo "<p>nome=$nome"; </php>

Algumas funções úteis htmlspecialchars(<string>); stripslashes(<string>); urlencode(); urldecode(); htmlspecialchars(<string>); stripslashes(<string>); urlencode(); urldecode();

Variáveis Superglobals Contém uma referencia a todas as variáveis disponíveis no escopo global no script. As chaves desse array são os nomes das variáveis globais. $_SERVER Variáveis setadas pelo servidor web ou de outra forma relacionadas diretamente ao ambiente de execução do ambiente corrente. $_GET Variáveis providas pelo script via URL query string. $_POST Variáveis providas pelo script via HTTP POST. $_COOKIE Variáveis providas ao script via HTTP cookies. Várias variáveis pré-definidas no PHP são "superglobais", que significa que elas estão disponível em todos escopos para todo o script. Não há necessidade de fazer global $variable; para acessá-lo dentro de funções ou métodos. Veja mais informações em: http://www.php.net/manual/pt_BR/language.variables.superglobals.php $GLOBALS Contains a reference to every variable which is currently available within the global scope of the script. The keys of this array are the names of the global variables. $GLOBALS has existed since PHP 3. $_SERVER Variables set by the web server or otherwise directly related to the execution environment of the current script. Analogous to the old $HTTP_SERVER_VARS array (which is still available, but deprecated). $_GET Variáveis providas pelo script via URL query string. Análogo ao array $HTTP_GET_VARS array (which is still available, but deprecated). $_POST Variáveis providas pelo script via HTTP POST. Análogo array $HTTP_POST_VARS (which is still available, but deprecated). $_COOKIE Variables provided to the script via HTTP cookies. Analogous to the old $HTTP_COOKIE_VARS array (which is still available, but deprecated).

Variáveis Superglobals (2) $_FILES Variáveis providads ao script através do upload de arquivos via POST usando HTTP. $_ENV Variáveis de ambientes providas ao script. $_REQUEST Variáveis providas ao script via mecanismos de entrada como GET, POST e COOKIE. Veja também import_request_variables(). $_SESSION Variáveis que estão registradas a uma sessão de associada a um script. $_FILES Variables provided to the script via HTTP post file uploads. Analogous to the old $HTTP_POST_FILES array (which is still available, but deprecated). See POST method uploads for more information. $_ENV Variables provided to the script via the environment. Analogous to the old $HTTP_ENV_VARS array (which is still available, but deprecated). $_REQUEST Variables provided to the script via the GET, POST, and COOKIE input mechanisms, and which therefore cannot be trusted. The presence and order of variable inclusion in this array is defined according to the PHP variables_order configuration directive. This array has no direct analogue in versions of PHP prior to 4.1.0. See also import_request_variables(). Caution: Since PHP 4.3.0, FILE information from $_FILES does not exist in $_REQUEST. Note: When running on the command line , this will not include the argv and argc entries; these are present in the $_SERVER array. Um array associativo que por padrão contém informações de $_GET, $_POST e $_COOKIE. $_SESSION Variables which are currently registered to a script's session. Analogous to the old $HTTP_SESSION_VARS array (which is still available, but deprecated). See the Session handling functions section for more information.

Funções úteis na validação de formulários empty – verifica se determinada string esta vazia (nula) strlen – retorna o número de caracteres de uma string strstr – acha a primeira ocorrência de uma string. Se não encontrar retorna falso (FALSE)

Cookies e Sessions HTTP é um protocolo "sem estado" Cookie e Session são mecanismos que permitem armazenar informações enquanto o usuário navega entre diferentes páginas. O que significa o protocolo HTTP ser um protocolo "sem estado" ? Significa que ele não guarda informações entre uma transação e outra (elas são independentes). Portanto é necessário um mecanismo que permita que sejam criadas "relações entre as transações"

Exemplos de uso de cookies e sessões Autenticação de usuários Carrinho de compras Exibição de anúncios ou imagens Personalização de páginas

Uso de Cookies É um arquivo texto armazenado no computador do usuário para ser posteriormente recuperado pelo servidor Formado por um par nome/valor Tempo de validade: tempo no qual o cookie estará armazenado no micro do usuário O uso de cookie poderá ser habilitado / desabilitado pelo navegador

Uso de cookies bool setcookie (string nome [, string valor [, int validade [, string caminho [, string dominio [, int seguro]]]]]), onde: nome: nome do cookie valor: é o conteúdo do cookie (se não for fornecido o cookie será removido) validade: tempo de validade do Cookie caminho: caminho no servidor onde o cookie estará disponível domínio: domínio para o qual o cookie estará disponível Seguro: 0 ou 1 (se 1 o cookie apenas será transmitido caso segue uma conexão segura (HTTPS))

Exemplo setcookie("username","joao@net"); setcookie ("username); Obs: o envio de cookies deverá ser a primeira coisa a ser feita na transmissão de uma página (antes inclusive das tags <html> e <body>)

Recuperação de Cookies Uso do array superglobal $_COOKIE Exemplo: setcookie("username","joao@net"); E em uma outra página: $_COOKIE["username"];

Exemplo de uso: autenticação de usuários "autenticação é uma maneira que você tem de se certificar de que somente os usuários que possuem autorização estão acessando uma área restrita do seu site"

Passos para Autenticação Podemos dividir a autenticação de usuários com o uso de cookies em três passos: Criação de uma página de login Criação de uma rotina de validação para que seja usada nas páginas que fazem uso das áreas restritas Criação de uma página de logout para os usuários autenticados a fim de realizar a exclusão do cookie.

Exemplo de login usando cookies login.html login.php valida_cookies.inc logout.php pagina_inicial.php

Sessão (Session) É um período de tempo durante o qual uma pessoa navega pelas páginas de um site Permitem o compartilhamento de informações entre diferentes páginas Cada sessão possui um session id (SID) que é um identificador único

Propagação do SessionID Poderá ser feito por: cookies propagação de variáveis na URL (endereço destino)

Criação de Sessão no PHP Manual Explícita (session_start) Implícita (ao registrar uma variável com a função session_register) Automática Depende da diretiva session.auto_start estar habilitada no arquivo php.ini

Exemplo de Session <?php session_start(); if(!isset($_SESSION['contador'])) { $_SESSION['contador']=1; } else { $_SESSION['contador']++; $contador= $_SESSION['contador']; echo "<p>Contador=$contador"; $sid=session_id(); echo "<p>session_id= $sid"; ?> A função session_start() deve vir antes de qualquer saída HTML.

Cookies x Sessões Cookies Tempo de duração Pode permanecer armazenado por mais tempo (mesmo após o navegador ser eliminado) Local de armazenamento Pequenos arquivos armazenados na máquina do usuário Sessões Tempo de duração Dura enquanto o usuário permanecer dentro do site Local de armazenamento Arquivos localizados no servidor (um arquivo por sessão)

Cookies x Sessões Cookies Sessões Tempo de duração Pode permanecer armazenado por mais tempo (mesmo após o navegador ser eliminado) Dura enquanto o usuário permanecer dentro do site Local de armazenamento Pequenos arquivos armazenados na máquina do usuário Arquivos localizados no servidor (um arquivo por sessão)

Comandos básicos de saída echo  é uma comando que imprime uma ou mais variáveis no console print  é uma função que imprime uma string no console var_dump  imprime o conteúdo de uma variável print_r  imprime o conteúdo de uma variável, mas num formato mais legível para o programador

Manipulação de Arquivos fopen feof fgets fwrite fclose file_put_contents file_get_contents file copy rename unlink file_exists is_file

Manipulação de Diretórios mkdir getcwd chdir rmdir opendir closedir readdir

Manipulação de Arquivos e Diretórios fopen int fopen(string arquivo, string modo [, int usar_path ´, resource contexto]]) onde: arquivo: modo: usar_path: contexto:

Manipulação de strings – algumas funções strtoupper strtolower substr strpad strrepeat strlen str_replace str_pos

Classes e Objetos Classes Métodos

Classe class Complexo { private $real; private $imag; public function real() { return $this->real; } public function imag() { return $this->imag;

Criação de Objetos $z = new Complexo; $parte_real = $z->real(); $parte_imag = $z->imag();

Bibliografia Dall'Oglio, P. PHP Programando com Orientação a Objetos. Novatec. 2007. NIEDERAUER, J. Web Interativa com Ajax e PHP. Novatec, 2007. Manual do PHP. http://br.php.net/manual

Backup Slides

Links Revista PHP Magazine http://www.phpmagazine.org.br

PHP e MySQL

Conectando do BD MySQL <?php $conexao = mysql_connect("localhost","usuario","password"; ?>

Exemplo de Consulta em SQL <?php $resultado = mysql_query("select * from produto"); mysql_close($conexao); ?>

mysql API mysql_affected_rows – retorna o número de linhas afetadas por uma operação mysql_fetch_array – armazena a linha atual em um array associativo mysql_fetch_object – retorna uma linha como um objeto mysql_fetch_row – armazena a linha atual em um array mysql_result – retorna uma coluna do resultado mysql_num_rows – retorna o numero de linhas de uma consulta mysql_num_fields – retorna o numero de colunas de uma consulta mysql_field_name – retorna o nome de uma coluna em uma consulta

mysql API int mysql_connect(str host, str username, str password) int mysql_select_db(str database [, int link_identifier]) int mysql_query(str query [, int link_identifier]) array mysql_fetch_array(int result [, int result_type])

mysql API array mysql_fetch_row(int result) int mysql_insert_id([int link_identifier]) --> retorna o número de linhas após execução de um comando select int mysql_affected_rows([int link_identifier]) --> retorna o nº de linhas que foram afetados em uma tabela por comandos update, insert e delete

mysql API mysql_error()

Exemplos de Funções

Funções date e time string date ( string $format [, int $timestamp ] ) Formata a data e a hora local int time ( void ) Retorna o timestamp Unix atual Veja mais funções em: http://www.php.net/manual/pt_BR/ref.datetime.php

Exemplos <?php echo date("Y-m-d",0),"\n"; echo date("Y-m-d",time()),"\n"; echo date("d/m/Y",time()),"\n"; echo date("d/m/y",time()),"\n"; echo date("d/m/y H:i:s",time()),"\n"; ?> 1969-12-31 2008-11-27 27/11/2008 27/11/08 27/11/08 09:20:11

Função mktime int mktime ([ int $hora [, int $minuto [, int $second [, int $mes [, int $dia [, int $ano [, int $is_dst ]]]]]]] ) Obtém um timestamp Unix para uma data

Exemplo <?php echo date("d/m/Y H:i:s", mktime(2, 12, 4, 10, 3, 01)); ?>

Datas - MySQL date_format(date, format) Exemplo: SELECT *, date_format(data,'%d/%m/%Y') dt FROM teste.gasto g where date_format(data,'%d/%m/%Y')='26/11/2008'

Exemplo Seleciona os gastos entre duas datas: SELECT *, date_format(data,'%d/%m/%Y') dt FROM teste.gasto g where date_format(data,'%Y%m%d') between '20081124' and '20081125'