PHP

80
Ferramentas de Construção de Websites Izequiel Pereira de Norões Módulo 6 – Introdução a PHP

Transcript of PHP

Page 1: PHP

Ferramentas de Construção de Websites

Izequiel Pereira de Norões

Módulo 6 – Introdução a PHP

Page 2: PHP

Izequiel Pereira de Norões - 2007

Apresentação

• Professor:– Izequiel Pereira de Norões– Bacharel em Informática (Unifor) – Pós em Gerência Estratégica da Informação (Unifor)– Pós em Tecnologias da Informação – Ênfase Web (UFC)

Contato: [email protected]

Material da disciplina: http://fatene.ipn.eti.br

Page 3: PHP

Izequiel Pereira de Norões - 2007

PHP/MySQL

Desenvolvimento Web com Banco de Dados

Page 4: PHP

Izequiel Pereira de Norões - 2007

PHP

Page 5: PHP

Izequiel Pereira de Norões - 2007

• É uma linguagem de criação de scripts para Web

• Existe um servidor que interpreta os comandos php embutidos em uma página html

• Criado em 1994, por Rasmus Lerdorf e definido então como Personal Home Page

• Sofreu um aperfeiçoamento em 2001 passando a se chamar Hipertext Preprocessor

• É um produto de código-fonte aberto• Em agosto de 2004, foi lançada a versão 5

O QUE É PHP?

Page 6: PHP

POR QUE VOCÊ UTILIZARIA O PHP?● Alto desempenho● Interfaces para muitos sistemas diferentes de bancos

de dados● Bibliotecas integradas para muitas tarefas comuns da

Web● Baixo custo● Fácil de aprender e utilizar● Portabilidade● Disponibilidade de código-fonte

De acordo com levantamento da NetCraft,16,9 milhões de sites no mundo inteiro utilizam o PHP.Isso corresponde a 31,9% dos sites da Web.

Page 7: PHP

COMO CONSEGUIR O PHP?

Baixe-o gratuitamente de:

http://www.php.net

Page 8: PHP

Izequiel Pereira de Norões - 2007

• É o servidor web responsável por interpretar os comandos PHP.

http://www.apache.org

O QUE É APACHE?

Page 9: PHP

Izequiel Pereira de Norões - 2007

UTILIZANDOO PHP

Page 10: PHP

Izequiel Pereira de Norões - 2007

PHP x HTML

O código PHP pode ser embutido dentro da página HTML.

Utilizam-se os seguintes delimitadores:– <? - Indica o início do código PHP

– ?> - Indica o final do código PHPEXEMPLO:...<body>Aqui é código html.<?

echo “Aqui é código PHP!”;?>Aqui temos html novamente.</body>

Page 11: PHP

Izequiel Pereira de Norões - 2007

PHP x HTML

– Comandos PHP devem acabar com ponto-e-virgula(;).

– Para utilizar as tags html no código PHP, utilize a função echo.

<?echo “<b>Escrevendo em negrito!</b>”;

?>

Page 12: PHP

Izequiel Pereira de Norões - 2007

VARIÁVEIS e TIPOS DE DADOS– Variáveis não precisam ser definidas antes de

serem usadas.

– Nomes de variáveis iniciam com cifrão ($), não tem comprimento

– pré-determinado, diferenciam maiúsculas de minúsculas e

– não podem começar com um dígito.

– O PHP é uma linguagem de tipificação fraca.

– O tipo da variável é definido de acordo com o valor atribuído a ela.

Page 13: PHP

Izequiel Pereira de Norões - 2007

ACESSANDO VARIÁVEIS DE FORMULÁRIO• Utilize diretamente o nome do campo, como

nome da variável. Se você tem um campo chamado cor, no PHP que processa o formulário, você terá a variável $cor;

• Utilize os vetores associativos $HTTP_POST_VARS[“nomeDaVariavel”] e $HTTP_GET_VARS[“nomeDaVariavel”].

VARIÁVEIS

Page 14: PHP

Izequiel Pereira de Norões - 2007

OPERADORES ARITMÉTICOS+ Adição- Subtração* Multiplicação/ Divisão% Módulo - Retorna o módulo da

divisão inteira de dois números

OPERADOR DE STRING. Concatena duas strings

