Desenvolvimento Web I PHP
Tiago Lopes Telecken
[email protected]
Conteúdo
Arquitetura web Código PHP Váriáveis, Constantes Operadores –
2
Aritiméticos relacionais, lógicos
Estruturas de controle Funções php PHP com banco de dados Objetos php Tópicos avançados
Arquitetura web Pg HTML,JS,CSS
URL + Dados
Interpretador (HTML,JS,CSS)
Servidor HTTP (Apache)
Navegador (IE, Moz)
Sistemas de arquivos
Sistema Operacional(Win, Linux) Cliente Web
3
SO
BD
PHP
Servidor Web
Arquitetura web
Páginas estáticas –
– –
–
4
O cliente envia para a máquina servidora uma requisão que aponta par uma pg HTML que está no sistema de arquivos do servidor O servidor HTTP recebe a requisição, acessa a pg solicitada e envia de volta ao cliente Se a pg HTML conter outros códigos, como JavaScript, o código vai junto com a página enviada Se a pg HTML referencia arquivos externos (arquivos JS, CSS, etc) os arquivos referenciados também são enviados.
Arquitetura web
Páginas dinâmicas –
–
–
O cliente envia para a máquina servidora uma requisão que aponta para uma pg PHP que está no sistema de arquivos do servidor. Eventualmente dados do cliente também são enviados (normalmente vindos de um formulário HTML) O servidor HTTP recebe a requisição, e acessa a pg solicitada A pg php solicitada conterá comandos e estes comandos serão executados. Os comandos são muito variados, como por exemplo:
–
5
Construir uma pg html dinamicamente (a pg pode conter JS, css, etc) Acessar um BD (alterar e consultar) Acessar recursos do SO, Sistemas de arquivos e outros programas do servidor
Ao final da execução dos comandos, normalmente uma pg HTML é gerada e enviada de volta ao cliente
Referências http://www.php.net/ (Página oficial PHP) http://www.php.net/manual/pt_BR/ (documentação em português) http://apostilas.fok.com.br/manual-do-php/index.php (apostila php) http://www.revistaphp.com.br/ (comunidade php) http://www.phpbrasil.com/ (comunidade php) http://pt.wikipedia.org/wiki/PHP (wiki) Editores http://notepad-plus.sourceforge.net/br/site.htm (Notepad++) Php editor http://www.rj-texted.se/index.htm (rj-texted) http://www.easyeclipse.org/site/distributions/php.html (easy eclipse for php) www.zend.com/ (Zend ambiente de programacao php - comercial) Instalação http://bitnami.org/ (Instal. postgres-apache-php Linux, windows) http://bitnami.org/stack/wappstack (instalacao windows postgres-apache-php) http://www.php.net/ (PHP) http://www.postgresql.org/ (postgres) http://www.postgresql.org.br/ (postgres) http://www.apache.org/ (apache) http://phppgadmin.sourceforge.net/ (phppgadmin) www.easyphp.org/ (php,apache, mysql) www.usbwebserver.com (ambiente php no pendrive)
6
Referências
7
Niederauer, Juliano. PHP para quem conhece PHP. São Paulo: Novatec, 3ª. Edição, 2008 Dall´oglio, Pablo. PHP - Programando com Orientação a Objetos. São Paulo: Novatec. Soares, Walace. PHP5 - Conceitos, Programação e Integração Banco de Dados. São Paulo: Érica, 2004. Converse,Tim; Park, Joyce. PHP, a Biblia. São Paulo: Campus/Elsevier, 2003.
O PHP
PHP - Hypertext Preprocessor Linguagem de programação para sistemas Web (servidor). A mais difundida de sua categoria Versões: –
– –
–
8
–
PHP/FI: (Personal Home Page/Forms Interpreter) Criada em 1994 por Rasmus Lerdorf. Conjunto de scripts voltados a criação de páginas dinâmicas. Em 19995 o código fonte do php foi disponibilizado na web. PHP/FI 2: lançada em 1997. Neste ano aproximadamente 1% dos dominios da internet utilizavam php. PHP3: (Hypertext Preprocessor) disponibilizado em 1998. Extensibilidade (API), conexão com BD e outros sistemas, orientação a objetos. Ao final de 1998 o php já estava presente em 10% dos domínios da internet. PHP4: Lançado em 2000. Melhoria em recursos, performace, modularidade.Uso: 20% dos domínios. PHP5: Lançado em 2004. Mudança no modo de orientação a objetos.
O PHP – O programa
9
Um programa PHP roda no servidor, pode interagir com BD, SO e outros sistemas do Servidor. É uma página (um arquivo texto interpretado pela Engine PHP) que além de interagir com sistemas do servidor pode montar pgs HTML e envia-las para clientes web As páginas PHP devem ser salvas com a extensão .php . Entretanto também pode-se salvar páginas com as extensões: .php3, php4, phtml
PHP a linguagem
10
Interpretada (não precisa compilar o código) Fracamente tipada (definição de tipos de dados flexível) Sintaxe semelhante ao Java, JavaScript, C PHP é case sensitive O código PHP pode ser misturado com outros textos/códigos
Delimitadores Um código PHP deve estar entre delimitadores Todo comando PHP deve ser separado por ; Outros delimitadores:
11
Comentários
Uma linha –
–
// ola # ola
Várias linhas /* ola ola */
12
Escrevendo na página do cliente
O comando “echo” escreve um texto na página que será montada e enviada ao cliente
13
Escrevendo – Caracteres especiais
14
Escrevendo
Pode-se escrever na página do cliente simplesmente colocando o texto fora dos delimitadores
Ola Mundo fora do PHP! 15
Escrevendo
Pode-se intercalar vários trechos de texto e código php
Ola Mundo fora do PHP1! Ola Mundo fora do PHP2!
16
Escrevendo
17
Pode-se escrever código HTML no arquivo que será enviado para o cliente. E quando o navegador do cliente recebe um código HTML ele é interpretado Ola mundo fora do php
Escrevendo Ola Mundo Ola mundo fora do php
Ola Mundo Ola mundo fora do php
18
Escrevendo
Pode-se escrever qualquer texto que possa ser colocado em uma página HTML. Depois, no cliente, este texto será interpretado (Ex: JavaScript) Ola mundo com HTML
document.write(‘Ola mundo JS!
’);
19
Escrevendo Ola mundo com HTML
document.write(‘Ola mundo JS!
’); document.write(‘Ola mundo JS!Escrito com php
’); Ola mundo com HTML!Escrito com PHP
20
Escrevendo
21
O comando echo e os textos fora dos delimitadores escrevem qualquer texto em um arquivo que será enviado para o cliente (Um navegador web). Se o arquivo que chegar for HTML ele será interpretado como HTML, se for Java Script será interpretado como JavaScript. Se chegar com erros de sintaxe a página irá gerar erros ou outros efeitos indesejáveis. (O interpretador php não detecta erros do HTML, JS, etc )
Variáveis Para criar variáveis utiliza-se o operador de atribuição “=“ O nome das variáveis devem começar por “$” $nome = ‘João ’; $sobrenome= ‘Silva’; echo “$nome $sobrenome”; // mostra: João Silva echo ‘$nome $sobrenome’; //mostra: $nome $sobrenome // “ ” substitui as variáveis por seu conteúdo // ’ ’ escreve sem substituir
echo $nome. “ da ”. $sobrenome; // João da Silva 22 // “.” concatenador
Variáveis Variáveis variantes: são variáveis que podem trocar de nome e conteúdo $teste=‘gerente’; $$teste=‘Maria’; //cria uma variável cujo nome //é igual ao conteúdo do teste //(gerente) e o conteúdo é Maria
echo $gerente; //Vai escrever Maria
23
Variáveis Variáveis podem receber o conteudo de outras variáveis $a=5; $b=$a; $b=10; echo $a; //mostra 5 echo $b; //mostra 10
24
Variáveis Variáveis podem apontar para uma mesma área na memória $a=5; $b=&$a; //$b apontará para o mesmo end. de $a $b=10; echo $a; //mostra 10 echo $b; //mostra 10
// Recurso similar aos ponteiros do C 25
Tipos de variáveis
Booleano –
TRUE ou FALSE
$mostrar=TRUE; If ($mostrar) { echo ‘Ola’; }
$a=10; $b=(5 > $a); echo $b; //imprime FALSE
Também são considerados FALSE –
26
0 ; 0.0 ; “0”; NULL ; string vazia; array vazio
Tipos de variáveis
Tipo numérico –
– –
– –
27
$a= 1022; // inteiro $a= -1022; // negativo $a= 10.22; // ponto flutuante $a= 0x1A; // hexadecimal $a= 4e23; // notação científica
Tipos de variáveis
String –
–
28
$a=‘ola’; $a=“Ola”;
Array Objeto
Convertendo tipos - settype
29
Convertendo tipos – type casting As moldagens permitidas são: (int), (integer) - converte para inteiro (bool), (boolean) - converte para booleano (float), (double), (real) - converte para ponto flutuante (string) - converte para string (binary) - converte para string binária (PHP 6) (array) - converte para array (object) - converte para objeto
30
Constantes Os valores só podem ser boolean, inteiro, ponto flutuante ou string Utiliza-se o comando “define”
31
32
Operadores - Atribuição
33
$a = 5; $a++; //$a= $a+1; $a--; $a+=5; //$a=$a+5;
Operadores Concatenação
.
$b=“ola1”; $c=“ola2”; a$=$b.”texto1”.” texto2 ”.$b.$c; echo $a;
34
Operadores Aritiméticos
Operador
35
Ação
$a + $b
// Adição soma $a mais $b
$a - $b
// Subtração subtrai $a de $b
$a * $b
// multiplicação de $a por $b
$a / $b
// divisão de $a por $b
$a % $b
// Resto resto da divisão de $a por $b
Operadores de comparação
Ex.
Nome
Resultado
$a != $b
Diferente
Verdadeiro se $a não for igual a $b.
$a $b Diferente
Verdadeiro se $a não for igual a $b.
$a < $b
Menor que
Verdadeiro se $a é estritamente menor que $b.
$a > $b
Maior que
Verdadeiro se $a é estritamente maior que $b.
$a = $b
Maior ou igual
Verdadeiro se $a é maior ou igual a $b.
36
Operadores lógicos Exemplo
Nome
Resultado
$a and $b
E
Verdadeiro (TRUE) se tanto $a quanto $b são verdadeiros.
$a && $b E
Verdadeiro se tanto $a quanto $b são verdadeiros.
$a or $b
OU
Verdadeiro se $a ou $b são verdadeiros.
$a || $b
OU
Verdadeiro se $a ou $b são verdadeiros.
$a xor $b
XOR
Verdadeiro se $a ou $b são verdadeiros, mas não ambos.
! $a
NÃO
Verdadeiro se $a não é verdadeiro.
37
Precedência dos operadores 1 Operador
2 Operador
new
^
[
|
! ~ ++ -- (int) (float) (string) (array) (object) @
&&
*/%
?:
+-. >
= += -= *= /= .= %= &= |= ^= =
< >=
print
== != === !==
and
&
xor
||
or ,
38
Estruturas de controle
IF, ELSE, ELSEIF
39
Estruturas de controle Switch
40
Estruturas de controle While Do...While 41
Estruturas de controle For for ($i = 1; $i
43
Array Listas de valores (números, strings, objetos, etc) referenciados por uma chave
44
Estruturas de controle sobre array Foreach $arr = array("um", "dois", "tres"); 45
Estruturas de controle sobre array
Arrays multidimencionais
47
São arrays de arrays
Arrays multidimensionais
48
Manipulando Arrays Função
array_values (meu_array) asort(meu_array) e arsort(meu_array) count(meu_array) ksort(meu_array) e krsort(meu_array)
Descrição Lista os valores contidos em meu_array
Ordena por ordem alfabética direta ou inversa em função dos valores Retorna o número de elementos do nosso array Ordena por ordem alfabética direta ou inversa em função das chaves
list ($variavel1, Atribui cada variável a cada um dos valores do $variavel2...)=meu_ar array ray next(meu_array), prev(meu_array), reset(meu_array) y end(meu_array)
49
each(meu_array)
Permite mover por dentro do array com um ponteiro para frente,para trás, ao principio e ao fim. Retorna o valor e a chave do elemento no qual nos encontramos e mexe o ponteiro ao elemento
50
Recebendo dados do usuário - Form As informações podem ser passadas por 2 métodos: GET e POST. Ex: Campo 1:
Campo 2:
No "script.php":
51
No caso do método GET, deve-se usar $_GET no lugar de $_POST. Em vez de usar $_GET ou $_POST pode-se escrever a variável com o mesmo nome do campo do formulário (no exemplo, $campo1 e $campo2). Mas, esse uso não é recomendado, pois se a diretiva "register_globals" na configuração do seu PHP estiver desativada, as variáveis com nome dos campos dos formulários, terão um valor vazio.
Campos Hidden Os campos hidden são usados para passar informações que não podem ser alteradas pelo usuário. Exemplo: hidden.html hidden.php
52
Campos Text e Textarea
texts.html Nome:
Email:
Mensagem:
texts.php
53
Campos Radio
54
Campos Radio têm múltiplos valores, mas somente um pode ser pré-exibido ou selecionado. Códigos Exemplos: radio.html Qual seu sistema operacional?
Win 98 Win XP Linux Mac
Qual a marca de seu monitor?
Samsung LG Desconhecido
radio.php
Campos Checkbox O tipo Checkbox tem somente um possível valor por entrada: on value (marcado) ou no value (desmarcado). No script você deve fazer a verificação para saber se o campo foi marcado ou não. É possível também utilizar grupos de checkbox com o mesmo nome. Deve-se adicionar "[]" no final do nome, para o PHP interpretar como array, veja o código exemplo. checkbox.html Escolha os numeros de sua preferência:
10
100
1000
10000
90
50
30
15
Receber Newsletter?
55
Check box
56
checkbox.php
Campos Select Os campos select permitem tratar uma variedade de opções, onde o usuário pode selecionar apenas uma opção ou múltiplas opções. Quando você permite múltiplas seleções, deve adicionar "[]" no final do nome, para o PHP interpretar como array. select.html Qual seu processador?
Pentium AMD Celeron
Livros que deseja comprar?
Obs: segure "CTRL" para selecionar mais de um.
Biblia do PHP 4 PHP Professional Iniciando em PHP Novidades do PHP 5 Biblia do MySQL
57
Select select.php
58
Formulários - Encontrando erros
59
print_r($_POST) print_r($_GET)
Exercício
60
Desenvolvimento Web I PHP
Tiago Lopes Telecken
[email protected]