Escolar Documentos
Profissional Documentos
Cultura Documentos
Enviada por:
Jos Henrique Monteiro De Almeida
Sumrio
1. INTRODUO AO PHP............................................................................................................................................. 4
1.1. O QUE PHP?........................................................................................................................................................... 4
1.2. COMO SURGIU A LINGUAGEM PHP?.......................................................................................................................... 4
1.3. CARACTERSTICAS DA LINGUAGEM PHP .................................................................................................................. 5
1.4. CONFIGURAO DO IIS............................................................................................................................................. 5
1.5. TESTANDO O PHP ..................................................................................................................................................... 5
2. SINTAXE DO PHP....................................................................................................................................................... 6
2.1. DELIMITANDO O CDIGO PHP .................................................................................................................................. 6
2.2. SEPARADOR DE INSTRUES..................................................................................................................................... 6
2.3. COMENTRIOS .......................................................................................................................................................... 6
2.4. IMPRIMINDO CDIGO HTML....................................................................................................................................... 7
3 VARIVEIS................................................................................................................................................................ 8
3.1. NOMES DE VARIVEIS ............................................................................................................................................... 8
3.2. TIPOS SUPORTADOS .................................................................................................................................................. 8
3.3. TRANSFORMAO DE TIPOS .................................................................................................................................... 11
4. OPERADORES........................................................................................................................................................... 14
4.1. OPERADORES ARITMTICOS ................................................................................................................................... 14
4.2. OPERADORES DE STRINGS ...................................................................................................................................... 14
4.3. OPERADORES DE ATRIBUIO................................................................................................................................. 14
4.4. OPERADORES BIT A BIT ........................................................................................................................................... 15
4.5. OPERADORES LGICOS ........................................................................................................................................... 15
4.6. OPERADORES DE COMPARAO ............................................................................................................................. 15
4.7. OPERADORES DE EXPRESSO CONDICIONAL........................................................................................................... 15
4.8. OPERADORES DE INCREMENTO E DECREMENTO ...................................................................................................... 15
5. ESTRUTURAS DE CONTROLE ............................................................................................................................. 17
5.1. BLOCOS .................................................................................................................................................................. 17
5.2. ESTRUTURA IF / ELSE / ELSEIF ................................................................................................................................. 17
5.3. ESTRUTURA SWITCH CASE ..................................................................................................................................... 20
5.4. ESTRUTURAS DE REPETIO ................................................................................................................................... 22
5.4.1. WHILE ................................................................................................................................................................. 22
5.4.2. DO ... WHILE ........................................................................................................................................................ 23
5.4.3. FOR ...................................................................................................................................................................... 23
5.5. QUEBRA DE FLUXO ................................................................................................................................................. 24
5.5.1. BREAK ................................................................................................................................................................. 24
5.5.2. CONTINUE ............................................................................................................................................................ 24
6. FUNES ................................................................................................................................................................... 26
6.1. ESCOPO DE VARIVEIS ..................................................................................................................................... 28
6.2. GLOBAIS ................................................................................................................................................................. 28
6.3. LOCAIS ................................................................................................................................................................... 29
6.4. ESTTICAS .............................................................................................................................................................. 29
6.5. CONSTANTES .......................................................................................................................................................... 30
7. UTILIZANDO FORMULRIOS HTML ................................................................................................................ 31
7.1. DEFININDO UM FORMULRIO .................................................................................................................................. 31
7.2. INTERAGINDO O PHP COM OS FORMULRIOS HTML ............................................................................................. 35
7.3. VARIVEL $_POST ................................................................................................................................................ 35
1. Introduo ao PHP
1.1. O que PHP?
O PHP uma linguagem que permite criar sites WEB dinmicos, possibilitando uma interao com o
usurio atravs de formulrios, parmetros da URL e links. A diferena de PHP com relao a linguagens
semelhantes a Javascript que o cdigo PHP executado no servidor, sendo enviado para o cliente
apenas html puro.
Desta maneira possvel interagir com bancos de dados e aplicaes existentes no servidor, com a
vantagem de no expor o cdigo fonte para o cliente. Isso pode ser til quando o programa est lidando
com senhas ou qualquer tipo de informao confidencial.
O que diferencia PHP de um script CGI escrito em C ou Perl que o cdigo PHP fica embutido no prprio
HTML, enquanto no outro caso necessrio que o script CGI gere todo o cdigo HTML, ou leia de um outro
arquivo.
Tem suporte a um grande nmero de bancos de dados como: dBase, Interbase, mSQL, mySQL,
Oracle, Sybase, PostgreSQL e vrios outros.
Tem suporte a outros servios atravs de protocolos como IMAP, SNMP, NNTP, POP3 e,
logicamente, HTTP;
Seu cdigo livre, no preciso pagar por sua utilizao e pode ser alterado pelo usurio na
medida da necessidade de cada usurio
2. Sintaxe do PHP
2.1. Delimitando o cdigo PHP
O cdigo PHP fica embutido no prprio HTML. O interpretador identifica quando um cdigo PHP pelas
seguintes tags:
<?php
comandos;
?>
<script language=php>
comandos;
</script>
<?
Comandos;
?>
<%
comandos;
%>
O tipo de tags mais utilizado o terceiro, que consiste em uma abreviao do primeiro. Para utiliz-lo,
necessrio habilitar a opo short-tags na configurao do PHP. O ltimo tipo serve para facilitar o uso por
programadores acostumados sintaxe de ASP. Para utiliz-lo tambm necessrio habilit-lo no PHP,
atravs do arquivo de configurao php.ini.
2.3. Comentrios
H dois tipos de comentrios em cdigo PHP:
Comentrios de uma linha:
Marca como comentrio at o final da linha ou at o final do bloco de cdigo PHP o que vier antes. Pode
ser delimitado pelo caracter # ou por duas barras ( // ). O delimitador //, normalmente, o mais utilizado.
Exemplo:
<?
echo teste; // este teste similar ao anterior
echo teste; /# este teste similar ao anterior
// sql teste;
?>
3 Variveis
3.1. Nomes de variveis
Toda varivel em PHP tem seu nome composto pelo caracter $(dlar) e uma string, que deve iniciar por
uma letra ou o caracter _. O PHP case sensitive, ou seja, as variveis $vivas e $VIVAS so diferentes.
Por isso preciso ter muito cuidado ao definir os nomes das variveis. bom evitar os nomes em
maisculas, pois como veremos mais adiante, o PHP j possui algumas variveis pr-definidas cujos nomes
so formados por letras maisculas.
Exemplo de variveis:
Obs.: Normalmente, a varivel criada utilizando-se, na maioria das vezes, o caracter $ (dlar).
Inteiro
Ponto flutuante
String
Array
Objeto
O PHP utiliza checagem de tipos dinmica, ou seja, uma varivel pode conter valores de diferentes tipos em
diferentes momentos da execuo do script. Por este motivo no necessrio declarar o tipo de uma
varivel para us-la. O interpretador PHP decidir qual o tipo daquela varivel, verificando o contedo em
tempo de execuo. Ainda assim, permitido converter os valores de um tipo para outro desejado,
utilizando o typecasting ou a funo settype (ver adiante).
Inteiros (integer ou long)
Uma varivel pode conter um valor inteiro com atribuies que sigam as seguintes sintaxes:
A diferena entre inteiros simples e long est no nmero de bytes utilizados para armazenar a varivel.
Como a escolha feita pelo interpretador PHP de maneira transparente para o usurio, podemos afirmar
que os tipos so iguais.
Ponto Flutuante (double ou float)
Uma varivel pode ter um valor em ponto flutuante com atribuies que sigam as seguintes sintaxes:
$vivas = 1.234;
$vivas = 23e4; # equivale a 230.000
Strings
Strings podem ser atribudas de duas maneiras:
a) utilizando aspas simples ( ' ) Desta maneira, o valor da varivel ser exatamente o texto contido entre
as aspas (com exceo de \\ e \' ver exemplo abaixo)
b) utilizando aspas duplas ( " ) Desta maneira, qualquer varivel ou caracter de escape ser expandido
antes de ser atribudo.
Exemplo:
<?
$teste = "Mauricio";
$vivas = '---$teste--\n';
$texto = Curso de PHP;
echo "$vivas";
?>
A sada desse script ser "---$teste--\n".
<?
$texto = Curso de PHP;
$teste = "Mauricio";
$vivas = "---$teste---\n";
echo "$vivas";
?>
A sada desse script ser "---Mauricio--" (com uma quebra de linha no final).
A tabela seguinte lista os caracteres de escape:
Sintaxe
Significado
\n
\r
\t
\\
\$
\
\
Nova linha
Retorno de carro (semelhante a \n)
Tabulao horizontal
A prpria barra ( \ )
O smbolo $
Aspa simples
Aspa dupla
Arrays
Arrays em PHP podem ser observados como mapeamentos ou como vetores indexados. Mais
precisamente, um valor do tipo array um dicionrio onde os ndices so as chaves de acesso. Vale
ressaltar que os ndices podem ser valores de qualquer tipo e no somente inteiros. Inclusive, se os ndices
forem todos inteiros, estes no precisam formar um intervalo contnuo Como a checagem de tipos em PHP
dinmica, valores de tipos diferentes podem ser usados como ndices de array, assim como os valores
mapeados tambm podem ser de diversos tipos.
Exemplo:
<?
$cor[0] = amarelo;
$cor[1] = vermelho;
$cor[2] = verde;
$cor[3] = azul;
$cor[4] = anil;
$cor[teste] = 1;
?>
Equivalentemente, pode-se escrever:
<?
$cor = array(0 => amarelo, 1 => vermelho, 2 => verde, 3 => azul, 4 => anil, teste => 1);
?>
Listas
As listas so utilizadas em PHP para realizar atribuies mltiplas.
Atravs de listas possvel atribuir valores que esto num array para variveis. Vejamos o exemplo:
Exemplo:
list($a, $b, $c) = array(a, b, c);
O comando acima atribui valores s trs variveis simultaneamente. bom notar que s so atribudos s
variveis da lista os elementos do array que possuem ndices inteiros e no negativos. No exemplo acima
as trs atribuies foram bem sucedidas porque ao inicializar um array sem especificar os ndices eles
passam a serinteiros, a partir do zero.
Um fator importante que cada varivel da lista possui um ndice inteiro e ordinal, iniciando com zero, que
serve para determinar qual valor ser atribudo. No exemplo anterior temos $a com ndice 0, $b com ndice
1 e $c com ndice 2. Vejamos um outro exemplo:
<?
$arr = array(1=>um,3=>tres,a=>letraA,2=>dois);
list($a,$b,$c,$d) = $arr;
echo $a<br>;
echo $b<br>;
echo $c<br>;
echo $d<br>;
?>
11
analisado o incio da string. Se contiver um nmero, ele ser avaliado. Seno, o valor ser 0
(zero);
Se a string contiver um ponto em sua parte numrica a ser analisada, ele ser considerado, e o
valor obtido ser double;
Se a string contiver um e ou E em sua parte numrica a ser analisada, o valor seguinte ser
considerado como expoente da base 10, e o valor obtido ser double;
Exemplos:
<?
$vivas = 1 + 10.5;
// $vivas == 11.5
$vivas = 1 + -1.3e3; // $vivas == -1299
$vivas = 1 + teste10.5;
// $vivas == 1
$vivas = 1 + 10testes;
// $vivas == 11
$vivas = 1 + " 10testes";
// $vivas == 11
$vivas = 1 + "+ 10testes";
// $vivas == 1
echo O valor de vivas : $vivas;
?>
b) Transformao explcita de tipos
A sintaxe do typecast de PHP semelhante ao C: basta escrever o tipo entre parnteses antes do valor.
Exemplo:
<?
$vivas = 15;
$vivas = (double) $vivas
$vivas = 3.9
$vivas = (int) $vivas
Sintaxe:
Settype(nomedavarivel,novo tipo da varivbel)
Exemplo:
<?
$vivas = 15;
settype($vivas,double)
$vivas = 15;
settype($vivas,string)
// $vivas integer
// $vivas double
// $vivas integer
// $vivas string
13
4. Operadores
4.1. Operadores Aritmticos
S podem ser utilizados quando os operandos so nmeros (integer ou float). Se forem de outro tipo, tero
seus valores convertidos antes da realizao da operao. So eles:
+
*
/
%
adio
subtrao
multiplicao
diviso
mdulo
atribuio simples
atribuio com adio
atribuio com subtrao
atribuio com multiplicao
atribuio com diviso
atribuio com mdulo
atribuio com concatenao
Exemplo:
<?
$a = 7;
$a += 2; // $a passa a conter o valor 9
?>
14
e lgico
ou lgico
ou exclusivo
no (inverso)
shift left
shift right
e lgico
ou lgico
ou exclusivo
no (inverso)
e lgico
ou lgico
Existem dois operadores para e e para ou porque eles tm diferentes posies na ordem de precedncia.
igual a
diferente de
menor que
maior que
menor ou igual a
maior ou igual a
++ incremento
decremento
Podem ser utilizados de duas formas: antes ou depois da varivel. Quando utilizado antes, retorna o valor
da varivel antes de increment-la ou decrement-la.
Quando utilizado depois, retorna o valor da varivel j incrementado ou decrementado.
Exemplos:
<?
$a = $b = 10;
$c = $a++;
$d = ++$b;
// $a e $b recebem o valor 10
// $c recebe 10 e $a passa a ter 11
// $d recebe 11, valor de $b j incrementado
?>
16
5. Estruturas de Controle
As estruturas que veremos a seguir so comuns para as linguagens de programao imperativas, bastando,
portanto, descrever a sintaxe de cada uma delas, resumindo o funcionamento.
5.1. Blocos
Um bloco consiste de vrios comandos agrupados com o objetivo de relacion-los com determinado
comando ou funo. Em comandos como if, for, while, switch e em declaraes de funes blocos podem
ser utilizados para permitir que um comando faa parte do contexto desejado. Blocos em PHP so
delimitados pelos caracteres { e }. A utilizao dos delimitadores de bloco em uma parte qualquer do
cdigo no relacionada com os comandos citados ou funes no produzir efeito algum, e ser tratada
normalmente pelo interpretador.
Exemplo:
<?
if ($x == $y)
comando1;
comando2;
?>
Para que comando2 esteja relacionado ao if preciso utilizar um bloco:
<?
if ($x == $y) {
comando1;
comando2;
}
?>
if (expresso) {
comando;
...
...
...
comando;
}
Para incluir mais de um comando no if da primeira sintaxe, preciso utilizar um bloco, demarcado por
chaves.
17
Exemplo 1:
<?
$a = 10;
$b = 20;
if ($a > $b)
echo o Valor de a : .$a + $b;
?>
Exemplo 2:
<?
$a = 10;
$b = 20;
if ($a >= $b) {
$media = ($a + $b) / 2;
$resto = $a % $b;//calcula o resto da diviso de A por B
echo o Valor de A : .$a <br>;
echo o Valor de B : .$b <br>;
echo o Valor da mdia : .$media <br>;
echo O resto da diviso de A por B : .$resto;
}
?>
Else
O else um complemento opcional para o if. Se utilizado, o comando ser executado se a expresso
retornar o valor false (zero). Suas duas sintaxes so:
Sintaxes:
if (expresso)
comando;
else
comando;
ou
if (expresso) {
comando 1;
comando n
else {
comando 1;
comando n
}
Exemplos:
<?
18
$a = 10;
$b = 20;
if ($a > $b) {
$maior = $a;
} else {
$maior = $b;
}
?>
O exemplo acima coloca em $maior o maior valor entre $a e $b.
Em determinadas situaes necessrio fazer mais de um teste, e executar condicionalmente diversos
comandos ou blocos de comandos. Para facilitar o entendimento de uma estrutura do tipo:
if (expressao1)
comando1;
else
if (expressao2)
comando2;
else
if (expressao3)
comando3;
else
comando4;
foi criado o comando, tambm opcional elseif. Ele tem a mesma funo de um else e um if usados
seqencialmente, como no exemplo acima. Num mesmo if podem ser utilizados diversos elseifs, ficando
essa utilizao a critrio do programador, que deve zelar pela legibilidade de seu script.
Elseif
O comando elseif tambm pode ser utilizado com dois tipos de sintaxe. Em resumo, a sintaxe geral do
comando if fica das seguintes maneiras:
Sintaxe:
if (expressao1)
comando;
elseif (expressao2)
comando;
else
comando;
ou
if (expresso 1) {
comando 1;
comando n;
}
elseif (expresso 2) {
comando 1;
comando n;
}
else {
comando 1;
comando n;
}
Exemplo:
<?
19
$nota1 = 6;
$nota 2 = 8;
$media = ($nota1 + $nota2) / 2;
if ($media > 7) {
echo Mdia: .$media .<br>;
echo Aluno aprovado.;
}
elseif ($media <7) {
echo Mdia: .$media .<br>;
echo Aluno reprovado.;
}
else {
echo Mdia: .$media.<br>;
echo Aluno em recuperao.;
}
?>
O exemplo seguinte mostra dois trechos de cdigo que fazem a mesma coisa, sendo que o primeiro utiliza
uma srie de ifs e o segundo utiliza switch:
Exemplos 1: Estrutura IF
<?
20
if ($i == 0)
print i igual a zero;
elseif ($i == 1)
print i igual a um;
elseif ($i == 2)
print i igual a dois;
?>
Exemplo 2: Estrutura SWITCH
<?
switch ($i) {
case 0:
print i igual a zero;
break;
case 1:
print i igual a um;
break;
case 2:
print i igual a dois;
break;
}
?>
importante compreender o funcionamento do switch para no cometer enganos. O comando switch testa
linha a linha os cases encontrados, e a partir do momento que encontra um valor igual ao da varivel
testada, passa a executar todos os comandos seguintes, mesmo os que fazem parte de outro teste, at o
fim do bloco.
Por isso usa-se o comando break, quebrando o fluxo e fazendo com que o cdigo seja executado da
maneira desejada. Veremos mais sobre o break mais adiante.
Exemplo:
<?
switch ($i) {
case 0:
print i igual a zero;
case 1:
print i igual a um;
case 2:
print i igual a dois;
}
?>
No exemplo acima, se $i for igual a zero, os trs comandos print sero executados. Se $i for igual a 1,
os dois ltimos print sero executados. O comando s funcionar da maneira desejada se $i for igual a
2. Em outras linguagens que implementam o comando switch, ou similar, os valores a serem testados s
podem ser do tipo inteiro.
Em PHP permitido usar valores do tipo string como elementos de teste do comando switch. O exemplo
abaixo funciona perfeitamente:
21
Exemplo:
<?
switch ($s) {
case casa:
print A casa amarela;
case arvore:
print A rvore bonita;
}
?>
5.4.1. While
O while o comando de repetio (lao) mais simples. Ele testa uma condio e executa um comando, ou
um bloco de comandos, at que a condio testada seja falsa. Assim como o if, o while tambm possui
duas sintaxes alternativas:
Sintaxes:
While (condio)
comando;
Ou
While (condio) {
comandos;
comandos;
}
Exemplo:
<?
$a = 0;
while($a i<= 10) {
echo $a.<br>";
$a++;
}
?>
A expresso s testada a cada vez que o bloco de instrues termina, alm do teste inicial. Se o valor da
expresso passar a ser false no meio do bloco de instrues, a execuo segue at o final do bloco. Se no
teste inicial a condio for avaliada como false, o bloco de comandos no ser executado.
O exemplo a seguir mostra o uso do while para imprimir os nmeros de 1 a 10:
<?
$i = 1;
while ($i <=10)
22
print $i++;
print <br>;
?>
5.4.3. For
O tipo de lao mais complexo o for. Para os que programam em C, C++ ou Java, a assimilao do
funcionamento do for natural. Mas para aqueles que esto acostumados a linguagens como Pascal, h
uma grande mudana para o uso do for.
Sintaxe:
for (<inicializacao>;<condicao>;<incremento>) {
<comando>;
...
<comando>;
}
As trs expresses que ficam entre parnteses tm as seguintes finalidades:
Condio: Expresso booleana que define se os comandos que esto dentro do lao sero
executados ou no. Enquanto a expresso for verdadeira (valor diferente de zero) os comandos
sero executados.
<inicializacao>
while (<condicao>) {
comandos
...
<incremento>
}
Exemplo:
<?
For ($a = 0, $a <10, $a++) {
Echo O valor de A : . $a;
Echo <br>;
}
?>
5.5.2. Continue
O comando continue tambm deve ser utilizado no interior de laos, e funciona de maneira semelhante ao
break, com a diferena que o fluxo ao invs de sair do lao volta para o incio dele.
Exemplo:
<?
for ($i = 0; $i < 100; $i++) {
if ($i % 2)
24
continue;
echo $i ;
}
?>
O exemplo acima uma maneira ineficiente de imprimir os nmeros pares entre 0 e 99. O que o lao faz
testar se o resto da diviso entre o nmero e 2 0. Se for diferente de zero (valor lgico true) o interpretador
encontrar um continue, que faz com que os comandos seguintes do interior do lao sejam ignorados,
seguindo para a prxima iterao.
25
6. Funes
Sintaxe:
function nome_da_funo([arg1, arg2, arg3]) {
Comandos;
... ;
[return <valor de retorno>];
}
Qualquer cdigo PHP vlido pode estar contido no interior de uma funo. Como a checagem de tipos em
PHP dinmica, o tipo de retorno no deve ser declarado, sendo necessrio que o programador esteja
atento para que a funo retorne o tipo desejado. recomendvel que esteja tudo bem documentado para
facilitar a leitura e compreenso do cdigo. Para efeito de documentao, utiliza-se o seguinte formato de
declarao de funo:
tipo function nome_da_funcao(tipo arg1, tipo arg2, ...);
Este formato s deve ser utilizado na documentao do script, pois o PHP no aceita a declarao de tipos.
Isso significa que em muitos casos o programador deve estar atento aos tipos dos valores passados como
parmetros, pois se no for passado o tipo esperado no emitido nenhum alerta pelo interpretador PHP, j
que este no testa os tipos.
Valor de retorno
Toda funo pode opcionalmente retornar um valor, ou simplesmente executar os comandos e no retornar
valor algum.
No possvel que uma funo retorne mais de um valor, mas permitido fazer com que uma funo
retorne um valor composto, como listas ou arrays.
Argumentos
possvel passar argumentos para uma funo. Eles devem ser declarados logo aps o nome da funo,
entre parnteses, e tornam-se variveis pertencentes ao escopo local da funo. A declarao do tipo de
cada argumento tambm utilizada apenas para efeito de documentao.
Exemplos:
<?
function imprime($texto) {
echo $texto;
}
imprime(teste de funes);
?>
<?
function soma($v1, $v2) {
$soma = $v1+$v2;
return soma;
}
?>
26
27
Globais;
Locais;
Estticas;
Constantes;
6.2. Globais
28
As variveis globais so, por definio, as variveis que podem ser acessadas dentro de todo o script.
Porm, quando se cria escopo local como nas funes, precisaremos utilizar um tipo de chamada especial,
ou seja, definir aquela varivel como uma varivel global.
Exemplo:
<?
$curso = PHP;
function mostra() {
global $curso;
echo $curso;
}
mostra();
?>
Uma declarao global pode conter vrias variveis, separadas por vrgulas. Uma outra maneira de
acessar variveis de escopo global dentro de uma funo utilizando um array pr-definido pelo PHP cujo
nome $GLOBALS. O ndice para a varivel referida o prprio nome da varivel, sem o caracter $. O
exemplo acima e o abaixo produzem o mesmo resultado:
Exemplo:
<?
$curso = PHP;
function mostra() {
echo $GLOBAL[curso];
echo $curso;
}
mostra();
?>
6.3. Locais
As variveis Locais so os tipos mais restritos dentro do PHP. Elas funcionam apenas dentro desse escopo.
Exemplo:
<?
$curso = PHP;
function mostra() {
$var_local = variable local;
echo $var_local;
}
echo <b>$var_local</b>;
?>
6.4. Estticas
As variveis Estticas so variveis que possuem o mesmo tempo de vida das variveis globais, com a
diferena de funcionarem apenas em escopos locais e serem inicializadas apenas uma vez.
29
Exemplo:
<?
function contador() {
static $a = 0;
echo $a++.<br>;
}
for ($a = 0, $a <=5, $a++) {
contador();
}
?>
6.5. Constantes
Variveis Constantes so variveis que recebem um nico valor que no ser alterado dentro da funo,
permanecendo sempre o mesmo valor. Uma constante s pode conter valores escalares, no podendo
conter nem um array nem um objeto.
Sintaxe:
int define(string nome_da_constante, mixed valor); onde:
A funo retorna true se for bem-sucedida. Veja um exemplo de sua utilizao a seguir:
Exemplo:
define ("pi", 3.1415926536);
$circunf = 2*pi*$raio;
30
enctype: formato em que os dados sero enviados. O default urlencoded. Se for utilizado um
elemento do tipo upload de arquivo (file) preciso utilizar o tipo multipart/form-data.
Exemplo:
<form action="exemplo.php" method="post">
(textos e elementos do form)
</form>
Cada elemento do formulrio deve possuir um nome que ir identific-lo no momento em que o script
indicado no ACTION for tratar os dados.
A tag <input>
Muitos elementos de um formulrio html so definidos pela tag <input>. Cada tipo de elemento possui
parmetros prprios, mas todos possuem pelo menos dois parmetros em comum: type, que define o tipo
de elemento, e name, que como j foi dito define o nome daquele elemento. Existem, ainda, outros
parmetros, tambm chamados atributos que so comuns a maioria dos campos de um formulrio. So
eles:
Value - o valor pr-definido do elemento, que aparecer quando a pgina for carregada;
31
Value - o valor que ser enviado ao servidor quando o formulrio for submetido, no caso do campo
estar marcado;
Radio Button
Utilizado para campos de mltipla escolha, onde o usurio pode marcar apenas uma opo. Para agrupar
vrios elementos deste tipo, fazendo com que eles sejam exclusivos, basta atribuir o mesmo nome a todos
do grupo.
Sintaxe:
<input type="radio" name="" value="" checked>
onde:
Value - o valor que ser enviado ao servidor quando o formulrio for submetido, no caso do campo
estar marcado;
TextArea
32
Exibe na tela uma caixa de texto, com o tamanho definido pelos parmetros cols e rows.
Sintaxe:
<textarea cols="" rows="" name="" wrap="">texto</textarea>
Onde:
Wrap - Maneira como so tratadas as quebras de linha automticas. O valor soft faz com que o
texto quebre somente na tela, sendo enviado para o servidor o texto da maneira como foi digitado;
O valor hard faz com que seja enviado para o servidor da maneira como o texto aparece na tela,
com todas as quebras de linhas inseridas automaticamente; o valor off faz com que o texto no
quebre na tela e nem quando enviado ao servidor.
Obs.: O elemento do tipo textarea no possui o parmetro value. O valor pr-definido do campo
o texto que fica entre as tags <textarea> e </textarea>.
Select
Campo utilizado para que o usurio faa a seleo a partir de uma lista de opes.
Sintaxe:
<select name="" size="" multiple>
<option value="">texto</option>
<option value="">texto</option>
<option value="">texto</option>
<option value="">texto</option>
<option value="">texto</option>
<option value="">texto</option>
</select>
Onde:
Multiple - parmetro que, se presente, permite que sejam selecionadas duas ou mais linhas,
atravs das teclas Control ou Shift;
Value - Valor a ser enviado ao servidor se aquele elemento for selecionado. Default: o texto do item;
Texto - valor a ser exibido para aquele item. No definido por um parmetro, mas pelo texto que
fica entre as tags <option> e </option>
Se o parmetro size tiver o valor 1 e no houver o parmetro multiple, exibe na tela uma combo box.
Caso contrrio, exibe na tela uma select list.
Hidden
33
Campo oculto que utilizado para se passar parmetros para o servidor. Este campo no visvel para o
usurio.
Sintaxe:
<input type="hidden" name="" value="">
Onde:
Submit Button
Utilizado para enviar os dados do formulrio para o script descrito na seo action da definio do
formulrio
Sintaxe:
<input type="submit" name="" value="">
Onde:
Reset Button
Utilizado para fazer todos os campos do formulrio retornem ao valor original, quando a pgina foi
carregada. Bastante utilizado como boto limpar, mas na realidade s limpa os campos se todos eles tm
como valor uma string vazia.
Sintaxe:
<input type="reset" name="" value="">
Onde:
Button
Utilizado normalmente para ativar funes de scripts client-side (JavaScript, por exemplo). Sem essa
utilizao, no produz efeito algum.
Sintaxe:
<input type="button" name="" value="">
Onde:
No prximo tpico vamos ver como fazer para criar a interao do PHP com os formulrios. Vamos ver
como manipular dados do formulrio com o PHP.
34
Seu formulrio deve conter um boto "SUBMIT" para poder enviar as informaes;
Todos os campos do formulrio que sero tratados no script PHP devem conter o parmetro
"NAME", caso contrrio, os dados no sero passados para o script PHP;
Como as informaes do formulrio so passadas para esse script PHP e como as informaes do
formulrio enviado so tratadas, dependem de voc. Existem 2 mtodos como as informaes podem ser
passadas: GET e POST. O recomendvel sempre, para todos os formulrios usar o mtodo POST, onde
os dados enviados no so visveis nas URLs, ocultando possveis importantes informaes e permitindo o
envio de longas informaes. O GET totalmente o contrrio disso.
35
Vamos criar um pequeno exemplo de como se trabalhar com formulrios no PHP. Nossa pgina ir enviar
os dados de um formulrio para o servidor e exibir esses mesmos dados numa pgina de resposta criada
em PHP.
O formulrio que iremos montar a seguir (pgina form1.html) ir solicitar que voc preencha alguns dados.
Ao clicar num boto submit, o que voc digitou e preencheu no formulrio, ser enviado ao servidor
especificado para que possa ser produzida uma resposta, no nosso caso, ao arquivo RespForm1.php . O
PHP trata esses valores como variveis, cujo nome o nome do campo definido no formulrio. O exemplo
abaixo, mostra tambm que o cdigo PHP pode ser inserido em qualquer parte do cdigo HTML.
Digite o cdigo HTML a seguir (form1.html)
<html>
<head><title>Curso de PHP com MySQL</title></head>
<body>
<form name="form1" method="get" action="RespForm1.php">
<p>Nome:<br>
<input name="nome" type="text" id="nome" size="30" maxlength="30"></p>
<p>Senha:<br><input name="senha" type="password" id="senha" size="10" maxlength="10"></p>
<p>Sexo:<br>
<input name="sexo" type="radio" value="Masculino">Masculino
<input name="sexo" type="radio" value="Feminino">Feminino</p>
<p>Selecione o Turno:<br>
<input name="turno" type="checkbox" id="turno" value="Manh">Manh
<input name="turno" type="checkbox" id="turno" value="Tarde">Tarde
<input name="turno" type="checkbox" id="turno" value="Noite">Noite</p>
<p>Cidade:<br>
<select name="cidade" id="cidade">
<option value="vazio"> </option>
<option value="Rio">Rio de Janeiro</option>
<option value="So Paulo">So Paulo</option>
<option value="Belo Horizonte">Belo Horizonte</option>
</select></p>
<p><input type="submit" value="Enviar"></p>
<input type='hidden' name='btnOK' value='1'>
</form>
</body>
</html>
Salve o arquivo na sua pasta com o nome Form1.html. Agora, vamos criar o arquivo RespForm1.php.
Arquivo RespForm1.php
36
<?
// Recebe os dados do formulrio com a varivel $_POST
$nome = $_POST["nome"];
$senha = $_POST["senha"];
$sexo = $_POST["sexo"];
$turno = $_POST["turno"];
$cidade = $_POST["cidade"];
// Exibe os dados na pgina de resposta: RespForm.php
echo "Os dados recebidos do formulrio so: <p>";
echo "
<table width = '400' border='1' cellspacing='0' cellpadding='0'>
<tr>
<td width = '100'>Nome:<td>
<td width = '300'>$nome</td>
</tr>
<tr>
<td width = '100'>Senha:<td>
<td width = '300'>$senha</td>
</tr>
<tr>
<td width = '100'>Sexo:<td>
<td width = '300'>$sexo</td>
</tr>
<tr>
<td width = '100'>Turno:<td>
<td width = '300'>$turno</td>
</tr>
<tr>
<td width = '100'>Cidade:<td>
<td width = '300'>$cidade</td>
</tr>
</table>
";
?>
<html>
<head><title>Curso de PHP</title>
</head>
<body>
<p><font face="Arial, Helvetica, sans-serif" size="4">
<a href="form1.html">Clique aqui para voltar ao formulário.</a>
</font>
</body>
</html>
Aps salvar os arquivos Form1.html e RespForm1.php, abra o browser e, na linha de endereo digite:
37
Figura 1
Aps preencher o formulrio, clique no boto Enviar para submeter este formulrio ao servidor. Uma nova
pgina, que a resposta do servidor, dever aparecer conforme mostra a figura 2 a seguir.
Figura 2
38
Observaes:
Em vez de usar $_GET ou $_POST voc pode escrever a varivel com o mesmo nome do campo do
formulrio (no exemplo, $campo1 e $campo2). Mas, esse uso no recomendado, pois se a diretiva
"register_globals" na configurao do seu PHP estiver desativada, as variveis com nome dos campos dos
formulrios, tero um valor vazio.
Uma soluo para isso usar a funo import_request_variables no comeo dos seus scripts que
interpretam formulrios. Essa funo aceita 3 letras como argumentos: P, G e C, referentes a $_POST,
$_GET e $_COOKIE respectivamente.
Exemplo:
<?
import_request_variables("gP");
?>
O que acontece?
Exemplo:
Voc possui formulrio com os campos "nome", "endereo" e "idade". Assuma que a diretiva
"register_globals" do seu PHP esteja desligada, mas, voc j havia programado o script usando as
variveis no escopo global, no lugar de $_POST.
Adicionando aquela funo no comeo do script, as variveis do seu formulrio postado:
$_POST["nome"], $_POST["endereco"] e $_POST["idade"] sero extradas cada para uma varivel
diferente: $nome, $endereco e $idade.
39
40
Multi-plataforma, portanto suporta diferentes plataformas: Win32, Linux, FreeBSD, Unix, etc...
Cdigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores
Suporte as APIs das Seguintes linguagens: PHP, Perl, C,C++,Java, Pynthon, etc...
Suporte ODBC, voc pode facilmente conectar o Access a um banco de dados do MySQL
Nenhum problema com o Y2K, visto que o MySQL usa o relgio do Unix que no apresentar
problemas at 2069
Aplicaes Web
Estabilidade
41
1) Tipos numricos:
Existem tipos de dados numricos, que se podem dividir em dois grandes grupos, os que esto em vrgula
flutuante (com decimais) e os que no.
TinyInt: um nmero inteiro com ou sem sinal. Com sinal a margem de valores vlidos desde -128 at
127. Sem sinal, a margem de valores de 0 at 255
SmallInt: nmero inteiro com ou sem sinal. Com sinal a margem de valores vlidos desde -32768 at
32767. Sem sinal, a margem de valores de 0 at 65535.
MediumInt: nmero inteiro com ou sem sinal. Com sinal a margem de valores vlidos desde -8.388.608
at 8.388.607. Sem sinal, a margem de valores de 0 at 16777215.
Int: nmero inteiro com ou sem sinal. Com sinal a margem de valores vlidos desde -2147483648 at
2147483647. Sem sinal, a margem de valores de 0 at 429.496.295
BigInt: nmero inteiro com ou sem sinal. Com sinal a margem de valores vlidos desde 9.223.372.036.854.775.808 at 9.223.372.036.854.775.807. Sem sinal, a margem de valores de 0 at
18.446.744.073.709.551.615.
Float: nmero pequeno em vrgula flutuante de preciso simples. Os valores vlidos vo desde 3.402823466E+38 at -1.175494351E-38,0 et desde 175494351E-38 at 3.402823466E+38.
Double: nmero em vrgula flutuante de dupla preciso. Os valores permitidos vo desde 1.7976931348623157E+308 at -2.2250738585072014E-308, 0 e desde 2.2250738585072014E-308 at
1.7976931348623157E+308
Decimal: Nmero em vrgula flutuante desempacotado. O nmero armazena-se como uma cadeia.
Tipo de Campo
Tamanho de Armazenamento
TINYINT
1 byte
SMALLINT
2 bytes
MEDIUMINT
3 bytes
INT
4 bytes
BIGINT
8 bytes
INTEGER
4 bytes
BIGINT
8 bytes
FLOAT
4 bytes
DOUBLE
8 bytes
DECIMAL(M,D)
2) Tipos data:
42
Na hora de armazenar datas, h que ter em conta que MySQL no verifica de uma maneira estricta se uma
data vlida ou no. Simplesmente comprova que o ms est compreendido entre 0 e 12 e que o dia est
compreendido entre 0 e 31.
Date: tipo data, armazena uma data. A margem de valores vai desde o 1 de Janeiro de 1001 ao 31 de
dezembro de 9999. O formato de armazenamento de ano-mes-dia.
DateTime: Combinao de data e hora. A margem de valores vai desde o 1 ed Janeiro de 1001 s 0 horas,
0 minutos e 0 segundos ao 31 de Dezembro de 9999 s 23 horas, 59 minutos e 59 segundos. O formato de
armazenamento de ano-mes-dia horas:minutos:segundos
TimeStamp: Combinao de data e hora. A margem vai desde o 1 de Janeiro de 1970 ao ano 2037. O
formato de armazenamento depende do tamanho do campo:
Tamanhodo campo
14
12
8
6
4
2
Formato
AnoMesDiaHoraMinutoSegundo aaaammddhhmmss
AnoMesDiaHoraMinutoSegundo aammddhhmmss
AnoMesDia aaaammdd
AnoMesDia aammdd
AnoMes aamm
Ano aa
Time: armazena uma hora. A margem de horas vai desde -838 horas, 59 minutos e 59 segundos. O formato
de armazenamento 'HH:MM:SS'.
Year: armazena um ano. A margem de valores permitidos vai desde o ano 1901 ao ano 2155. O campo
pode ter tamanho dois ou tamanho 4 dependendo de se queremos armazenar o ano com dois ou quatro
algarismos.
Tipo de Campo
Tamanho de Armazenamento
DATE
3 bytes
DATETIME
8 bytes
TIMESTAMP
4 bytes
TIME
3 bytes
YEAR
1 byte
3 Tipos de cadeia:
Char(n): armazena uma cadeia de longitude fixa. A cadeia poder conter desde 0 at 255 caracteres.
VarChar(n): armazena uma cadeia de longitude varivel. A cadeia poder conter desde 0 at 255
caracteres. Dentro dos tipos de cadeia pode-se distinguir dois subtipos, os tipo Test e os tipo Blob (Binary
Large Object) A diferena entre um tipo e outro o tratamento que recebem na hora de orden-los e
compar-los. No tipo test ordena-se sem ter importncia as maisculas e as minsculas e no tipo blob
ordena-se tendo em conta as maisculas e minsculas.
TinyText e TinyBlob: Coluna com uma longitude mxima de 255 caracteres.
Blob e Text: um texto com um mximo de 65535 caracteres.
MediumBlob e MediumText: um texto com um mximo de 16.777.215 caracteres.
LongBlob e LongText: um texto com um mximo de caracteres 4.294.967.295. H que ter em conta que
devido aos protocolos de comunicao os pacotes podem ter um mximo de 16 Mb.
43
Enum: campo que pode ter um nico valor de uma lista que se especifica. O tipo Enum aceita at 65535
valores diferentes.
Tipo de campo
CHAR(n)
VARCHAR(n)
TINYBLOB, TINYTEXT
BLOB, TEXT
MEDIUMBLOB, MEDIUMTEXT
LONGBLOB, LONGTEXT
ENUM('value1','value2',...)
Tamanho de Armazenamento
n bytes
n +1 bytes
Longitude+1 bytes
Longitude +2 bytes
Longitude +3 bytes
Longitude +4 bytes
1 dos bytes dependendo do nmero de valores
44
Exemplo:
Create database focus;
Exemplo:
Create table alunos (
Id_aluno UNSIGNED INT(3) NOT FULL,
nome CHAR(40) NOT NULL,
endereco CHAR (50) NOT FULL
turma CHAR(20) NOT NULL,
PRIMARY KEY (matricula)
);
45
Comando Drop
Este comando elimina a definio da tabela, seus dados e referncias.
Sintaxe:
DROP TABLE < nome_tabela > ;
Exemplo:
Drop table alunos;
Comando Alter
Este comando permite inserir/eliminar atributos nas tabelas j existentes.
Sintaxe:
ALTER TABLE < nome_tabela > ADD / DROP (
nome_atributo1 < tipo > [ NOT NULL ],
nome_atributoN < tipo > [ NOT NULL ]
);
Exemplo:
Exemplo:
Select cidade, estado from brasil where populacao > 100000 order by Desc;
Comando INSERT
46
Adiciona um ou vrios registros a uma tabela. Isto referido como consulta anexao.
Sintaxe:
INSERT INTO destino [(campo1[, campo2[, ...]])]
VALUES (valor1[, valor2[, ...])
Onde;
campo1, campo2 - Os nomes dos campos aos quais os dados devem ser anexados
valor1, valor2 - Os valores para inserir em campos especficos do novo registro. Cada valor
inserido no campo que corresponde posio do valor na lista: Valor1 inserido no campo1 do
novo registro, valor2 no campo2 e assim por diante.
Os valores devem ser separados com uma vrgula e os campos de textos entre aspas duplas ou simples.
Exemplo:
Insert into alunos (Id_aluno, nome, endereo, turma, turno)
Values (1, Glaucio, Av. das Amricas, 1101, manh);
Comando UPDATE
Cria uma consulta atualizao que altera os valores dos campos em uma tabela especificada com base em
critrios especficos.
Sintaxe:
UPDATE tabela SET campo1 = valornovo, ... WHERE critrio;
Onde:
Valornovo - Uma expresso que determina o valor a ser inserido em um campo especfico nos
registros atualizados.
critrio - Uma expresso que determina quais registros devem ser atualizados. S os registros que
satisfazem a expresso so atualizado.
Exemplo:
Update alunos Set turno = tarde where turma = 1101;
UPDATE especialmente til quando voc quer alterar muitos registros ou quando os registros que voc
quer alterar esto em vrias tabelas. Voc pode alterar vrios campos ao mesmo tempo.
UPDATE no gera um conjunto de resultados. Se voc quiser saber quais resultados sero alterados,
examine primeiro os resultados da consulta seleo que use os mesmos critrios e ento execute a
consulta atualizao.
Comando DELETE
Remove registros de uma ou mais tabelas listadas na clusula FROM que satisfaz a clusula WHERE.
47
Sintaxe:
DELETE [tabela.*]
FROM tabela
WHERE critrio
onde:
tabela.* - O nome opcional da tabela da qual os registros so excludos.
tabela - O nome da tabela da qual os registros so excludos.
critrio - Uma expresso que determina qual registro deve ser excludo.
Exemplo:
Delete from alunos WHERE turno='Manh';
DELETE especialmente til quando voc quer excluir muitos registros.
Para eliminar uma tabela inteira do banco de dados, voc pode usar o mtodo Execute com uma instruo
DROP.
Entretanto, se voc eliminar a tabela, a estrutura perdida. Por outro lado, quando voc usa DELETE,
apenas os dados so excludos. A estrutura da tabela e todas as propriedades da tabela, como atributos de
campo e ndices, permanecem intactos.
Voc pode usar DELETE para remover registros de tabelas que esto em uma relao um por vrios com
outras tabelas. Operaes de excluso em cascata fazem com que os registros das tabelas que esto no
lado "vrios" da relao sejam excludos quando os registros correspondentes do lado "um" da relao so
excludos na consulta.
Por exemplo, nas relaes entre as tabelas Clientes e Pedidos, a tabela Clientes est do lado "um" e a
tabela Pedidos est no lado "vrios" da relao. Excluir um registro em Clientes faz com que os registros
correspondentes em Pedidos sejam excludos se a opo de excluso em cascata for especificada.
O DELETE exclui registros inteiros e no apenas dados em campos especficos. Se voc quiser excluir
valores de um campo especfico, crie uma consulta atualizao que mude os valores para Null.
Aps remover os registros usando uma consulta excluso, voc no poder desfazer a operao. Se quiser
saber quais arquivos foram excludos, primeiro examine os resultados de uma consulta seleo que use o
mesmo critrio e ento, execute a consulta excluso. Mantenha os backups de seus dados. Se voc excluir
os registros errados, poder recuper-los a partir dos seus backups.
48
die parmetro opcional que exibe uma mensagem indicando que a conexo no foi efetuada.
Exemplo:
<?
$conexao = mysql_connect (localhost, root, focus) or die (Conexo no efetuada);
?>
O valor de retorno um inteiro que identifica a conexo, ou falso se a conexo falhar. Antes de tentar
estabelecer uma conexo, o interpretador PHP verifica se j existe uma conexo estabelecida com o
mesmo host, o mesmo login e a mesma senha. Se existir, o identificador desta conexo retornado. Seno,
uma nova conexo criada.
Assim, se a conexo for bem sucedida (existir um servidor no endereo especificado que possua o usurio
com a senha fornecida), o identificador da conexo fica armazenado na varivel $conexao, caso contrrio
ser mostrada a mensagem Conexo no efetuada.
Mysql_close( )
49
Comando utilizado para encerrar uma conexo estabelecida com o comando mysql_connect antes de
chegar ao final do script. Caso esse comando no seja utilizado a conexo encerrada no final do script.
Sintaxe:
mysql_close(int [string da conexo] );
Se o identificador no for fornecido, a ltima conexo estabelecida ser encerrada.
Exemplo:
<?
mysql_close ($conexao);
?>
Obs.: O comando mysql_close no encerra conexes estabelecidas com o mysql_pconnect.
Mysql_select_db( )
Comando utilizado para selecionar a base de dados depois que a conexo for estabelecida. Se nenhuma de
conexo especificado, a ultima conexo aberta assumida. Se nenhuma conexo esta aberta, a funo
ir tentar abrir uma conexo como se mysql_connect() fosse chamada sem argumentos e us-la.
Sintaxe:
mysql_select_db(banco de dados, [string de conexao]) or die [(mensagem)];
Onde:
die parmetro opcional que exibe uma mensagem indicando que a conexo no foi efetuada.
Exemplo:
<?
$conexao = mysql_connect(localhost, root, focus);
if ($conexao) {
die (Conexo no estabelecida);
}
db_select = mysql_select_db(focus, $conexao);
?>
50
Mysql_query( )
51
linha - especifica o registro a ser exibido, j que uma query SELECT pode retornar diversos
registros;
campo - o identificador do campo a ser exibido, sendo o tipo descrito como mixed pela
possibilidade de ser de diversos tipos (neste caso, inteiro ou string).
Exemplo:
<?
$conexao = mysql_connect (localhost, root, focus);
mysql_select_db(focus, $conexo);
$insere = Insert into alunos (id_aluno, nome, endereo, turma, turno)
Values (1, Glaucio, Av. das Amricas, 1101, manh);
$insere1 = Insert into alunos (id_aluno, nome, endereo, turma, turno)
Values (2, Alexandre, Av. das Amricas, 1101, tarde);
mysql_query ($insere, $conexao) or die (No foi possvel executar a insero.);
mysql_query ($insere1, $conexao) or die (No foi possvel executar a insero.);
$consulta = Select Id_Aluno, nome, turno from alunos;
$resultado = mysql_query ($consulta, $conexao);
$nome = mysql_result($resultado,0,"nome");
$turno = mysql_result($resultado,0,turno);
echo (Nome: .$nome.<p>.Turno: .$turno);
mysql_close ($conexao);
?>
Com o exemplo acima, o resultado ser:
Nome: Glucio
Turno: Manh
Mysql_fetch_array( )
52
Esta funo l uma linha do resultado e devolve um array, cujos ndices so os nomes dos campos. A
execuo seguinte do mesmo comando ler a prxima linha, at chegar ao final do resultado.
Sintaxe:
Mysql_fecth_array(string da cosulta SQL);
Exemplo:
<?
$conexao = mysql_connect (localhost, root, focus);
mysql_select_db(focus, $conexo);
$insere = Insert into alunos (id_aluno, nome, endereo, turma, turno)
Values (1, Glaucio, Av. das Amricas, 1101, manh);
$insere1 = Insert into alunos (id_aluno, nome, endereo, turma, turno)
Values (2, Alexandre, Av. das Amricas, 1101, tarde);
mysql_query ($insere, $conexao) or die (No foi possvel executar a insero.);
mysql_query ($insere1, $conexao) or die (No foi possvel executar a insero.);
$consulta = Select Id_Aluno, nome, turno from alunos;
$resultado = mysql_query ($consulta, $conexao);
$dados = mysql_fecth_array($resultado);
$nome = $dados[nome];
$turno =$dados[turno];
echo (Nome: .$nome.<p>.Turno: .$turno);
mysql_close ($conexao);
?>
Com o exemplo acima, o resultado ser:
Nome: Glucio
Turno: Manh
Mysql_fetch_row( )
Esta funo semelhante a funo mysql_fetch_array, com a diferena que os ndices do array so
numricos, iniciando pelo 0 (zero).
Sintaxe:
Mysql_fetch_row(string de consulta);
Exemplo:
O exemplo anterior substituindo a funo mysql_fecth_array pela mysql_fetch_row.
Mysql_free_result( )
Esta funo libera a memria do resultado de uma consulta.
53
Sintaxe:
mysql_free_result ( resource result )
Exemplo:
<?
$conexao = mysql_connect (localhost, root, focus);
mysql_select_db(focus, $conexo);
$insere = Insert into alunos (id_aluno, nome, endereo, turma, turno)
Values (1, Glaucio, Av. das Amricas, 1101, manh);
$insere1 = Insert into alunos (id_aluno, nome, endereo, turma, turno)
Values (2, Alexandre, Av. das Amricas, 1101, tarde);
mysql_query ($insere, $conexao) or die (No foi possvel executar a insero.);
mysql_query ($insere1, $conexao) or die (No foi possvel executar a insero.);
$consulta = Select Id_Aluno, nome, turno from alunos;
$resultado = mysql_query ($consulta, $conexao);
$dados = mysql_fecth_array($resultado);
$nome = $dados[nome];
$turno =$dados[turno];
echo (Nome: .$nome.<p>.Turno: .$turno);
mysql_free_result($resultado);
mysql_close ($conexao);
?>
No exemplo acima, a funo mysql_free_result( ) ir liberar toda a memria usada com o identificador de
resultado $resultado.
Obs.: mysql_free_result() somente precisa ser chamado se voc esta preocupado em quanta
memria esta sendo usada para query num grande conjunto de resultados. Toda a memria usada
do resultado liberada automaticamente ao final da execuo do script.
54
55
exp - data de expirao do cookie (opcional), no formato Unix. Se no for definida, o cookie
ser de sesso;
secure - se tiver valor 1, indica que o cookie s pode ser transmitido por uma conexo segura
(https).
Observaes:
Um cookie no pode ser recuperado na mesma pgina que o gravou, a menos que esta seja
recarregada pelo browser;
Cookies s podem ser gravados antes do envio de qualquer informao para o cliente. Portanto
todas as chamadas funo setcookie devem ser feitas antes do envio de qualquer header ou
texto.
56
Exemplo:
Um cookie que foi gravado numa pgina anterior pelo seguinte comando:
setcookie(teste, meu cookie);
Pode ser lida pela varivel $HTTP_COOKIE_VARS[teste] ou pela varivel $teste.
O script a seguir um exemplo do uso de cookies. O script exibe quantas vezes o usurio visitou aquela
pgina.
Arquivo cookie.php
<?
error_reporting(134);
/*
* Erro no script
* Nome do seu Script
* Por Seu nome ou nick
* e-mail = seumail@qualquercoisa.com.br
*/
?>
<?
if ($Test != '') {
$Test++;
setcookie("Test",$Test, time()+3600000); // selecionar o nome do cokie
} else {
setcookie("Test",1, time()+3600000); //Criar o valor 1
$Test = 1;
}
$numvisits = $Test;
?>
Esse o cdigo completo do arquivo cookie.php. Agora, digite o arquivo visitas.php que ir informar o
nmero de vezes que o site foi visitado por um mesmo usurio.
Arquivo visitas.php
<?
include("cookie.php");
echo "Voc j esteve aqui $numvisits vezes";
?>
Agora, vamos estudar o cdigo do arquivo cookie.php separadamente, para voc entend-lo melhor.
57
Logo aps as informaes pessoais e o reporting, podemos ver que temos o cdigo:
<?
if ($Test != ) {
$Test++;
setcookie("Test",$Test, time()+3600000);
}
?>
Essa parte ser a responsvel pela criao do cookie no computador cliente (do usurio). O comando else
que vem logo aps o o cdigo acima, usado para acionar o outro cdigo caso o cookie j exista no cliente.
Seguindo abaixo temos a fase terminal do script que respondera caso o cookie j exista, retornando o
nmero de vezes que o usurio j esteve no site.
<?
// ...
} else {
setcookie("Test",1, time()+3600000);
$Test = 1;
}
$numvisits = $Test;
?>
Esse cdigo aps verificar o cookie ir responder quantas vezes o cliente j esteve no site e ambas as
partes completaro a funo de gravar novamente os novos dados no cookie.
V para o seu browser, carregue a pgina visitas.php e observe que o browser lhe informar o nmero de
visitas que voc fez no site.
Outro exemplo de uso de cookies:
<?
setcookie("cookie", "teste", time() + 3600*24*365);
?>
Esse cookie tem validade de um ano:
3600 segundos = 1 hora
3600 segundos vezes 24 horas
24 horas vezes 365 dias
Para excluir um cookie basta fazer a mesmo sistema que criar ele, mas usando um prazo de expirao
negativa. Veja o exemplo a seguir:
<?
setcookie("cookie", "teste", time() 3600*24*365);
?>
Veja acima o cookie que tinha validade de um ano ser excludo pq foi passado que o tempo dele agora
de um ano atrs, ou seja, j acabou.
58
59
Funo ord( ) - Esta funo retorna o cdigo ASCII correspondente ao caracter fornecido.
Sintaxe:
int ord(string string);
Exemplo:
<?
$texto = 65;
$ord = ord($texto);
echo "O cdigo da tabela ASCII correspondente ao caracter ".$texto." : "."<b>$ord</b>";
?>
Sintaxe:
strtolower(string str);
Exemplo:
<?
$texto = CURSO DE PHP"; // Digite o texto em letras maisculas.
$retorno = strtolower($texto);
echo "Contedo de $texto: .$texto<p>;
echo Retorno da funo: "."<b>$retorno</b>";
?>
Funo strtoupper( ) - Esta funo retorna a string fornecida com todas as letras maisculas.
Sintaxe:
string strtoupper(string str);
Exemplo:
<?
$texto = curso de php"; // Digite o texto em letras minsculas.
$retorno = strtoupper($texto);
echo "Contedo de $texto: .$texto<p>;
echo Retorno da funo: "."<b>$retorno</b>";
?>
Funo ucfirst( ) - Esta funo retorna a string fornecida com o primeiro caracter em letra maiscula.
Sintaxe:
string ucfirst(string str);
Exemplo:
<?
$texto = curso de php"; // Digite o texto em letras minsculas.
$retorno = ucfirst($texto);
echo "Contedo de $texto: .$texto<p>;
echo Retorno da funo: "."<b>$retorno</b>";
?>
Funo ucwords( ) - Esta funo retorna a string fornecida com todas as palavras iniciadas por letras
maisculas.
Sintaxe:
string ucwords(string str);
Exemplo:
<?
$texto = curso de php"; // Digite o texto em letras minsculas.
$retorno = ucwords($texto);
echo "Contedo de $texto: .$texto<p>;
echo Retorno da funo: "."<b>$retorno</b>";
?>
Funo trim( ) - Esta funo retira espaos e linhas em branco do incio e do final da string fornecida.
61
Sintaxe:
string trim(string str);
Exemplo:
<?
$texto = curso 01 ;
$retorno = trim($texto);
echo Retorno da funo: "."<b>$retorno</b>";
?>
Funo strstr( ) - Esta funo procura a primeira ocorrncia de str2 em str1. Se no encontrar, retorna
uma string vazia, e se encontrar retorna todos os caracteres de str1 a partir desse ponto.
Sintaxe:
string strstr(string str1, string str2);
Exemplo:
<?
texto = Primeiro Curso de PHP;
$retorno = strstr($texto, Curso);
echo "Contedo de $texto: .$texto<p>;
echo Retorno da funo: "."<b>$retorno</b>";
?>
Funo isset( ) - Esta funo utilizada para verificar se uma varivel possui algum valor setado. Retorna
true se a varivel estiver setada (ainda que com uma string vazia ou o valor zero), e false em caso
contrrio.
Sintaxe:
int isset(mixed var);
Exemplo:
<?
$texto = curso;
$isset = isset($texto);
echo "valor do isset: ".$isset;
?>
Funo empty( ) - Esta funo verifica se uma varivel est vazia ou se contem o valor 0 (zero). Caso
esteja vazia, retorna o valor true(1), caso contrrio, retorna o valor false(0).
Sintaxe:
int empty(mixed var);
Exemplo:
<?
$texto = 0;
$empty = empty($texto);
echo "valor do isset: ".$isset;
?>
Funo date( ) - Esta funo retorna a data ou hora atual do sistema.
Sintaxe:
62
date(formato da data);
Exemplo:
<?
$data = date(d/m/y);
echo a data : $data;
?>
A funo date possui vrios argumentos que sero utilizados de acordo com a forma como a data ou hora
aparecer para o usurio. Veja os exemplos no script a seguir.
Exemplo 2:
<?
$dia = date('d');
$mes = date('m');
$ano2 = date('y');
$ano4 = date('Y');
$sem = date('w');
$data = date('d/m/Y');
$data1 = date('d/m/y');
$hora = date('h:m:s');
$h = date('h');
$min = date("m");
echo "
Data atual exibindo o ano com 4 dgitos: <b>$data</b> e com 2 dgitos: <b>$data1.</b><p>
\$dia = date('d')- exibe somente o dia da data atual do sistema. O dia : <b>$dia</b><p>
\$mes = date('m')- exibe somente o ms da data atual do sistema. O ms :
<b>$mes</b>$m<p>
\$ano2 = date('y')- exibe somente o ano com 2 dgitos da data atual do sistema. O ano :
<b>$ano2</b><p>
\$ano4 = date('Y')- exibe somente o ano com 4 dgitos da data atual do sistema. O ano :
<b>$ano4</b><p>
\$sem = date('s')- exibe o nmero correspondente ao dia da semana, de 0(domingo) a
7(sbado). O nmero : <b>$sem</b><p>
\$hora = date('h:m:s') - exibe a hora atual do sistema. A hora : <b>$hora</b><p>
\$h = date('h') - exibe somente o valor correspondente a hora do sistema. O valor da hora :
<b>$h</b><p>
\$min = date('m') - exibe somente o valor correspondente aos minuntos da hora do sistema.
O valor dos minutos : <b>$min</b><p>
";
?>
Funo explode( ) - Esta funo retorna um array contendo partes da string fornecida separadas pelo
padro fornecido, sem limitar o nmero de elementos do array.
Sintaxe:
63
Funo nl2br( ) - Esta funo retorna a string fornecida substituindo todas as quebras de linha (\n) por
quebras de linhas em html (<br>).
A funo acima pode ser utilizada, por exemplo, em um campo de comentrio em um formulrio.
Sintaxe:
string nl2br(string str);
Exemplo:
<?
$data = date("d/m/y");
echo nl2br("Curso de PHP\n Data de incio: $data\n Valor: R$ 700,00\n");
?>
No exemplo acima, a funo nl2br ir retornar:
Curso de PHP
Data de incio: a data atual do seu sistema
Valor: R$ 700,00
Funo substr( ) Esta funo retorna uma parte de uma string.
Sintaxe:
string substr ( string string, int start [, int length])
Se start no for negativo, a string retornada iniciar na posio start em string, comeando em zero. Por
exemplo, na string 'abcdef', o caractere na posio 0 'a', o caractere na posio 2 'c', e assim em diante.
Exemplos:
Exemplo 1) Uso bsico de substr()
<?
64
65
//computername/share/filename; ou
\\\\computername\share\filename
Exemplo:
<?
$filename = '/caminho/para/qualquer.txt';
if (file_exists($filename)) {
print "O arquivo $filename existe";
} else {
print "O arquivo $filename no existe";
}
?>
Obs.: O resultado desta funo cacheada. Veja clearstatcache() para mais detalhes.
Esta funo no trabalha com arquivos remotos, de forma que o arquivo a ser examinado precisa ser
acessvel pelo sistema de arquivos do servidor.
Funo filesize( ) - Esta funo utilizada para ler o tamanho do arquivo. Retorna o tamanho do arquivo,
ou FALSE em caso de erro.
Sintaxe:
int filesize ( string nomedoarquivo)
Obs1.: O resultado desta funo cacheado. Veja clearstatcache() para mais detalhes.
Esta funo no trabalha com arquivos remotos, de forma que o arquivo a ser examinado precisa ser
acessvel pelo sistema de arquivos do servidor.
Exemplo:
<?
// Exibe algo como: arquivo.txt: 1024 bytes
$filename = 'arquivo.txt';
echo $filename . ': ' . filesize($filename) . ' bytes';
?>
muito utilizada quando se deseja fazer uploads de arquivos e voc precisa verificar se o tipo de arquivo
que est sendo enviado est de acordo com os tipos permitidos por voc. Arquivos do tipo .exe, .ini, .bat,
normalmente so arquivos executveis e que podem conter vrus. Por isso, na maioria dos casos, no so
permitidos que sejam enviados para o servidor.
Esta funo retorna o tipo do arquivo (file type). Os valores possveis so fifo, char, dir, block, link, file e
unknown (desconhecido). Retorna FALSE se um erro ocorrer. Esta funo filetype() tambm produzir um
erro E_NOTICE se a chamada a stat falhar ou se o tipo de arquivo for desconhecido.
Sintaxe:
string filetype ( string nomedoarquivo)
Obs.: O resultado desta funo cacheado. Veja clearstatcache() para mais detalhes.
Esta funo no trabalha com arquivos remotos, de forma que o arquivo a ser examinado precisa ser
acessvel pelo sistema de arquivos do servidor.
Exemplo:
<?
echo filetype('/etc/passwd'); // file
echo filetype('/etc/'); // dir
?>
Funo: clearstatcache( ) - Esta funo utilizada para limpar as informaes em cache de arquivos que
foram verificados, por exemplo, pela funo filesize().
Sintaxe:
void clearstatcache ( void )
Quando voc chama stat(), lstat() ou qualquer uma das funes afetadas (listadas abaixo), o PHP mantm
em cache as informaes que essas funes retornam para melhoria de performance. Entretanto, em certos
casos voc pode precisar limpar as informaes cacheadas. Por exemplo, se um mesmo arquivo
verificado vrias vezes em um nico script, e esse arquivo corre o risco de ser apagado ou modificado
durante a operao do script, voc precisa limpar os dados do cache. Nesses casos, voc pode utilizar a
funo clearstatcache() para limpar todas as informaes que o PHP mantm sobre um arquivo.
As funes afetadas so stat(), lstat(), file_exists(), is_writable(), is_readable(), is_executable(), is_file(),
is_dir(), is_link(), filectime(), fileatime(), filemtime(), fileinode(), filegroup(), fileowner(), filesize(), filetype(), e
fileperms().
Obs.: Esta funo guarda informaes sobre arquivos especficos, de forma que voc somente
precisa chamar clearstatcache() se voc estiver realizando vrias operaes sobre o mesmo arquivo
e necessita que a informao sobre esse arquivo em particular no seja cacheada.
Exemplo:
<?
echo filetype('/etc/passwd'); // file
echo filetype('/etc/'); // dir
clearstatcache(); // neste momento esta funo limpou as informaes do cach do arquivo.
?>
67