OPERADORES

Page 15: PHP

Izequiel Pereira de Norões - 2007

OPERADOR DE ATRIBUIÇÃO= Atribuição$total = 0; // A variável $total recebe o valor

ZERO.OPERADORES DE ATRIBUIÇÃO DE COMBINAÇÃO+= -= *= /= %= .=$total += 5; // A variável $total é

adicionada de 5.// Equivale a $total = $total + 5

OPERADORES DE INCREMENTO E DECREMENTO++ --$total++; // A variável $total é

adicionada de 1.// Equivale a $total = $total + 1

OPERADORES

Page 16: PHP

Izequiel Pereira de Norões - 2007

OPERADORES DE COMPARAÇÃO== Atribuição!= Não igual a<> Não igual a< Menor que> Maior que<= Menor que ou igual a>= Maior que ou igual a

OPERADORES LÓGICOS! NO (Não)&& AND (E)|| OR (Ou)

OPERADORES

Page 17: PHP

Izequiel Pereira de Norões - 2007

O OPERADOR TERNÁRIOcondição ? valor_se_true :

valor_se_false;$resultado = $nota > 7 ? “Aprovado” :

“Reprovado”;

O OPERADOR DE SUPRESSÃO DE ERRO@Omite mensagens de erros oriundas

da execução do script$a = @(13/0);

OPERADORES

Page 18: PHP

Izequiel Pereira de Norões - 2007

INSTRUÇÕES IF-ELSEif ( condição ){

// Comandos a serem executados caso a condição seja verdadeira

}else{

// Comandos a serem executados caso a condição seja falsa

}

ESTRUTURAS DE DECISÃO

Page 19: PHP

Izequiel Pereira de Norões - 2007

INSTRUÇÕES IF-ELSEif ( $nota >= 7 ){

echo “Aluno Aprovado!”;}else{

echo “Aluno Reprovado!”;

}

ESTRUTURAS DE DECISÃO

Page 20: PHP

Izequiel Pereira de Norões - 2007

INSTRUÇÕES ELSEIFif ( condição1 ){

// Comandos a serem executados caso a condição1 seja verdadeira

}elseif ( condição2 ){

// Comandos a serem executados caso a condição2 seja verdadeira

}elseif ( condição3 ){

// Comandos a serem executados caso a condição3 seja verdadeira

}

ESTRUTURAS DE DECISÃO

Page 21: PHP

Izequiel Pereira de Norões - 2007

INSTRUÇÕES ELSEIFif ( $nota >= 7 ){

echo “Aluno Aprovado!”;}elseif ( $nota >= 4 ){

echo “Aluno apto a fazer Prova Final!”;}else{

echo “Aluno Reprovado!”;}

ESTRUTURAS DE DECISÃO

Page 22: PHP

Izequiel Pereira de Norões - 2007

INSTRUÇÕES SWITCHswitch( $variavel ){case 1 :

// Comandos a serem executados caso o valor da variável seja 1

break;case 2 :

// Comandos a serem executados caso o valor da variável seja 2

break;case 3 :

// Comandos a serem executados caso o valor da variável seja 3

break;default :

// Comandos a serem executados caso o valor da variável não corresponda a nenhum dos valores especificados anteriormente

break;}

ESTRUTURAS DE DECISÃO

Page 23: PHP

Izequiel Pereira de Norões - 2007

INSTRUÇÕES SWITCHswitch( $tipoUsuario ){

case 1 :echo “Supervisor!”;break;

case 2 :echo “Gerente!”;break;

default :echo “Usuário Comum!”;break;

}

ESTRUTURAS DE DECISÃO

Page 24: PHP

Izequiel Pereira de Norões - 2007

LOOPS WHILEwhile ( condição ){

// Comandos a serem executados enquanto a condição seja verdadeira

}

$i = 1;while ( $i <= 10 ){

echo $i;$i++;

}

ESTRUTURAS DE ITERAÇÃO

Page 25: PHP

Izequiel Pereira de Norões - 2007

LOOPS DO..WHILEdo{

// Comandos a serem executados iterativamente

}while ( condição )

$i = 1;do{

echo $i;$i++;

}while ( $i <= 10 )

ESTRUTURAS DE ITERAÇÃO

Page 26: PHP

Izequiel Pereira de Norões - 2007

LOOPS FORfor ( valorInicial ; condição ; incremento ){

// Comandos a serem executados iterativamente

}

for ( $i = 1 ; i <= 10 ; i++ ){

echo $i;}

ESTRUTURAS DE ITERAÇÃO

Page 27: PHP

Izequiel Pereira de Norões - 2007

INTERROMPENDO UMA ESTRUTURA DE ITERAÇÃO• BREAK – Aborta a execução da estrutura

iterativa• CONTINUE – Força a próxima iteração• EXIT – Encerra a execução do script

ESTRUTURAS DE ITERAÇÃO

Page 28: PHP

Izequiel Pereira de Norões - 2007

Um array (vetor) é um conjunto agrupado de valores, identificados por uma única variável.

VANTAGENS DA UTILIZAÇÃO DE ARRAYS• Usando loops, podemos aplicar operações a

todos os elementos do array• O conjunto inteiro de informações pode ser

movido como uma única unidade• Reutilização de código – existem diversos

métodos prontos para manipular arrays (ordenação, classificação)

UTILIZANDO ARRAYS

Page 29: PHP

Izequiel Pereira de Norões - 2007

ARRAYS NUMERICAMENTE INDEXADOS$cores = array( “Vermelho” , ”Amarelo” ,

”Azul” );

echo $cores[0]; // Imprimirá Vermelho

for ( $i = 0 ; $i < 3 ; $i++ )echo $cores[$i]; // Imprimirá as três

cores

UTILIZANDO ARRAYS

Page 30: PHP

Izequiel Pereira de Norões - 2007

ARRAYS ASSOCIATIVOSAceitam qualquer coisa (número,

string) como índice.

$cores[“vermelho”] = “#FF0000”;$cores[“amarelo”] = “#FFFF00”;$cores[“azul”] = “#0000FF”;

A inicialização acima equivale a:

$cores = array( “vermelho”=>”#FF0000”,

“amarelo”=>”#FFFF00”,“azul”=>”#0000FF”);

UTILIZANDO ARRAYS

Page 31: PHP

Izequiel Pereira de Norões - 2007

UTILIZANDO ARRAYS ASSOCIATIVOS...<body bgcolor=”<?= $cores[“azul”] ?

>”>

<font color=”<? echo $cores[“amarelo”]; ?>”>

...

Depois de interpretado pelo servidor, o código acima resultaria em:

...<body bgcolor=”#0000FF”>

<font color=”#FFFF00”>...

UTILIZANDO ARRAYS

Page 32: PHP

Izequiel Pereira de Norões - 2007

UTILIZANDO A FUNÇÃO each()A função each() retorna um array cujos

índices são:• key e 0 – contendo a chave a chave do

elemento atual• value e 1 – contendo o valor do elemento

atualwhile ( $elemento = each( $cores ) ){

echo $elemento[ “key“ ].” - “.$elemento[ “value” ].”<br>”;

}Resultaria em:vermelho - #FF0000amarelo - #FFFF00azul - #0000FF

UTILIZANDO ARRAYS

Page 33: PHP

Izequiel Pereira de Norões - 2007

UTILIZANDO A FUNÇÃO list()A função list() quebra um array em vários

valores.

list( $cor1, $cor2, $cor3 ) = $cores;

Isso equivale a:$cor1 = $cores[“vermelho”];$cor2 = $cores[“amarelo”];$cor3 = $cores[“azul”];Ou, ainda:$cor1 = “#FF0000”;$cor2 = “#FFFF00”;$cor3 = “#0000FF”;

UTILIZANDO ARRAYS

Page 34: PHP

Izequiel Pereira de Norões - 2007

UTILIZANDO sort()sort( $nomeDoArray ):Resultado: ordena o array. Todas as letras maiúsculas

vêm antes de todas as letras minúsculas.

OUTRAS FUNÇÕES DE CLASSIFICAÇÃO• asort() - classifica um array associativo, ordenando

pelos valores;• ksort() - classifica um array associativo, ordenando

pelas chaves;• rsort() - classifica um array numérico

decrescentemente;• arsort() - classifica um array associativo

decrescentemente, ordenando pelos valores;• krsort() - classifica um array associativo

decrescentemente, ordenando pelas chaves.

CLASSIFICANDO ARRAYS

Page 35: PHP

Izequiel Pereira de Norões - 2007

FUNÇÕES PARA REORDENAÇÃO• shuffle( $nomeDoArray ) - ordena

aleatoriamente os elementos do array;• array_reverse( $nomeDoArray ) - cria um

novo array como o mesmo conteúdo do original só que na ordem inversa.

REORDENANDO ARRAYS

Page 36: PHP

Izequiel Pereira de Norões - 2007

• current() ou pos() - retornam o elemento atual;• each() - retorna o elemento atual e avança o

ponteiro;• reset() - move o ponteiro para o primeiro elemento;• end() - move o ponteiro para o último elemento;• next() - move o ponteiro para o próximo elemento e

o retorna;• prev() - move o ponteiro para o elemento anterior e

o retorna;• count() ou sizeof() - retornam o número de

elementos do array;• array_count_values() - retorna um array

associativo contendo uma tabela de freqüências (conta quantas vezes cada valor único ocorre no array);

• extract() - [somente para arrays associativos]. Cria variáveis cujos nomes correspondem às chaves do array e os valores correspondem aos valores armazenados no array.

OUTRAS FUNÇÕES ÚTEIS DE ARRAYS

Page 37: PHP

Izequiel Pereira de Norões - 2007

FORMATANDO STRINGS• trim() - elimina os espaçoes em branco

do início e do final da string, retornando a string resultante.

• ltrim() - elimina somente os espaços em branco do início

• chop() - elimina somente os espaços em branco do final

• nl2br() - substitui as novas linhas da string pela tag <br> do html

MANIPULAÇÃO DE STRINGS

Page 38: PHP

Izequiel Pereira de Norões - 2007

ALTERANDO A CAIXA DE UMA STRING• strtoupper() - Coloca a string toda em

letras maiúsculas• strtolower() - coloca a string toda em letras

minúsculas• ucfirst() - coloca o primeiro caractere de

string em letra maiúscula (apenas se ele for alfabético)

• ucwords() - coloca o primeiro caractere de cada palavra em letra maiúscula (apenas para caracteres alfabéticos)

MANIPULAÇÃO DE STRINGS

Page 39: PHP

Izequiel Pereira de Norões - 2007

FORMATANDO STRINGS PARA ARMAZENAMENTO

• AddSlashes() - Adiciona automaticamente uma barra invertida (\) antes de caracteres especiais. Utilize-a antes de gravar dados no banco.

• StripSlashes() - Remove as barras invertidas (\) localizadas antes de caracteres especiais. Utilize-a ao ler dados do banco e em conjunto com AddSlashes().

MANIPULAÇÃO DE STRINGS

Page 40: PHP

Izequiel Pereira de Norões - 2007

UNINDO E DIVIDINDO STRINGS• explode() - recebe uma string de entrada e uma

string separadora. Retorna um array contendo as partes da divisão da string de entrada com a string separadora.$email = “[email protected]”;$partes = explode ( $email, @ );$alias = $partes[0]; // $alias = “izequiel”$dominio = $partes[1]; // $dominio =

“hotmail.com”

• implode() - recebe a string de união e um array. Retorna uma string única, contendo todos os elementos do array “separados” pela string de união.

$email = implode( “@”, $partes ); // $email = “[email protected]

MANIPULAÇÃO DE STRINGS

Page 41: PHP

Izequiel Pereira de Norões - 2007

UNINDO E DIVIDINDO STRINGS• substr() - permite acessar uma string entre

determinados pontos inicial e final dela.String substr( string string, int inicio, [ int

comprimento ] );

$string = “Eu uso Software Livre!”;$res = substr( $string, 3 ); // $res = “uso Software

Livre!”$res = substr( $string, -6 ); // $res = “Livre!”$res = substr( $string, 0, 6 );// $res = “Eu uso”$res = substr( $string, 6, -7 ); // $res =

“Software”

QUAL O TAMANHO DE UMA STRING?Use strlen() pra obter essa resposta.

MANIPULAÇÃO DE STRINGS

Page 42: PHP

Izequiel Pereira de Norões - 2007

COMPARANDO STRINGSAs funções a seguir recebem duas strings

(str1 e str2) e retorna um inteiro:0, para o caso das strings serem iguaisum número negativo, para o caso de str1 ser

lexicograficamente menor que str2um número positivo, para o caso de str1 ser

lexicograficamente maior que str2• strcmp() - compara duas strings, diferenciando

maiúsculas de minúsculas• strcasecmp() - ignora distinções entre maiúsculas e

minúsculas• strnatcmp() e strnatcasecmp() - tentam imitar um

humano na comparação de strings.? Com strcmp(), “2” é maior do que “12”. Com

strnatcmp() ocorre o contrário.

MANIPULAÇÃO DE STRINGS

Page 43: PHP

Izequiel Pereira de Norões - 2007

LOCALIZANDO STRINGS EM STRINGSAs funções a seguir recebem duas strings

(str1 e str2):• strstr() - Retorna str1 a partir da primeira

ocorrência de str2, ou false caso não exista nenhuma ocorrência;

• strchr() - O mesmo que strstr() só que str2 deve ser apenas um caractere;

• stristr() - O mesmo que strstr() só que ignora distinções entre maiúsculas e minúsculas;

• strrstr() - retorna str1 a partir da última ocorrência de str2, ou false caso não exista nenhuma ocorrência.

• strpos() - ao invés de uma string, retorna a posição em que str2 ocorre pela primeira vez em str1.

• strrpos() - semelhante à strpos(), só que str2 deve ser um caractere obrigatoriamente e ela retorna a posição em que este caractere ocorre pela última vez em str1.

MANIPULAÇÃO DE STRINGS

Page 44: PHP

Izequiel Pereira de Norões - 2007

SUBSTITUINDO SUBSTRINGS

• str_replace()string str_replace( string agulha, string

nova_agulha, string palheiro );Essa função substituirá todas as instâncias de

agulha no palheiro por nova_agulha.

• substr_replace()string substr_replace( string string, string

substituta, int inicio, [int comp] );Essa função substituirá parte da string por

substituta. Início indica a partir de onde começará a substituição e comp delimita o fim.

MANIPULAÇÃO DE STRINGS

Page 45: PHP

Izequiel Pereira de Norões - 2007

Require()require ( “nomedoarquivo.extensao” );• É ligeiramente mais rápida;• Para incluir código PHP, este deve estar

entre tags PHP (<?, ?>) no arquivo a ser incluso;

• É executada na primeira vez em que a instrução é analisada sintaticamente.

Include()include ( “nomedoarquivo.extensao” );• Só ocorrerá a inserção, se a instrução

include vier a ser executada;• Pode retornar um valor.

REUTILIZAÇÃO DE CÓDIGO

Page 46: PHP

Izequiel Pereira de Norões - 2007

• Maior legibilidade ao código;• Possibilidade de reutilização;• Podem receber valores (parâmetros) –

quando for necessário que a funcionalidade varie de acordo com uma situação particular;

• Podem retornar valores – como resposta ao processamento executado.

PROTÓTIPO DE FUNÇÃOInforma o tipo de retorno e parâmetros necessários

à execução.

TipoDeRetorno nomeDaFuncao( tipo parametro1, [ tipo parametro2 ] );

! Você receberá um fatal error ao chamar uma função que não existe!

UTILIZANDO FUNÇÕES

Page 47: PHP

Izequiel Pereira de Norões - 2007

Function nomeDaFuncao( $parametro1, $parametro2 = 2 )

{...return resultado;

}REGRAS PARA NOMES• Distinguem maiúsculas de

minúsculas;• Não pode ter o mesmo nome que

uma função pré-existente;• Só pode conter letras, dígitos e

sublinhados;• Não pode iniciar com um dígito.

CRIANDO SUAS PRÓPRIAS FUNÇÕES

Page 48: PHP

Izequiel Pereira de Norões - 2007

PASSAGEM POR VALORUma cópia da variável é criada

PASSAGEM POR REFERÊNCIAA variável original (exterior à função) é

alterada.Utilize um e comercial (&) antes do nome do

parâmetro na declaração da funçao.Funcao funcao2 ( &$parametro1 ){

...}

CRIANDO SUAS PRÓPRIAS FUNÇÕES

Page 49: PHP

Izequiel Pereira de Norões - 2007

ESTRUTURA DE UMA CLASSEclass NomeDaClasse{

var $atributo1;var $atributo2;function operacao1(){}function operacao2( $param1, $param2 ){

this->atributo1 = $param1;}

}

! Para acessar um atributo de dentro da própria classe, utilize o operador this!

PHP ORIENTADO A OBJETOS

Page 50: PHP

Izequiel Pereira de Norões - 2007

CONSTRUTOR• Função chamada quando um objeto da

classe é instanciado;• É uma função que leva o mesmo nome

que a classe.

! O PHP NÃO suporta sobrecarga de funções.

UTILIZANDO A NOSSA CLASSE$a = new NomeDaClasse();echo $a->atributo1;$a->operacao2();

PHP ORIENTADO A OBJETOS

Page 51: PHP

Izequiel Pereira de Norões - 2007

mail()mail( string destinatario, string assunto, string

mensagem, [ string adicionais ] );• Adicionais pode ser: remetente, cópia

conjunta, cópia oculta.

ENVIANDO E-MAIL

Page 52: PHP

Izequiel Pereira de Norões - 2007

date()• Aceita dois parâmetros: o primeiro é uma

string de formato, e o segundo (opcional) é um registro de data/hora do UNIX;

• Se o segundo parâmetro não for passado, assume como padrão a data/hora atual.

CÓDIGOS PARA A FUNÇÃO date()h – hora do dia em formato 12 horas com zeros iniciais;H – hora do dia em formato 24 horas com zeros iniciais;i – minutos depois da hora com zeros iniciais;s – segundos depois do minuto com zeros iniciais;d – dia do mês como um número de 2 dígitos com zeros

iniciais;D – dia da semana no formato de texto abreviado [Mon

- Sun];m – mês do ano como um número de dois algarismos

com zeros iniciais;M – mês do ano no formato abreviado de texto de 3

caracteres [Jan – Dec];y – ano no formato de 2 algarismos;Y – ano no formato de 4 algarismos.

GERENCIANDO DATA E HORA

Page 53: PHP

Izequiel Pereira de Norões - 2007

getdate()• Recebe um registro de data/hora do UNIX

e retorna um array associativo representado as partes desta data.

PARES DE CHAVE-VALOR DO ARRAY RETORNADO POR getdate();

mday – dia do mês, numéricomon – mês, numéricoyear – ano, numéricomonth – mês, formato de texto completoseconds – segundos, numéricominutes – minutos, numéricohours – horas, numérico

GERENCIANDO DATA E HORA

Page 54: PHP

Izequiel Pereira de Norões - 2007

EU QUERO A DATA DE HOJE

1) date()echo date(“d m Y”); // reproduz 21

September 2004

2) getdate()$data = getdate( date(“U”) );$dia = $data[mday];$mes = $data[mon];$ano = $data[year];$data = “$dia/$mes/$ano”;echo $data; // reproduz

21/09/2004

GERENCIANDO DATA E HORA

Page 55: PHP

Izequiel Pereira de Norões - 2007

COOKIES são informações armazenadas na máquina do cliente.

Int setcookie( string nome [, string valor [, int expiração [, string caminho [, string dominio [, int seguro ]]]]] )

ONDE:nome – nome da variável cookievalor – valor da variável cookieexpiração – data além da qual o cookie não é mais

importantecaminho e domínio – servem para especificar as páginas

nas quais a variável é importanteseguro – indica que o cookie não será enviado em uma

conexão de HTTP simples

UTILIZANDO COOKIES

Page 56: PHP

Izequiel Pereira de Norões - 2007

PARA ACESSAR UMA VARIÁVEL COOKIE$HTTP_COOKIE_VARS[“nomeDaVariavelCoo

kie”]

PARA EXCLUIR UMA VARIÁVEL COOKIEUtilize setcookie passando como parâmetro

apenas o nome da variável.setcookie(“nomeDaVariavelCookie”);

PROBLEMAS RELACIONADOS A COOKIES• Alguns navegadores não aceitam cookies;• Os usuários têm o direito de desativar os

cookies em seus navegadores.

UTILIZANDO COOKIES

Page 57: PHP

Izequiel Pereira de Norões - 2007

• É o tempo que o usuário permanece conectado ao site;

• Para cada sessão, o PHP gera um ID único de sessão. Esse ID fica armazenado no cliente pelo tempo da sessão;

• As variáveis de sessão ficam armazenadas no servidor;

• Utilizando sessão no PHP, existem funções prontas para manipular automaticamente os cookies.

SESSÃO

Page 58: PHP

Izequiel Pereira de Norões - 2007

1) INICIANDO UMA SESSÃOsession_start();

2) REGISTRANDO UMA VARIÁVEL DE SESSÃOsession_register(“nomeDaVariavel”); // não

colocar cifrão

3) UTILIZANDO UMA VARIÁVEL DE SESSÃOsession_start();$HTTP_SESSION_VARS[“nomeDaVariavel”];• Use

session_is_registered(“nomeDaVariavel”) para saber se uma variável é de sessão.

UTILIZANDO SESSÃO

Page 59: PHP

Izequiel Pereira de Norões - 2007

4) REMOVENDO REGISTROS DE VARIÁVEIS

session_unregister(“nomeDaVariavel”);

5) DESTRUINDO UMA SESSÃOsession_destroy();

UTILIZANDO SESSÃO

Page 60: PHP

Izequiel Pereira de Norões - 2007

MySQL

Page 61: PHP

Izequiel Pereira de Norões - 2007

• É um SISTEMA GERENCIADOR DE BANCO DE DADOS.

• Permite multi-acesso;• Permite autenticação de usuário.

O QUE É MySQL?

Page 62: PHP

Izequiel Pereira de Norões - 2007

• Desempenho;• Baixo Custo;• Facilidade de Uso;• Portabilidade;• Código-fonte.

Por que você utilizaria o MySQL?

Page 63: PHP

COMO CONSEGUIR O MySQL?

Baixe-o gratuitamente de:

http://www.mysql.com

Documentaçãohttp://dev.mysql.com/doc/mysql/pt/index.html

Page 64: PHP

Izequiel Pereira de Norões - 2007

UTILIZANDOO MySQL

Page 65: PHP

Izequiel Pereira de Norões - 2007

Ferramentas administrativas para o MySQL

MySQL Control Center (ou MySQLCC) é uma interface amigável que trabalha remotamente com o MySQL. MySQLCC torna fácil as tarefas de criar banco de dados e tabelas, escrever e executar comandos SQL (em um editor com distinção de cores), visualizar o conteúdo de suas tabelas.

Page 66: PHP

Izequiel Pereira de Norões - 2007

Ferramentas administrativas para o MySQL

MySQL Administrator é uma poderosa ferramenta de administração visual de seus servidores MySQL com ela você pode acompanhar como facilidade suas operações, além de integrar gerenciamento e manutenção na mesma ferramenta de forma intuitiva. Engloba todas as operações necessárias aos BDAs e Desenvolvedores em ambiente visual.

Page 67: PHP

Izequiel Pereira de Norões - 2007

NUMÉRICOSTINYINT[(M)]

SMALLINT[(M)] MEDIUMINT[(M)]INT[(M)] INTEGER[(M)]

BIGINT[(M)]FLOAT(precisão) FLOAT[(M,D)]

DOUBLE[(M,D)]REAL[(M,D)] DECIMAL[(M,D)]

NUMERIC[(M,D)]DOUBLE PRECISION[(M,D)]

• Use ZEROFILL para completar com zeros à esquerda os valores que tiverem menos algarismos que o especificado;

• Use UNSIGNED para criar inteiros iniciando em 0 (zero).

TIPOS DE DADOS MySQL

Page 68: PHP

Izequiel Pereira de Norões - 2007

DATA/HORA

DATE Uma data (YYYY-MM-DD)

TIME Um horário (HH:MM:SS)

DATETIME Uma data e uma hora (YYYY-MM-DDHH:MM:SS)

TIMESTAMP[(M)] Um registro de data/hora.

YEAR[(2|4)] Um ano.

• TIMESTAMP pode auxiliar nas transações.

TIPOS DE DADOS MySQL

Page 69: PHP

Izequiel Pereira de Norões - 2007

STRING

CHAR(M) Texto de tamanho fixo de M caracteres.

VARCHAR(M) Texto de tamanho variável de M caracteres.

TINYBLOB TINYTEXTBLOB TEXTMEDIUMBLOB MEDIUMTEXTLONGBLOB LONGTEXT

• Campos BLOB (Binary Large Objects) armazenam quaisquer dados binários;

• Campos TEXT diferenciam maiúsculas de minúsculas.

TIPOS DE DADOS MySQL

Page 70: PHP

Izequiel Pereira de Norões - 2007

MyISAM• Indexed Sequential Access Method,

método padrão para armazenar registros e arquivos.

HEAP• Tabelas que ficam armazenadas em

memória;• Extremamente rápidas;• Em caso de queda, os dados serão

perdidos;• Não aceitam colunas BLOB, TEXT e AUTO

INCREMENT.BDB• Tabelas seguras para transações;• Suportam COMMIT e ROLLBACK.

TIPOS DE TABELAS MySQL

Page 71: PHP

Izequiel Pereira de Norões - 2007

PHP/MySQL

Page 72: PHP

Izequiel Pereira de Norões - 2007

1) Verificar e filtrar dados vindos do usuário;

2) Configurar uma conexão com o banco de dados apropriado;

3) Consultar o Banco de Dados;4) Recuperar os resultados;5) Apresentar os resultados de volta para

o usuário.

COMO CONSULTAR UM BD WEB?

Page 73: PHP

Izequiel Pereira de Norões - 2007

1) Utilizar trim();2) Verificar se as variáveis não estão

vazias;3) Utilizar AddSlashes().

FILTRANDO DADOS DO USUÁRIO

Page 74: PHP

Izequiel Pereira de Norões - 2007

• mysql_pconnect();• mysql_connect().

Int mysql_pconnect( [ string host [:porta] [:/caminhodosoquete] ],

[ string usuario ], [ string senha ] );

$conexao = mysql_pconnect( “localhost” , “root”, “” );

CONFIGURANDO UMA CONEXÃO

Page 75: PHP

Izequiel Pereira de Norões - 2007

• mysql_select_db();

Int mysql_select_db( string bandoDeDados, [ int conexao ] );

$banco = mysql_select_db( exemplo , $conexao );

ESCOLHENDO UM BANCO DE DADOS

Page 76: PHP

Izequiel Pereira de Norões - 2007

• mysql_query();int mysql_query( string consulta, [ int

conexao ] );

• mysql_db_query();int mysql_db_query( string bancoDeDados,

string consulta, [ int conexao ] );

$sql = “SELECT * FROM EMPREGADOS”;$resultado = mysql_query( $sql , $conexao );

CONSULTANDO O BANCO DE DADOS

Page 77: PHP

Izequiel Pereira de Norões - 2007

• mysql_num_rows();$totalRegistros = mysql_num_rows( $resultado );

• mysql_fetch_array( $resultado ) - retorna um array associativo onde as chaves são os nomes dos atributos e os valores são os valores dos atributos;

• mysql_fetch_row( $resultado ) - retorna um array enumerativo;

• mysql_fetch_object( $resultado ) - retorna um objeto onde cada atributo da tabela será um atributo do objeto.

While ( $linha = mysql_fetch_array ( $resultado ) ){

echo “<br>NOME: “;echo

htmlspecialchars( stripslashes( $linha[“nome”] ) );

}

RECUPERANDO OS RESULTADOS DA CONSULTA

Page 78: PHP

Izequiel Pereira de Norões - 2007

• mysql_affected_rows() - retorna o número de registros afetados para o caso de consultas INSERT, UPDATE e DELETE;

$totalRegistrosAfetados = mysql_affected_rows( $resultado );

• mysql_free_result() - libera a memória utilizada para armazenar o resultado;

mysql_free_result( $resultado );

• mysql_close() - fecha uma conexão de dados não-persistente.

mysql_close( $conexao );

OUTRAS FUNÇÕES ÚTEIS

Page 79: PHP

Izequiel Pereira de Norões - 2007

BIBLIOGRAFIA

WELLING Luke, THOMSON Laura. PHP e MySQL – Desenvolvimento Web.Rio de Janeiro: Editora Campus, 2001.

http://www.php.net

Page 80: PHP

Izequiel Pereira de Norões - 2007

Próximo módulo...

• Continua ... ASP