Você está na página 1de 247

naRedeMundial Corpiration

2007
PHP - ASP - JSP
Desenvolvendo Websites Dinmicos
Cerli Antnio da Rocha
[ w w w . n a r e d e m u n d i a l . c o m . b r / l i v r o ]
Quarta Capa
As tecnologias da web esto dando um n em sua cabea? Resolva este problema,
agora, com este livro.
Com uma abordagem direta e prtica, apresenta as trs linguagens mais usadas na
web: PHP, ASP e JSP, com seus recursos mais importantes, incluindo:
- Comandos e Funes mais usados em PHP(Personal Home Pages ou Hypertext
Preprocessor);
- Comandos e Funes mais usados em ASP(Active Server Pages);
- Comandos e Funes mais usados em JSP(Java Server Pages);
- Dicas de bons hbitos de programao;
- Dicas de instalao dos respectivos ambientes;
- Aplicativo de exemplo completo nas 3 linguagens de programao;
- Site com todos os cdigos de exemplo usados neste livro.
Este livro , sem dvida, a forma mais rpida de voc conhecer e entender, as
principais tecnologias dominantes na web, de uma s vez, em um nico lugar!
PHP - ASP - JSP
PHP
ASP
JSP
Autor: Cerli Antnio da Rocha
cerli@naredemundial.com.br
Julho de 2003
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

2
PHP - ASP - JSP

Sumrio
Sumrio....................................................................................................................................................... 3
Apresentao.............................................................................................................................................. 9
1 - Bons Hbitos de Programao........................................................................................................... 11
1 - Inicializao de Variavis!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 11
2 " Doc#mentao!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!11
$ " %omes Claros!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1&
& " 'so de (#n)es e Classes!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1&
* " Ar+#ivos ,e+#enos!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1&
- " .e/arao 01234C5di6o!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1*
7 " Dia6ramas!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1*
2 Comparao
PHPASP-SP.......................................................................................................................................... 1!
3 - A "e#$or %inguagem.......................................................................................................................... 1&
PHP
Personal Home pages .......................................................................................................................18
1 - 'ntroduo........................................................................................................................................... 19
1 - 8 +#e 9!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1:
2 - 8 +#e /ode ser ;eito9!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1:
$ - Como s#r6i#9!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2<
& " Dia6rama!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 22
2 - Sinta(e Bsi)a...................................................................................................................................... 23
1 - Delimitando o c5di6o!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2$
2 - .e/arando instr#)es!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2$
$ - %omes de vari=veis!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2$
& - Coment=rios!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2&
* - Im/rimindo c5di6o html!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2*
3 - *ipos..................................................................................................................................................... 2!
1 - 1i/os .#/ortados!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2-
2 - 1rans;ormao de 1i/os!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2>
+ - ,peradores.......................................................................................................................................... 31
1 - Aritmticos!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! $1
2 - .trin6s!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! $1
$ - Atrib#io!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! $1
& - ?it a bit!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! $1
* - 356icos!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! $2
- - Com/arao!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! $2
7 - @A/resso Condicional!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! $2
> - Incremento e Decremento!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! $2
- - .struturas de Contro#e....................................................................................................................... 33
1 - ?locos!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! $$
2 - Condicionais!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! $$
$ - Re/etio!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! $*
! - /un0es................................................................................................................................................ 3&
1 - De;inio!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$7
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

$
PHP - ASP - JSP
2 - Retorno!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! $7
$ - Ar6#mentos!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$7
& - ConteAto!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$:
* - @sco/o!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$:
& - 1ari2eis e Constantes........................................................................................................................ +1
1 - Declarao!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! &1
2 - 8 modi;icador static!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! &1
$ - Vari=veis vari=veis!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&2
& - Vari=veis enviadas /elo nave6ador!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! &2
* - Vari=veis de Ambiente!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! &$
- - Veri;icando o ti/o de #ma vari=vel!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! &$
7 - Destr#indo #ma vari=vel!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! &&
> - Veri;icando se #ma vari=vel /oss#i #m valor!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&&
: - Constantes!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! &*
3 - C#asses 4 ,b5etos................................................................................................................................ +!
1 - Classes!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! &-
2 - 8bBetos!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! &-
$ - A vari=vel Cthis!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! &-
& - .#bClasses!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! &7
* - Constr#tores!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! &>
9 - Ban)os de 6ados.................................................................................................................................. +9
1 - 2D.E3!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! &:
2 - 2icroso;t .E3 .erverF2..E3G!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*1
$ - (ontes de Dados 8D?C!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*$
17 - Headers.............................................................................................................................................. -!
11 - Coo8ies............................................................................................................................................... -&
1 - Criando!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! *7
2 - Rec#/erando in;orma)es!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! *7
12 - "anipu#ao de Ar9ui2os................................................................................................................. -9
1 - Co/iando!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! *:
2 - Veri;icando tamanho!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! *:
$ - Veri;icando se eAiste!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*:
& - 3im/ando o cache!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! *:
* - Abrindo ar+#ivos!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -<
- - (echando Ar+#ivos!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -1
7 - 3endo ar+#ivos!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -1
> - @screvendo em ar+#ivos!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -2
13 - .mai#.................................................................................................................................................. !3
1+ - PHP 4 a2a....................................................................................................................................... !-
1- - Sessions.............................................................................................................................................. !!
1 - 8 8bBeto .ession !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --
2 - E#ando a sesso comea9!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!--
$ - E#ando a sesso termina9!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!--
& - Hravando e Rec#/erando Vari=veis de .esso !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-7
1! - 'n)#udes:;e9uires.............................................................................................................................. !3
1& - *ratamento de .rros......................................................................................................................... !9
1 - @rros de (#no!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -:
2 " @rros Hlobais!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-:
$ - Die4@Ait!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 7<
ASP
Active Server Pages........................................................................................................................... 71
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

&
PHP - ASP - JSP
1 - 'ntroduo........................................................................................................................................... &2
1 - 8 +#e 9!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 72
2 - 8 +#e /ode ser ;eito9!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 72
$ " Como .#r6i#9!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 72
& " Dia6rama!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 72
2 - Sinta(e bsi)a...................................................................................................................................... &+
1 - Delimitando o c5di6o!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 7&
2 - .e/arando Instr#)es!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 7&
$ - %omes de vari=veis!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 7&
& " Coment=rios!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 7&
* " Im/rimindo c5di6o 0123!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 7&
3 - *ipos..................................................................................................................................................... &!
1 - 1i/os .#/ortados!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 7-
2 " 1rans;ormao de 1i/os!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!77
+ - ,peradores.......................................................................................................................................... &9
1 - Aritmticos!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 7:
2 - .trin6s!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 7:
$ - Atrib#io!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 7:
& - 356icos!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 7:
* - Com/arao!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 7:
- - Incremento e Decremento!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 7:
- - .struturas de Contro#e....................................................................................................................... 37
1 " ?locos!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!><
2 - Condicionais!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ><
$ - Re/etio!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! >1
! - /un0es................................................................................................................................................ 33
1 " De;inio!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! >$
2 " Retorno!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! >$
$ " Ar6#mentos!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! >&
& " ConteAto!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! >*
* " @sco/o!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! >*
& - 1ari2eis e Constantes........................................................................................................................ 3&
1 - Declarao!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! >7
2 - Vari=veis enviadas /elo %ave6ador!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!>7
$ - Veri;icando o 1i/o!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!>>
& - Destr#indo!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!>:
* - De;inindo Constantes!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!:<
3 - C#asses 4 ,b5etos ............................................................................................................................... 91
1 - Classes!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! :1
2 - 8bBetos!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! :1
$ - 8bBetos Im/lIcitos!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!:2
9 - Ban)os de 6ados.................................................................................................................................. 93
1 - 2D.E3!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! :>
2 - 2icroso;t .E3 .erver!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!:>
17 - Coo8ies............................................................................................................................................. 177
1 - Criando!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1<<
2 - Rec#/erando in;orma)es!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1<<
$ - CooJies com chaves !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1<<
11 - "anipu#ao de Ar9ui2os............................................................................................................... 172
1 - Co/iando!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1<2
2 - Veri;icando 1amanho!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1<2
$ - Veri;icando se eAiste!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1<2
& - Abrindo Ar+#ivos!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1<$
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

*
PHP - ASP - JSP
12 - .mai#................................................................................................................................................ 17+
1 - As/2ail!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1<&
2 - CD8%1.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1<*
13 - ASP 4 a2a...................................................................................................................................... 17!
1+ - Sessions............................................................................................................................................ 17&
1 - 8 8bBeto .ession !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1<7
2 - E#ando a sesso comea9!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1<7
$ - E#ando a sesso termina9!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1<7
& - Hravando e Rec#/erando Vari=veis de .esso !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1<>
* - Removendo Vari=veis de .esso !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1<>
- - Acessando toda coleo Contents!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1<:
7 - Acessando a coleo .tatic8bBects!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1<:
1- - 'n)#udes............................................................................................................................................ 111
1! *ratamento de .rros...................................................................................................................... 112
1 - @RR!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!112
2 - A.,@rror!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!11$
1& - <#oba#.asa........................................................................................................................................ 11-
1 - @ventos!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 11*
JSP
Java Server pages............................................................................................................................ 117
1 - 'ntroduo......................................................................................................................................... 113
1 - 8 +#e 9!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 11>
2 - 8 +#e /ode ser ;eito9!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 11>
& " Dia6rama!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 11>
2 - Sinta(e Bsi)a.................................................................................................................................... 127
1 " Delimitando o c5di6o!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 12<
2 " .e/arando Instr#)es!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 12<
$ - %omes de Vari=veis!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 12<
& " Coment=rios!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 121
* " Im/rimindo c5di6o 0123!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 122
3 - *ipos................................................................................................................................................... 123
1 " 1i/os .#/ortados!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!12$
+ - ,peradores........................................................................................................................................ 12&
1 - Aritmticos!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 127
2 - .trin6s!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 127
$ - Atrib#io!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 127
& - 356icos!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 127
* - Com/arao!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 127
- - @A/resso Condicional!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 127
7 - Incremento e Decremento!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 127
- - .struturas de Contro#e..................................................................................................................... 123
1 " ?locos!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!12>
2 - Condicionais!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 12>
$ - Re/etio!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 12:
! - /un0es.............................................................................................................................................. 131
1 - De;inio!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1$1
2 - Retorno!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1$1
2 - Ar6#mentos!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1$1
$ - @sco/o!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1$1
& - 1ari2eis e Constantes...................................................................................................................... 132
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

-
PHP - ASP - JSP
1 - Declarao!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1$2
2 - Vari=veis enviadas /elo %ave6ador!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1$2
$ - Vari=veis de Ambiente!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1$$
& - De;inindo Constantes!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1$$
3 - C#asses e ,b5etos............................................................................................................................... 13+
1 " Classes!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1$&
2 - this!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1$-
$ " .#bClasses!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1$7
- - Constr#tores!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1$7
9 - Ban)os de 6ados................................................................................................................................ 139
1 - 2D.E3!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1$:
2 - 8D?C!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1$:
17 Headers............................................................................................................................................ 1+1
11 - Coo8ies............................................................................................................................................. 1+2
1 " Criando!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1&2
2 - Rec#/erando in;orma)es!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1&$
12 - "anipu#ao de Ar9ui2os............................................................................................................... 1+!
1 " Co/iando!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1&-
2 - Veri;icando 1amanho!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1&-
$ - Veri;icando se eAiste!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1&-
& - Abrindo Ar+#ivos!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1&-
13 .mai#................................................................................................................................................ 1+3
1+ - SP 4 a2a=Ser2#ets e Beans>......................................................................................................... 1+9
1 " A Classe!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1&:
2 " 8 K.,!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1*<
$ " 8 0123!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1*<
1- - Sessions............................................................................................................................................ 1-1
1 - 2todos das .ess)es!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1*1
2 - Como invalidar a .esso!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1*2
1! 'n)#udes........................................................................................................................................... 1-3
1& *ratamento de .rros...................................................................................................................... 1-+
1 " Diretiva ,a6e!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1*&
2 - @Ace/tions!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1*&
Aplicao de Exemplo..................................................................................................................... 157
Agenda..................................................................................................................................................... 1-3
1 " Ar+#ivo Com#m!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1*>
2 - 2en#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1*>
$ " (#n)es!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1*:
& - IndeA!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1-1
* - 3o6in!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1-&
- - 3istar!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1--
7 - Inserir!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 172
> " Inserir A6enda!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 17-
: - ?#scar!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 17:
1< - .earch!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1>2
11 - @ditar!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1>>
12 " At#alizar A6enda!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1:&
1$ - Detalhes!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1:>
1& - @Acl#ir!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!2<&
Apndices......................................................................................................................................... !8
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

7
PHP - ASP - JSP
1 - "anipu#ao de Strings.................................................................................................................... 279
1 " ,0,!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2<:
2 " A.,!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 21$
$ - K.,!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 21*
2 - "anipu#ao de ?@meros................................................................................................................. 213
1 " ,0,!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 21>
2 " A.,!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 222
$ " K.,!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!22$
3 - "anipu#ao de 6ata e Hora............................................................................................................ 22+
1 " ,0,!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 22&
2 " A.,!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 22&
+ - "anipu#ao de ArraAs.................................................................................................................... 22!
1 " ,0,!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 22-
- - *emp#ates........................................................................................................................................... 237
! - 'nsta#ao dos Ambientes................................................................................................................. 23-
1 - Ambiente Kava4,0,!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2$*
2 - Ambiente ,0, no WindoLs!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2$>
$ - Ambiente ,0, no 3in#A!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!2&2
& - 'nsta#ao e ConBigurao
do Ambiente ,6BC............................................................................................................................... 2+-
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

>
PHP - ASP - JSP
Apresentao
O livro traa o panorama das principais linguagens de
programao usadas para oferecer dinamismo de informaes nos
sites da web atuais.
As tecnologias PHP, ASP e JSP possuem cada uma, com sua
particularidade, suas vantagens, desvantagens e ambientes
especficos.
Criada durante o outono de 1994 por Rasmus Lerdorf, o PHP
(Personal Home Pages) uma linguagem de script Open Source de uso
geral, utilizada especialmente para o desenvolvimento de
aplicaes Web com cdigo embutido dentro do prprio HTML, alm de
rodar em plataformas como Windows e Linux e com sintaxe muito
semelhante linguagem C.
O ASP(Microsoft
TM
Active Server Pages) uma linguagem de
script usada para criar aplicaes dinmicas na web em Ambientes
Microsoft e podendo, tambm ser embutido em meio ao prprio HTML.
O JSP(Java Server Pages), a linguagem de script da Sun
Microsystems, que permite o rpido desenvolvimento de sites
dinmicos. O JSP faz parte da Famlia Java
TM
, e com isso,
independente de plataforma e facilita a separao das camadas de
design e programao, sendo tambm semelhante linguagem C,
porm possui vrias caractersticas diferentes do PHP.
Aos iniciantes este livro oferece subsdios para a
aprendizagem clara e objetiva das trs tecnologias dominantes no
mercado, bem como escolha de sua linguagem preferida.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

:
PHP - ASP - JSP
Aos programadores mais experientes o livro apresenta uma
tima fonte de referncia com riqueza de detalhes e sugestes de
bons hbitos de programao.
Com estes temas abordados, o livro pretende atingir seu
objetivo maior, que se tornar veculo de convergncia dos
recursos possveis com as tecnologias PHP, ASP e JSP, alm de ser
ferramenta para que novos recursos possam ser criados.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1<
PHP - ASP - JSP
1 - Bons Hbitos de Programao
Independente da linguagem que utilizar, muito importante
que utilizemos tcnicas ou hbitos de programao que torne nosso
cdigo-fonte fcil de ser lido e entendido por outra pessoa e por
ns mesmos.
Os principais hbitos que cultivo em meus cdigos so:
inicializao de variveis, documentao atravs de comentrios no
prprio cdigo-fonte, nomes claros, uso intensivo de funes e
classes, arquivos com poucas linhas, separao de HTML e cdigo e
ter sempre o Diagrama das Bases de Dados.
1 - ni!ia"i#ao de $aria%&is
Mesmo em linguagens como PHP e ASP, em que no obrigatrio
a declarao de variveis, deve-se fazer uso deste hbito para que
possamos ter um melhor controle dos tipos de dados que esto
sendo armazenados nas variveis e tambm para debugar os scripts.
' ( )o!umentao
Para resolver certos problemas, as vezes criamos algoritmos
to complexos que nem ns mesmos os entenderamos depois de algum
tempo.
Nomes de variveis, tambm so um bom motivo para
documentao dos cdigos, imagine daqui um ano voc lembrar pra
que serve uma varivel chamada xd45 em um script que voc
precisa dar manuteno urgente.
Para esses problemas eu defendo a documentao em todo
cdigo, que para nossa alegria tanto o PHP, quanto o ASP ou o JSP
possuem comandos para inserir esses comentrios no cdigo.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

11
PHP - ASP - JSP
A documentao se divide em trs partes: a documentao de
identificao do script, a identificao de variveis, constantes
e funes, e identificao de aes.
No caso de classes(PHP, ASP e JSP) aconselhvel que logo
abaixo a identificao de script seja documentado como usar seus
recursos desta.
1 ( dentifi!ao do S!ript
No inicio do script, nas primeiras linhas importante
identificar o script com o nome do desenvolvedor, funo do
script, data de criao e atualizao.
Em PHP seria assim:
<?
/*
Funo: Montar a pgina inicial do site
Desenvolvedor: Cerli Antnio da Rocha
Data: 30/05/2003
Atualizao: 30/06/2003
*/
?>
Em ASP seria assim:
<%
`Funo: Montar a pgina inicial do site
`Desenvolvedor: Cerli Antnio da Rocha
`Data: 30/05/2003
`Atualizao: 30/06/2003
%>
Em JSP seria assim:
<%
/*
Funo: Montar a pgina inicial do site
Desenvolvedor: Cerli Antnio da Rocha
Data: 30/05/2003
Atualizao: 30/06/2003
*/
%>
' ( dentifi!ao de $ari%eis, Constantes e *un+es
Ao declarar as variveis, constantes e funes aconselhvel
que seja descrito onde ser usada.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

12
PHP - ASP - JSP
Em PHP seria assim:
<?
$codempresa = ; //Armazena o cdigo da empresa
function imprime( $nome ) { //Retorna o nome recebido
return $nome;
}
?>
Em ASP seria assim:
<%
Dim codempresa = `Armazena o cdigo da empresa
function imprime( nome ) `Retorna o nome recebido
imprime = nome
end function
%>
EM JSP seria assim:
<%
String codempresa = ; //Armazena o cdigo da empresa
public String imprime( String nome ) { //Retorna o nome recebido
return nome;
}
%>
, ( dentifi!ao de A+es
A identificao de aes visa deixar claro aqueles algoritmos
mais complexos.
Em PHP seria assim:
<?
$contador = 0; //Usada para controlar o loop
while ( $contador <= 10 ) { //Loop at 10
if ( ( $contador % 2 ) == 0 ) { //Testa se o contador par
print nmero par;
} else {
print nmero impar;
}
$contador++; //Incrementa o contador
}
?>
Em ASP seria assim:
<%
contador = 0 `Usada para controlar o loop
while ( contador <= 10 ) `Loop at 10
if ( ( contador MOD 2 ) = 0 ) `Testa se o contador par
response.write(nmero par)
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1$
PHP - ASP - JSP
else
response.write(nmero impar)
end if
contador = contador + 1 `Incrementa o contador
wend
%>
Em JSP Seria assim:
<%
int contador = 0; //Usada para controlar o loop
while ( contador <= 10 ) { //Loop at 10
if ( ( contador % 2 ) == 0 ) { //Testa se o contador par
out.println(nmero par);
} else {
out.printl(nmero impar);
}
contador++; //Incrementa o contador
}
$>
, ( -omes C"aros
O prprio nome de uma varivel, constante, funo ou classe
quando definido de forma clara j por si s uma documentao.
Os nomes de variveis e constantes devem ter nomes que
expressem o tipo de informao ou a funo a que se destinam.
Uma varivel para guardar o nome de uma pessoa, por exemplo,
deve se chamar nome ou pessoa e no . ou /0 J vi variveis e
funes com nomes assim e at hoje no descobri sua utilidade.
1 ( 2so de *un+es e C"asses
Use sempre funes e classes para cdigos que necessitem ser
repetidos mais de uma vez, alm de tornar o cdigo mais limpo e
organizado torna mais fcil sua reutilizao.
3 ( Ar4ui%os Pe4uenos
J me deparei varias vezes com pginas que fazem submit de
formulrios para dentro de s mesmas, sendo que as prprias
processam as informaes e submetem novamente para si mesmas e
fazem outro processamento ainda.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1&
PHP - ASP - JSP
Isso gera um cdigo confuso e de baixa performance, o ideal e
criar arquivos distintos para utilizaes distintas, ou seja, uma
pgina para o formulrio de login e uma outra pgina para
autenticar o login e fazer o devido redirecionamento.
5 ( Separao H67L8C9digo
Uma das vantagens que tanto o PHP, quanto o ASP ou o JSP
apresenta justamente a possibilidade de embutir scripts no HTML,
mas eu considero isso uma desvantagem, pois tambm gera um cdigo
confuso e de difcil manuteno.
: ( )iagramas
Embora no estejamos abordando aqui, diretamente, o uso de
bancos de dados, vale citar que sempre que for us-los
recomendvel desenhar o diagrama das tabelas e seus
relacionamentos.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1*
PHP - ASP - JSP
' ( Comparao
PHP(ASP-;SP
As principais diferenas entre as linguagens que abordaremos,
veremos na tabela a seguir:
PHP ASP ;SP
7u"ti-P"ataformas Sim No,
somente
windows
Sim
<pen Sour!e Sim No Sim
7u"tip"os Ser%idores =eb Sim No Sim
Preo Free Free Free
Habi"idade para separar a gerao do
!onte>do e da apresentao0
Sim Sim Sim
Linguagens de programao suportadas PHP VBScript,
JScript
Java,
JavaScript
?erao din@mi!a de H67L Sim Sim Sim
As!a"abi"idade desde pe4uenas at&
grandes ap"i!a+es =eb0
Sim Sim Sim
Compatibi"idade !om Ban!o de )ados
"egados
Sim Sim Sim
Capa# de integrar !om di%ersas fontes
de dados
Sim Sim, atravs
de ODBC
Sim
atravs de
ODBC e
JDBC
Componentes COM, Beans e
outros
COM Beans ou
Tags
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1-
PHP - ASP - JSP
, - A 7e"Bor Linguagem
Muitos perguntam sobre a melhor linguagem, a mais rpida, a
mais eficiente, a que possui os maiores e melhores recursos
disponveis.
Penso que a melhor linguagem a aquela que melhor atenda a
sua necessidade e o importante dominar o desenvolvimento de bons
algoritmos, pois, com isso no importar a linguagem que voc
poder desenvolver suas aplicaes e atingir seus objetivos.
No mundo de hoje, so poucos os que podem se dar ao luxo de
escolher a linguagem em que trabalharo.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

17
PHP - ASP - JSP
PHP
Persona" Home pages
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1>
PHP - ASP - JSP
1 - ntroduo
1 - < 4ue &C
PHP uma linguagem que permite criar sites 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.
O que diferencia PHP de um script CGI escrito em C ou Perl
que o cdigo PHP pode ficar embutido no prprio HTML, enquanto no
outro caso necessrio que o script CGI obrigatoriamente gere
todo o cdigo HTML, ou leia de um outro arquivo.
' - < 4ue pode ser feitoC
Basicamente, qualquer coisa que pode ser feita por algum
programa CGI pode ser feita tambm com PHP, como coletar dados de
um formulrio, gerar pginas dinamicamente ou enviar e receber
cookies.
PHP tambm tem como uma das caractersticas mais importantes
o suporte a um grande nmero de bancos de dados, como dBase,
Interbase, mSQL, mySQL, Oracle, Sybase, PostgreSQL, MSSQL, Fontes
ODBC e vrios outros.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1:
PHP - ASP - JSP
Alm disso, PHP tem suporte a outros servios atravs de
protocolos como IMAP, SNMP, NNTP, POP3 e, logicamente, HTTP. Ainda
possvel abrir sockets e interagir com outros protocolos e
tambm criar arquivos de diferentes formatos como GIF, JPG, FLASH,
etc.
, - Como surgiuC
A linguagem PHP foi concebida durante o outono de 1994 por
Rasmus Lerdorf. As primeiras verses no foram disponibilizadas,
tendo sido utilizadas em sua home-page apenas para que ele pudesse
ter informaes sobre as visitas que estavam sendo feitas.
A primeira verso utilizada por outras pessoas foi
disponibilizada em 1995, e ficou conhecida como Personal Home
Page Tools(ferramentas para pgina pessoal). Esta ferramenta era
composta por um sistema bastante simples que interpretava algumas
macros e alguns utilitrios que rodavam por trs das homepages
um livro de visitas, um contador e algumas outras coisas.
Em meados de 1995 o interpretador foi reescrito, e ganhou o
nome de PHP8*, o FI veio de um outro pacote escrito por Rasmus
que interpretava dados de formulrios HTML (*orm nterpreter). Ele
combinou os scripts do pacote Personal Home Page Tools com o FI e
adicionou suporte a mSQL, nascendo assim o PHP/FI, que cresceu
bastante, e as pessoas passaram a contribuir com o projeto.
Estima-se que em 1996 PHP/FI estava sendo usado por cerca de
15.000 sites pelo mundo, e em meados de 1997 esse nmero subiu
para mais de 50.000. Nessa poca houve uma mudana no
desenvolvimento do PHP. Ele deixou de ser um projeto de Rasmus com
contribuies de outras pessoas para ter uma equipe de
desenvolvimento mais organizada.
O interpretador foi reescrito por Dee% SurasEi e Andi
?utmans, e esse novo interpretador foi a base para a verso 3.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

2<
PHP - ASP - JSP
O lanamento do PHP4, ocorrido em 22/05/2000, trouxe muitas
novidades aos programadores de PHP. Uma das principais foi o
suporte a sesses, bastante til pra identificar o cliente que
solicitou determinada informao. Alm das mudanas referentes a
sintaxe e novos recursos de programao, o PHP4 trouxe como
novidade um otimizador chamado Zend, que permite a execuo muito
mais rpida de scripts PHP.
A empresa que produz o Zend, A Zend Technologies, promete o
lanamento de um compilador de PHP. Cdigos compilados sero
executados mais rapidamente, alm de proteger o fonte da
aplicao.
Atualmente o PHP est na verso 4.3.3, mas a verso 5.0.0 Beta
1 j foi disponibilizada no site oficial para testes, e promete
trazer vrios avanos em relao a Orientao a Objetos e
tratamento de erros.
As principais novidades, em relao ao novo PHP 5, seriam:
o O PHP 5 inclui a nova Zend Engine 2. Maiores detalhes
sobre a Zend Engine visite o endereo abaixo:
http://www.php.net/zend-engine-2.php
o O suporte a XML foi completamente reestruturado, todas
extenses so agora baseadas na excelente libxml2, que
voc pode saber mais a respeito em:
http://www.xmlsoft.org/
o O SQLite agora nativo no PHP 5. Maiores detalhes voc
encontra em:
http://www.hwaci.com/sw/sqlite/
o O tratamento de Streams foi melhorado extremamente,
incluindo a habilidade de acesso a sockets de baixo
nvel em operaes de Stream.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

21
PHP - ASP - JSP
Para maiores detalhes e novidades sobre PHP visite sempre o
site oficial do PHP:
http://www.php.net
1 ( )iagrama
Uma requisio para o PHP funciona assim:
1. O BroFser faz uma requisio ao Ser%idor =eb;
2. O Ser%idor =eb detecta que trata-se de uma pgina PHP e
encaminha a requisio ao interpretador PHP;
3. O interpretador PHP faz os processamentos necessrios,
inclusive acessos a bancos de dados e outros recursos e
devolve o HTML para o Ser%idor =eb;
4. O Ser%idor =eb devolve O HTML ao BroFser.
No diagrama abaixo voc visualiza estas etapas:
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

22
PHP - ASP - JSP
' - Sinta.e Bsi!a
1 - )e"imitando o !9digo
O cdigo PHP fica embutido no prprio HTML. O interpretador
identifica quando um cdigo PHP pelas seguintes tags:
<?php
comandos
?>
ou
<script language=php>
comandos
</script>
ou
<?
comandos
?>
ou
<%
comandos
%>
O tipo de tags mais utilizado o terceiro, que consiste em
uma abreviao do primeiro. O ltimo tipo serve para facilitar o
uso por programadores acostumados sintaxe de ASP. Para utiliz-
lo necessrio habilit-lo atravs do arquivo de configurao
php.ini.
' - Separando instru+es
Entre cada instruo em PHP preciso utilizar o ponto-e-
vrgula, assim como em C, Perl e outras linguagens mais
conhecidas. Na ltima instruo do bloco de script no
necessrio o uso do ponto-e-vrgula, mas por questes estticas
recomenda-se o uso sempre.
, - -omes de %ari%eis
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

2$
PHP - ASP - JSP
Toda varivel em PHP tem seu nome composto pelo caracter $ e
uma string, que deve iniciar por uma letra ou o caracter _.
PHP & !ase sensiti%e, ou seja, as variveis $teste e $TESTE
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.
Alm disso, existem algumas palavras reservadas como break e
class, por exemplo, que no podem ser usadas para nomear
variveis.
1 - Comentrios
Os comentrios so pores de informaes que podemos
adicionar ao cdigo para fins de documentao, sendo que o
interpretador os ignorar. Existem dois tipos de comentrios em
PHP:
Comentrios de uma "inBaG
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 ( // ).
<?
print teste; #isto um teste
print teste; //este teste similar ao anterior
?>
Comentrios de mais de uma "inBaG
Tem como delimitadores os caracteres /* para o incio do
bloco e */ para o final do comentrio. Se o delimitador de final
de cdigo PHP ( ?> ) estiver dentro de um comentrio, no ser
reconhecido pelo interpretador.
<?
print teste; /* Isto um comentrio com mais
de uma linha */
?>
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

2&
PHP - ASP - JSP
3 - mprimindo !9digo Btm"
Um script php geralmente tem como resultado uma pgina html,
ou algum outro texto. Para gerar esse resultado, deve ser
utilizada uma das funes de impresso, echo e print.
Para utiliz-las deve-se utilizar um dos seguintes formatos:
<?
print(texto);
?>
ou
<?
print texto;
?>
ou
<?
echo (texto1, texto2, ... );
?>
ou
<?
echo texto;
?>
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

2*
PHP - ASP - JSP
, - 6ipos
1 - 6ipos Suportados
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.
nteiros Hinteger ou "ongI
Uma varivel pode conter os seguintes valores inteiros.
$teste = 1234; # inteiro positivo na base decimal
$teste = -234; # inteiro negativo na base decimal
$teste = 0234; # inteiro na base octal-simbolizado pelo 0
# equivale a 156 decimal
$teste = 0x34; # inteiro na base hexadecimal(simbolizado
# pelo 0x) - equivale a 52 decimal.
->meros em Ponto *"utuante Hdoub"e ou f"oatI
Uma varivel pode conter os seguintes valores de ponto
flutuante:
$teste = 1.234;
$teste = 23e4; # equivale a 230.000
Strings
As Strings armazenam uma sequencia de Chars e podem ser
atribudas de duas maneiras:
Aspas Simp"es H J I
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

2-
PHP - ASP - JSP
Desta maneira, o valor da varivel ser exatamente o texto
contido entre as aspas (com exceo de \\ e \' - ver tabela
abaixo)
Aspas )up"as H K I
Desta maneira, qualquer varivel ou caracter de escape ser
expandido antes de ser atribudo.
<?
$teste = "PHP";
$teste = '---$teste--\n';
print "$teste";
?>
A sada desse script ser K---Lteste--MnK.
<?
$teste = "PHP";
$teste = "---$teste---\n";
print "$teste";
?>
A sada desse script ser K---PHP--K (com uma quebra de linha
no final).
Arra/s
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.
<?
$cor[1] = vermelho;
$cor[2] = verde;
$cor[3] = azul;
$cor[teste] = 1;
?>
Equivalentemente, pode-se escrever:
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

27
PHP - ASP - JSP
<?
$cor = array(1 => vermelho, 2 => verde, 3 => azul, 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. Conforme o 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 ser inteiros, a partir do zero.
<bNetos
Um objeto pode ser inicializado utilizando o comando new para
instanciar uma classe para uma varivel.
class teste {
function nada() {
print nada;
}
}
$teste = new teste();
$teste->nada();
Boo"eanos
O PHP no possui um tipo booleano, mas capaz de avaliar
expresses e retornar true ou false, atravs do tipo integer:
usado o valor 0 (zero) para representar o estado false, e qualquer
valor diferente de zero (geralmente 1) para representar o estado
true.
' - 6ransformao de 6ipos
Existem trs maneiras para fazer a transformao de tipos em
PHP.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

2>
PHP - ASP - JSP
Coer+es
Quando ocorrem determinadas operaes (adio, por exemplo)
entre dois valores de tipos diferentes, o interpretador PHP
converte o valor de um deles automaticamente (coero).
interessante notar que se o operando for uma varivel, seu
valor no ser alterado.
O tipo para o qual os valores dos operandos sero convertidos
determinado da seguinte forma: Se um dos operandos for float, o
outro ser convertido para float, seno, se um deles for integer, o
outro ser convertido para integer.
$teste = 1; // $teste a string 1
$teste = $teste + 1; // $teste o integer 2
$teste = $teste + 3.7; // $teste o double 5.7
$teste = 1 + 1.5 // $teste o double 2.5
Como podemos notar, o PHP converte string para integer ou
double mantendo o valor. O sistema utilizado pelo PHP para
converter de strings para nmeros o seguinte:
1. analisado o incio da string. Se contiver um nmero,
ele ser avaliado. Seno, o valor ser 0 (zero);
2. O nmero pode conter um sinal no incio (+ ou -);
3. Se a string contiver um ponto em sua parte numrica a ser
analisada, ele ser considerado, e o valor obtido ser
double;
4. 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;
$teste = 1 + 10.5; // $teste == 11.5
$teste = 1 + -1.3e3; // $teste == -1299
$teste = 1 + teste10.5; // $teste == 1
$teste = 1 + 10testes; // $teste == 11
$teste = 1 + " 10testes"; // $teste == 11
$teste = 1 + "+ 10testes"; // $teste == 1
6ransformao e.p"O!ita de tipos
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

2:
PHP - ASP - JSP
A sintaxe do typecast de PHP semelhante ao da linguagem C,
basta escrever o tipo entre parenteses antes do valor
$teste = 15; // $teste integer (15)
$teste = (double)$teste // $teste double (15.0)
$teste = 3.9 // $teste double (3.9)
$teste = (int)$teste // $teste integer (3)
// o valor decimal truncado
Os tipos de casting(converses) permitidos so:
(int), (integer) cast para integer;
(real), (double), (float) cast para float;
(string) cast para string;
(array) cast para array;
(object) cast para objeto.
Com a funo sett/pe
A funo settype converte uma varivel para o tipo
especificado, que pode ser integer, double, string, array
ou object.
$teste = 15; // $teste integer
settype($teste,double) // $teste double
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

$<
PHP - ASP - JSP
1 - <peradores
1 - Aritm&ti!os
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.
+ adio
- subtrao
* multiplicao
/ diviso
% mdulo
' - Strings
S h um operador exclusivo para strings:
. concatenao
, - Atribuio
Existe um operador bsico de atribuio e diversos derivados.
Sempre retornam o valor atribudo. No caso dos operadores
derivados de atribuio, a operao feita entre os dois
operandos, sendo atribudo o resultado para o primeiro. A
atribuio sempre por valor, e no por referncia.
= atribuio simples
+= atribuio com adio
-= atribuio com subtrao
*= atribuio com multiplicao
/= atribuio com diviso
%= atribuio com mdulo
.= atribuio com concatenao
1 - Bit a bit
Comparam dois nmeros bit a bit.
& e lgico
| ou lgico
^ ou exclusivo
~ no (inverso)
<< shift left
>> shift right
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

$1
PHP - ASP - JSP
3 - L9gi!os
Utilizados para inteiros representando valores booleanos
and e lgico
or ou lgico
xor 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.
5 - Comparao
As comparaes so feitas entre os valores contidos nas
variveis, e no as referncias. Sempre retornam um valor
booleano.
== igual a
!= diferente de
< Menor que
> maior que
<= Menor ou igual a
>= maior ou igual a
: - A.presso Condi!iona"
Existe um operador para seleo que ternrio. Funciona como
se fosse um *:
(expressao1)?(expressao2):(expressao3)
O interpretador PHP avalia a primeira expresso. Se ela for
verdadeira, a expresso retorna o valor de expresso2. Seno,
retorna o valor de expresso3.
P - n!remento e )e!remento
++ 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.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

$2
PHP - ASP - JSP
3 - Astruturas de Contro"e
1 - B"o!os
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, os 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.
if ( $x == $y )
comando1;
comando2;
Para que comando2 esteja relacionado ao if preciso
delimitar onde comea e onde termina o bloco:
if ( $x == $y ){
comando1;
comando2;
}
' - Condi!ionais
*
O mais comum dos comandos condicionais o if. Ele testa a
condio e executa o comando indicado se o resultado for true
(valor diferente de zero). A sintaxe mais usada :
if ( expresso )
comando;
Para incluir mais de um comando no if, preciso utilizar um
bloco, demarcado por chaves.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

$$
PHP - ASP - JSP
O e"se um complemento opcional para o if. Se utilizado, o
comando ser executado se a expresso retornar o valor false
(zero). A sintaxe mais usada :
if (expresso)
comando;
else
comando;
S=6CH
O comando switch atua de maneira semelhante a uma srie de
comandos if na mesma expresso. O programador pode querer comparar
uma varivel com diversos valores, e executar um cdigo diferente
a depender de qual valor igual ao da varivel.
Quando isso for necessrio, deve-se usar o comando sFit!B. O
exemplo seguinte mostra dois trechos de cdigo que fazem a mesma
coisa, sendo que o primeiro utiliza uma srie de ifQs e o segundo
utiliza sFit!B:
if ( $i == 0 )
print i igual a zero;
elseif ( $i == 1 )
print i igual a um;
elseif ( $i == 2 )
print i igual a dois;
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 sFit!B para no
cometer enganos.
O comando sFit!B 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.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

$&
PHP - ASP - JSP
Por isso usa-se o comando breaE, quebrando o fluxo e fazendo
com que o cdigo seja executado da maneira desejada. Veremos mais
sobre o breaE mais adiante.
, - Repetio
=HLA
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.
FBi"e ( condio )
comando;
)<
O lao do00FBi"e funciona de maneira bastante semelhante ao
FBi"e, com a simples diferena que a expresso testada ao final
do bloco de comandos.
do {
commando;
comando;
} FBi"e ( condio );
*<R
O tipo de lao mais complexo o for. Para os que programam em
C, C++ ou Java, a assimilao do funcionamento do for natural.
A sintaxe mais usada :
for ( inicializao; condio; incremento)
comando;
Os trs parmetros que ficam entre parnteses tm as
seguintes finalidades:
ni!ia"i#ao - Comando ou sequencia de comandos a serem
realizados antes do inicio do lao. Serve para inicializar as
variveis.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

$*
PHP - ASP - JSP
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.
n!remento - Comando executado ao final de cada execuo do
lao.
Quebra de f"u.o
Em todos os loops (for, while e do), o loop termina quando a
condio que voc est testando atingida. Porm, em alguma
situao, voc desejar sair do loop antes do seu trmino normal.
Para isso, voc pode usar as palavras chaves break e continue.
BreaE
O comando break pode ser utilizado em laos de do, for e FBi"e,
alm do uso j visto no comando sFit!B. Ao encontrar um breaE
dentro de um desses laos, o interpretador PHP para imediatamente
a execuo do lao, seguindo normalmente o fluxo do script.
FBi"e ( $x > 0 ) {
if ( $x == 20 ) {
print erro! x = 20;
break;
}
}
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.
Conforme o exemplo:
for ( $i = 0; $i < 100; $i++ ) {
if ( $i % 2 ) continue;
print $i ;
}
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

$-
PHP - ASP - JSP
5 - *un+es
1 - )efinio
A sintaxe bsica para definio de uma funo :
function nomeRdaRfuno(arg1, arg2, arg3) {
Comandos;
return valor;
}
' - 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
"istas ou arra/s.
, - Argumentos
possvel passar argumentos ou parmetros 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.
function imprime($texto){
print $texto;
}
imprime(teste de funes);
Passagem de par@metros por referSn!ia
Normalmente, a passagem de parmetros em PHP feita por
valor, ou seja, se o contedo da varivel for alterado, essa
alterao no afeta a varivel original.
function soma3($numero) {
$numero += 5;
}
$a = 3;
soma5($a); //$a continua valendo 3
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

$7
PHP - ASP - JSP
No exemplo acima, como a passagem de parmetros por valor,
a funo mais3 intil, j que aps a execuo sair da funo o
valor anterior da varivel recuperado.
Se a passagem de valor fosse feita por referncia, a varivel
La teria 8 como valor. O que ocorre normalmente que ao ser
chamada uma funo, o interpretador salva todo o escopo atual, ou
seja, os contedos das variveis. Se uma dessas variveis for
passada como parmetro, seu contedo fica preservado, pois a
funo ir trabalhar na verdade com uma cpia da varivel.
Se a passagem de parmetros for feita por referncia, toda
alterao que a funo realizar no valor passado como parmetro
afetar a varivel que o contm.
H duas maneiras de fazer com que uma funo tenha parmetros
passados por referncia:
1. Indicando isso na declarao da funo, o que faz com
que a passagem de parmetros sempre seja assim;
2. Na prpria chamada da funo.
Nos dois casos utiliza-se o modificador &:
function soma3(&$num1, $num2) {
$num1 += 5;
$num2 += 5;
}
$a = $b = 1;
soma5($a, $b); /* Neste caso, s $num1 ter seu valor alterado, pois a passagem
por referncia est definida na declarao da funo. */
soma5($a, &$b); /* Aqui as duas variveis tero seus valores alterados. */
Argumentos !om %a"ores padro Hdefau"tI
Em PHP possvel ter valores default para argumentos de
funes, ou seja, valores que sero assumidos em caso de nenhum
valor ser passado no lugar do argumento.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

$>
PHP - ASP - JSP
Quando algum parmetro declarado desta maneira, a passagem
do mesmo na chamada da funo torna-se opcional.
function teste( $teste = testando ) {
print $teste;
}
teste(); // imprime testando
teste(outro teste); // imprime outro teste
Vale lembrar que quando a funo tem mais de um parmetro, o
que tem valor default deve ser declarado por ltimo:
function teste( $figura = circulo, $cor ) {
print a figura um $figura de cor $cor;
}
teste(azul);
/* A funo no vai funcionar da maneira esperada, ocorrendo um erro no
interpretador. A declarao correta seria: */
function teste2( $cor, $figura = circulo ) {
print a figura um $figura de cor $cor;
}
teste2(azul);
/* Aqui a funo funciona da maneira esperada, ou seja, imprime o texto: a
figura um crculo de cor azul */
1 - Conte.to
O contexto o conjunto de variveis e seus respectivos
valores num determinado ponto do programa. Na chamada de uma
funo, ao iniciar a execuo do bloco que contm a implementao
da mesma criado um novo contexto, contendo as variveis
declaradas dentro do bloco, ou seja, todas as variveis utilizadas
dentro daquele bloco sero eliminadas ao trmino da execuo da
funo.
3 - As!opo
O escopo de uma varivel em PHP define a poro do programa
onde ela pode ser utilizada. Na maioria dos casos todas as
variveis tm escopo global. Entretanto, em funes definidas pelo
usurio um escopo local criado. Uma varivel de escopo global
no pode ser utilizada no interior de uma funo sem que haja uma
declarao explicita.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

$:
PHP - ASP - JSP
$teste = Testando;
function teste() {
print $teste;
}
teste();
O trecho acima no produzir sada alguma, pois a varivel
$teste de escopo global, e no pode ser referida num escopo
local, mesmo que no haja outra com nome igual que cubra a sua
visibilidade.
Para que o script funcione da forma desejada, a varivel
global a ser utilizada deve ser declarada.
$teste = Testando;
function teste() {
global $teste;
print $teste;
}
teste();
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:
$teste = "Testando";
function teste() {
print $GLOBALS["teste"]; // imprime $teste
print $teste; // no imprime nada
}
teste();
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

&<
PHP - ASP - JSP
: - $ari%eis e Constantes
1 - )e!"arao
Como a tipagem em PHP dinmica, as variveis no precisam
ser declaradas. Uma varivel inicializada no momento em que
feita a primeira atribuio. O tipo da varivel ser definido de
acordo com o valor atribudo.
' - < modifi!ador stati!
Uma varivel esttica visvel num escopo local, mas ela
inicializada apenas uma vez e seu valor no perdido quando a
execuo do script deixa esse escopo:
function teste() {
$a = 0;
print $a;
$a++;
}
O ltimo comando da funo intil, pois assim que for
encerrada a execuo da funo a varivel La perde seu valor. Mas,
no exemplo seguinte, a cada chamada da funo a varivel $a ter
seu valor impresso e ser incrementada:
function teste() {
static $a = 0;
print $a;
$a++;
}
O modificador stati! muito utilizado em funes recursivas,
j que o valor de algumas variveis precisa ser mantido. Ele
funciona da seguinte forma: O valor das variveis declaradas como
estticas mantido ao terminar a execuo da funo. Na prxima
execuo da funo, ao encontrar novamente a declarao com
stati!, o valor da varivel recuperado.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

&1
PHP - ASP - JSP
Resumindo, uma varivel declarada como stati! tem o mesmo
tempo de vida que uma varivel global, porm sua visibilidade
restrita ao escopo local em que foi declarada e s recuperada
aps a declarao.
, - $ari%eis %ari%eis
O PHP tem um recurso conhecido como variveis variveis, que
consiste em variveis cujos nomes tambm so variveis. Sua
utilizao feita atravs do duplo cifro ($$).
<?php
$a = "hello";
$$a = "world";
print $hello; //Imprime world
?>
1 - $ari%eis en%iadas pe"o na%egador
Para interagir com a navegao do usurio, necessrio que o
PHP possa enviar e receber informaes para o browser.
A maneira de enviar informaes atravs de um comando de
impresso, como o print. Para receber informaes vindas do
navegador, atravs de um link ou um formulrio html, o PHP utiliza
as informaes enviadas atravs da URL.
Se seu script PHP est localizado em
TBttpG88"o!a"Bost8teste0pBpU e voc o chama com a url
BttpG88"o!a"Bost8teste0pBpCnomeVpau"oU, automaticamente o PHP criar
uma varivel com o nome Lnome contendo a string Tpau"oU.
Note que o contedo da varivel est no formato ur"en!ode. Os
formulrios html j enviam informaes automaticamente nesse
formato, e o PHP decodifica sem necessitar de tratamento.
2RLen!ode
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

&2
PHP - ASP - JSP
O formato urlencode obtido substituindo os espaos pelo
caracter TWU e todos os outros caracteres no alfanumricos (com
exceo de _) pelo caracter TXU seguido do cdigo ASCII em
hexadecimal.
Por exemplo: o texto Testando 1 2 3 !! em urlencode fica
Testando+1+2+3+%21%21
O PHP possui duas funes para tratar informaes em
urlencode:
ur"en!ode($texto);
ou
ur"de!ode($texto);
Essas funes servem respectivamente para codificar ou
decodificar um texto passado como argumento.
3 - $ari%eis de Ambiente
O PHP possui diversas variveis de ambiente, como a LPHPRSAL*,
por exemplo, que contm o nome e o patB do prprio arquivo.
Algumas outras variaveis contm informaes sobre o browser
do usurio, o servidor http, a verso do PHP e diversas outras
informaes.
Para obter uma listagem de todas as variveis e constantes de
ambiente e seus respectivos contedos, deve-se utilizar a funo
pBpinfoHI:
<?
phpinfo();
?>
5 - $erifi!ando o tipo de uma %ari%e"
Por causa da tipagem dinmica utilizada pelo PHP, nem sempre
ser possvel saber qual o tipo de uma varivel, em determinado
instante, se no contar com a ajuda de algumas funes que ajudem
a verificar isso. A verificao pode ser feita de duas maneiras:
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

&$
PHP - ASP - JSP
*uno 4ue retorna o tipo da %ari%e"
A funo para retorna o tipo da varivel chama-se gett/pe:
gett/pe( $variavel );
A funo gett/pe pode retornar as seguintes strings:
integer, double, string, array, object e unknown type.
*un+es 4ue testam o tipo da %ari%e"
So as funes is_int(), is_integer(), is_real(), is_long(),
is_float(), is_string(), is_array() e is_object(). Todas possuem o
mesmo formato:
isRinteger( $variavel);
Todas essas funes retornam true se a varivel for daquele
tipo, e fa"se em caso contrrio.
: - )estruindo uma %ari%e"
possvel desalocar uma varivel se ela no for usada
posteriormente atravs da funo unset:
unset( $variavel );
A funo destri a varivel, ou seja, libera a memria
ocupada por ela, fazendo com que ela deixe de existir. Se mais na
frente for feita uma chamada varivel, ser criada uma nova
varivel de mesmo nome e de contedo vazio, a no ser que a
chamada seja pela funo issetHI. Se a operao for bem sucedida,
retorna true.
P - $erifi!ando se uma %ari%e" possui um %a"or
Existem dois tipos de teste que podem ser feitos para
verificar se uma varivel est setada: com a funo isset e com a
funo empt/.
issetHI
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

&&
PHP - ASP - JSP
Ela retorna true se a varivel estiver setada (ainda que com
uma string vazia ou o valor zero), e fa"se em caso contrrio.
isset( $variavel );
empt/HI
Ela retorna true se a varivel no contiver um valor (no
estiver setada) ou possuir valor 0 (zero) ou uma string vazia.
Caso contrrio, retorna fa"se.
empt/( $variavel );
Y - Constantes
Para definir constantes utiliza-se a funo define. Uma vez
definido, o valor de uma constante no poder mais ser alterado.
Uma constante s pode conter valores escalares, ou seja, no pode
conter um arra/ ou obNeto:
define(nome_da_constante,valor_da_constante);
A funo retorna true se for bem-sucedida:
Para utilizar o valor da constante basta chamar o nome da
constante(sem $).
define ("VALOR", 15);
print VALOR;
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

&*
PHP - ASP - JSP
P - C"asses Z <bNetos
1 - C"asses
Uma classe um conjunto de variveis e funes relacionadas
a essas variveis. Uma vantagem da utilizao de programao
orientada a objetos poder usufruir do recurso de encapsulamento
de informao. Com o encapsulamento o usurio de uma classe no
precisa saber como ela implementada, bastando para a utilizao
conhecer a interface, ou seja, as funes disponveis.
Uma classe um tipo, e portanto no pode ser atribuda a uma
varivel. Para definir uma classe, deve-se utilizar a seguinte
sintaxe:
class nome_da_classe {
var $variavel1;
var $variavel2;
function funcao1( $parametro ) {
comandos;
}
}
' - <bNetos
Variveis do tipo de uma classe so chamadas de objetos, e
devem ser criadas utilizando o operador neF:
$variavel = new $nome_da_classe;
Para utilizar as funes definidas na classe, deve ser
utilizado o operador -[:
$variavel->funcao1();
, - A %ari%e" LtBis
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

&-
PHP - ASP - JSP
Na definio de uma classe, pode-se utilizar a varivel LtBis,
que a representao do prprio objeto. Assim, quando uma classe
instanciada em um objeto, e uma funo desse objeto na definio
da classe utiliza a varivel LtBis, essa varivel significa o
objeto que estamos utilizando.
Como exemplo da utilizao de classes e objetos, podemos
utilizar a classe carrinho_de_compra, que define uma carrinho de
compras de comrcio eletrnico simples, com funes para adicionar
e subtrair produtos do carrinho de compras:
class carrinho_de_compra {
var $produtos;
function adiciona( $valor ) {
return $this->produtos + $valor;
}
function subtrai( $valor ) {
return $this->produtos - $valor;
}
}
$meu_carrinho = new carrinho_de_compra;
$meu_carrinho->adiciona(1);
$meu_carrinho ->subtrai(1);
1 - SubC"asses
Uma classe pode ser uma extenso de outra. Isso significa que
ela herdar todas as variveis e funes da outra classe, e ainda
ter as que forem adicionadas. Em PHP no permitido utilizar
herana mltipla, ou seja, uma classe pode ser extenso de apenas
uma outra.
Para criar uma classe extendida, ou derivada de outra, deve
ser utilizada a palavra reservada e.tends:
class novo_carrinho extends carrinho_de_compra {
var $status;
function status() {
return $this->status;
}
}
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

&7
PHP - ASP - JSP
A classe acima derivada da classe carrinho_de_compra, tendo
as mesmas funes e variveis, com a adio da varivel $status e a
funo status().
3 - Construtores
Um construtor uma funo definida na classe que
automaticamente chamada no momento em que a classe instanciada
(atravs do operador neF). O construtor deve ter o mesmo nome que a
classe a que pertence:
class conta {
var $saldo;
function conta () {
$this->saldo = 0;
}
function saldo() {
return $this->saldo;
}
function credito($valor) {
$this->saldo += $valor;
}
}
Podemos perceber que a classe conta agora possui um
construtor, que inicializa a varivel Lsa"do com o valor 0.
Um construtor pode conter argumentos, que so opcionais, o
que torna esta ferramenta mais poderosa. No exemplo acima, o
construtor da classe conta pode receber como argumento um valor,
que seria o valor inicial da conta.
Vale observar que para classes derivadas, o construtor da
classe pai no automaticamente herdado quando o construtor da
classe derivada chamado.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

&>
PHP - ASP - JSP
Y - Ban!os de )ados
Como j foi mencionado, o PHP oferece funes de acesso aos
mais diversos bancos de dados.
Abordaremos, a seguir, os bancos de dados mais usados no
mercado que so o MySQL, Microsoft SQL Server e ODBC.
1 - 7/SQL
Cone!tando
Para acessar bases de dados MySQL, necessrio antes
estabelecer uma conexo. Para isso, deve ser utilizado o comando
m/s4"R!onne!t, ou o m/s4"Rp!onne!t.
A diferena entre os dois comandos que o m/s4"Rp!onne!t
estabelece uma conexo permanente, ou seja, que no encerrada ao
final da execuo do script.
mysql_connect(host , usuario , senha );
ou
mysql_pconnect(host , usuario , senha);
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.
Uma conexo estabelecida com o comando m/s4"R!onne!t
encerrada ao final da execuo do script. Para encerr-la antes
disso deve ser utilizado o comando m/s4"R!"ose:
mysql_close(identificador da conexo);
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

&:
PHP - ASP - JSP
Se o identificador no for fornecido, a ltima conexo
estabelecida ser encerrada.
Se"e!ionando a base de dados
Depois de estabelecida a conexo, preciso selecionar a base
de dados a ser utilizada, atravs do comando m/s4"Rse"e!tRdb:
mysql_select_db(nome da base, identificador da conexo );
Novamente, se o identificador da conexo no for fornecido, a
ltima conexo estabelecida ser utilizada.
Se"e!ionando dados
Para executar consultas SQL no MySQL, utiliza-se o comando
m/s4"R4uer/:
mysql_query(select * from mytable, conexo );
No caso de uma expresso SALAC6, as linhas retornadas so
armazenadas numa memria de resultados, o resu"tset, e o valor de
retorno o identificador deste resu"tset.
nserindo8Atua"i#ando8Apagando dados
Para executar estas operaes SQL no MySQL, tambm utiliza-se
o comando m/s4"R4uer/:
mysql_query(imsert into mytable(1,2,3), conexo );
No caso de uma expresso -SAR682P)A6A8)ALA6A, o comando
m/s4"R4uer/ retorna 1 se obtiver sucesso e 0 em caso contrrio.
Apagando o Resu"tset
mysql_free_result( resultset );
O comando m/s4"RfreeRresu"t deve ser utilizado para apagar da
memria o resu"tset indicado.
Se"e!ionado o n>mero de "inBas
mysql_num_rows( resultset );
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

*<
PHP - ASP - JSP
O comando m/s4"RnumRroFs retorna o nmero de linhas contidas
num determinado resu"tset.
2ti"i#ando os Resu"tados
Existem diversas maneiras de ler os resultados de um SALAC6,
ou seja, um resu"tset. As mais comuns so:
mysql_fetch_array( resultset );
Este comando l uma linha do resu"tset e devolve na forma de
um array, cujos ndices podem ser numricos iniciando por 0(zero)
ou podem ser os nomes dos campos ou aliases das tabelas.
mysql_fetch_row( resultset );
Funcionamento idntico ao comando anterior, porm, neste caso
os ndices do array so somente num&ri!os, iniciando pelo 0
(zero).
mysql_fetch_assoc( resultset );
Funcionamento identico ao comando anterior, porm, neste caso
os ndices do array so somente os nomes dos campos ou aliases das
tabelas.
' - 7i!rosoft SQL Ser%erH7SSQLI
Cone!tando
Para acessar bases de dados num servidor MSSQL(Microsoft SQL
Server), necessrio antes estabelecer uma conexo. Para isso,
deve ser utilizado o comando mss4"R!onne!t, ou o mss4"Rp!onne!t.
A diferena entre os dois comandos que o mss4"Rp!onne!t
estabelece uma conexo permanente, ou seja, que no encerrada ao
final da execuo do script:
mssql_connect(host , usuario , senha);
ou
mssql_pconnect(host , usuario , senha);
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

*1
PHP - ASP - JSP
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.
Uma conexo estabelecida com o comando mss4"R!onne!t
encerrada ao final da execuo do script. Para encerr-la antes
disso deve ser utilizado o comando mss4"R!"ose:
mssql_close( conexo );
Se o identificador no for fornecido, a ltima conexo
estabelecida ser encerrada.
Se"e!ionando a base de dados
Depois de estabelecida a conexo, preciso selecionar a base
de dados a ser utilizada, atravs do comando mss4"Rse"e!tRdb:
mssql_select_db(nome da base, conexo);
Novamente, se o identificador da conexo no for fornecido, a
ltima conexo estabelecida ser utilizada.
Se"e!ionando dados
Para executar consultas SQL no MSSQL, utiliza-se o comando
mss4"R4uer/:
mssql_query(select * from mytable, conexo );
No caso de uma expresso SELECT, as linhas retornadas so
armazenadas numa memria de resultados, o resu"tset, e o valor de
retorno o identificador deste resu"tset.
nserindo8Atua"i#ando8Apagando dados
Para executar estas operaes SQL no MSSQL, tambm utiliza-se
o comando mss4"R4uer/:
mssql_query(imsert into mytable(1,2,3), conexo );
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

*2
PHP - ASP - JSP
No caso de uma expresso -SAR682P)A6A8)ALA6A, o comando
mss4"R4uer/ retorna 1 se obtiver sucesso e 0 em caso contrrio.
Apagando o Resu"tset
mssql_free_result( resultset );
O comando mss4"RfreeRresu"t deve ser utilizado para apagar da
memria o resu"tset indicado.
Se"e!ionando o n>mero de "inBas
mssql_num_rows( resultset );
O comando mss4"RnumRroFs retorna o nmero de linhas contidas
num determinado resu"tset.
2ti"i#ando os Resu"tados
Existem diversas maneiras de ler os resultados de um SALAC6,
ou seja, um resu"tset. As mais comuns so:
mssql_fetch_array( resultset );
Este comando l uma linha do resu"tset e devolve na forma de
um array, cujos ndices podem ser numricos iniciando por 0(zero)
ou podem ser os nomes dos campos ou aliases das tabelas.
mssql_fetch_row( resultset );
Funcionamento idntico ao comando anterior, porm, neste caso
os ndices do array so somente num&ri!os, iniciando pelo 0
(zero).
mssql_fetch_assoc( resultset );
Funcionamento identico ao comando anterior, porm, neste caso
os ndices do array so somente os nomes dos campos ou aliases das
tabelas.
, - *ontes de )ados <)BC
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

*$
PHP - ASP - JSP
Antes que possamos fazer qualquer coisa numa fonte de dados
ODBC(como conectar, inserir, selecionar, etc.), precisamos
configur-la, a menos que isto j tenho sido feito. Veremos como
configurar, passo a passo, a fonte de dados <)BC no capitulo 7 dos
apndices.
Cone!tando
Para acessar Fontes de Dados <)BC, necessrio antes
estabelecer uma conexo. Para isso, deve ser utilizado o comando
odbc_connect:
odbc_connect( datasour!e, usuario , senBa );
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 datasour!e, o mesmo usuario e a mesma
senBa. Se existir, o identificador desta conexo retornado.
Seno, uma nova conexo criada.
Uma conexo estabelecida com o comando odb!R!onne!t,
encerrada ao final da execuo do script. Para encerr-la antes
disso deve ser utilizado o comando odb!R!"ose:
odbc_close( conexo );
Se o identificador no for fornecido, a ltima conexo
estabelecida ser encerrada.
Se"e!ionando dados
Para executar consultas SQL atravs de ODBC, utiliza-se o
comando odb!Re.e!:
odbc_exec( conexo, select * from mytable);
No caso de uma expresso SELECT, as linhas retornadas so
armazenadas numa memria de resultados, o resu"tset, e o valor de
retorno o identificador deste resu"tset.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

*&
PHP - ASP - JSP
nserindo8Atua"i#ando8Apagando dados
Para executar estas operaes SQL em ODBC, tambm utiliza-se
o comando odb!Re.e!:
odbc_exec(conexo, imsert into mytable(1,2,3));
No caso de uma expresso -SAR682P)A6A8)ALA6A, o comando
odb!Re.e! retorna 1 se obtiver sucesso e 0 em caso contrrio.
Apagando o Resu"tset
odbc_free_result( resultset );
O comando odb!RfreeRresu"t deve ser utilizado para apagar da
memria o resu"tset indicado.
Se"e!ionando o n>mero de "inBas
odbc_num_rows( resultset );
O comando odb!RnumRroFs retorna o nmero de linhas contidas
num determinado resu"tset.
2ti"i#ando os resu"tados
Existem diversas maneiras de ler os resultados de um SALAC6,
ou seja, um resu"tset. As mais comuns so:
odbc_fetch_array( resultset );
Este comando l uma linha do resu"tset e devolve na forma de
um array, cujos ndices podem ser numricos iniciando por 0(zero)
ou podem ser os nomes dos campos ou aliases das tabelas.
odbc_fetch_row( resultset );
Funcionamento identico ao comando anterior, porm, neste caso
os ndices do array so somente num&ri!os, iniciando pelo 0
(zero).
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

**
PHP - ASP - JSP
1\ - Headers
O comando header, como o prprio nome sugere, permite enviar
cabealhos html para o cliente. O principal cuidado que deve-se
ter na sua utilizao que o mesmo no pode ser enviado depois de
qualquer tipo de texto:
header(tipo de cabealho);
Alguns exemplos de utilizaes deste comando:
header("Location: http://www.naredemundial.com.br");
O comando acima direciona o usuario para a URL indicada.
header("http/1.0 404 Not Found");
O comando acima define o script atual como uma mensagem de
erro do tipo 404.
header("Cache-Control: no-cache, must-revalidate"); //HTTP/1.1
header("Pragma: no-cache"); //HTTP/1.0
O comando acima define a expirao da pgina.
Estes so somente os mais utilizados e para obter uma lista
completa dos headers H66P possveis, visite o seguinte endereo na
web:
http://www.w3.org/Protocols/rfc2068/rfc2068
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

*-
PHP - ASP - JSP
11 - CooEies
Cookies so pequenos arquivos gravados no cliente por um
determinado site, sendo que, somente este poder recuperar as
informaes do mesmo.
Este recurso muito til para que determinadas informaes
sejam fornecidas pelo usurio apenas uma vez. Exemplos de
utilizao de cookies so os sites que informam a quantidade de
vezes que voc j visitou, ou alguma informao fornecida numa
visita anterior.
1 - Criando
Para gravar cookies no cliente, deve ser utilizada a funo
set!ooEie:
setcookie(nome, valor, expirao, path, dominio, secure);
Sendo que:
nome nome do cookie;
%a"or valor armazenado no cookie;
e.p data de expirao do cookie(opcional), no formato Unix. Se no for
definida, o cookie expirar quando o browser for fechado;
patB path do script que gravou o cookie;
domOnio domnio responsvel pelo cookie;
se!ure valor 1, indica que o cookie s pode ser transmitido por uma conexo
segura (https).
Somente o primeiro e o segundo parametros(nome e valor) so
obrigatrios para gravar o cookie.
Os Cookies, assim com os Beaders, s podem ser gravados antes
do envio de qualquer informao para o cliente, inclusive os
prprios Beaders.
' - Re!uperando informa+es
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

*7
PHP - ASP - JSP
Os cookies lidos ficam armazenados no array $ _COOKIE[], tendo
como ndice o nome do cookie, ou ainda numa varivel cujo nome o
mesmo do cookie, precedido pelo smbolo $.
Um cookie gravado numa pgina anterior assim:
setcookie(nome, Jozinho da Silva);
Poder ser lido assim:
$ _COOKIE[nome];
ou ainda, diretamente pela varivel:
$nome;
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

*>
PHP - ASP - JSP
1' - 7anipu"ao de Ar4ui%os
Atravs do PHP possvel manipular todos arquivos e pastas
do sistema e inclusive arquivo remotos.
1 - Copiando
Para fazer uma cpia de arquivo basta utilizar a funo !op/,
desde que o usurio tenha as permisses necessrias para isso:
copy( origem, destino);
' - $erifi!ando tamanBo
A funo fi"esi#e pode ser bastante til na criao de um
script que liste o contedo de um diretrio, por exemplo, mas
tambm utilizada em combinao com a funo fread, como veremos:
filesize(arquivo);
Esta funo retorna um inteiro com o tamanho do arquivo, em
bytes, ou false em caso de erro.
, - $erifi!ando se e.iste
Para evitar erros em tratamento de arquivos, aconselhvel
verificar se o determinado arquivo existe antes de tentar a
manipulao do mesmo. Utiliza-se para isso a funo fi"eRe.ists:
file_exists(arquivo);
Esta funo tem um comportamento booleano: retorna apenas true
ou false, no informando mais nada sobre o arquivo.
1 - Limpando o !a!Be
Algumas funes que verificam o estado de arquivos utilizam
um !a!Be, ou seja, chamadas sucessivas da mesma funo com relao
ao mesmo arquivo no verificam se houve mudana no mesmo,
retornando sempre o mesmo valor.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

*:
PHP - ASP - JSP
Para eliminar esse !a!Be, obrigando o PHP a reavaliar o valor
de retorno de uma funo, deve ser utilizada a seguinte funo:
clearstatcache();
As funes fi"esi#e e fi"eRe.ists utilizam este !a!Be.
3 - Abrindo ar4ui%os
Para manipular arquivos necessrio abri-lo antes. Para isso
deve ser utilizada a funo fopen.
Um arquivo pode ser aberto em modos de leitura e/ou escrita:
Leitura
fopen(c:\teste.txt, r);
As!rita
fopen(c:\teste.txt, w);
A funo fopen retorna fa"se em caso de erro, e um
identificador do arquivo em caso de sucesso. Esse identificador
ser utilizado em outras funes que manipulam o contedo do
arquivo.
O primeiro argumento uma string contendo o nome do arquivo;
o segundo, o modo como o arquivo ser aberto, que pode ser um dos
seguintes:
r
Abre o arquivo com permisso apenas para leitura.
RW
Abre o arquivo com permisso para escrita e leitura,
posicionando o ponteiro no incio do mesmo.
F
Abre o arquivo com permisso apenas para escrita. Se o
arquivo existir, todo o contedo apagado. Se no existir, o PHP
tenta cri-lo. O ponteiro posicionado no incio do arquivo
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

-<
PHP - ASP - JSP
=W
Abre o arquivo com permisso para escrita e leitura. Se o
arquivo existir, todo o contedo apagado. Se no existir, o PHP
tenta cri-lo. O ponteiro posicionado no incio do arquivo
a
Abre o arquivo com permisso apenas para escrita. Se o
arquivo no existir, o PHP tenta cri-lo. O ponteiro posicionado
no final do arquivo.
AW
Abre o arquivo com permisso para escrita e leitura. Se o
arquivo no existir, o PHP tenta cri-lo. O ponteiro posicionado
no final do arquivo.
Ar4ui%os Remotos
Alm da manipulao de arquivos locais, a funo fopen tambm
permite abrir arquivos remotos, utilizando os protocolos http ou
ftp, da seguinte maneira:
Se a string como o nome do arquivo iniciar por BttpG88 (maisculas e
minsculas so iguais), uma conexo aberta com o servidor e o arquivo contendo
o texto de retorno ser aberto para leitura.
Se a string como o nome do arquivo iniciar por ftpG88 (maisculas e minsculas
so iguais), uma conexo aberta com o servidor e o arquivo ser aberto.
utilizando ftp o arquivo poder ser aberto para leitura ou escrita, mas no
simultaneamente.
5 - *e!Bando Ar4ui%os
Para encerrar a manipulao de um arquivo deve-se utilizar a
funo f!"ose:
fclose(arquivo);
: - Lendo ar4ui%os
fread( arquivo, tamanho);
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

-1
PHP - ASP - JSP
Esta funo retorna uma string com o contedo do arquivo. O
segundo parmetro determina at onde o arquivo ser lido, em
bytes.
Se o tamanho determinado for maior que o arquivo, no ocorre
erro, tendo como retorno apenas o arquivo. Na maioria dos casos a
funo fi"esi#e bastante til, como no exemplo abaixo:
$meuarquivo = c:/autoexec.bat;
$id = fopen($meuarquivo, r);
$conteudo = fread($id,filesize($meuarquivo));
A funo fread binary-safe, ou seja, pode ser usada para
ler o contedo de um arquivo binrio. Obviamente nesse caso
preciso saber exatamente onde utilizar o valor lido, para no
obter resultados indesejados.
P - As!re%endo em ar4ui%os
fwrite( arquivo, conteudo, tamanho);
Esta funo grava num arquivo o contedo do segundo
parmetro. Se o tamanho fornecido e for menor que o tamanho da
string, ser feita a gravao apenas de uma parte da mesma,
determinada pelo terceiro parmetro.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

-2
PHP - ASP - JSP
1, - Amai"
PHP oferece o mais simples mtodo para envio de emails entre
as linguagens que estamos abordando, basta utilizar a funo mai"
com seus parmetros bsicos:
mail(destinatario, assunto, mensagem, headers);
onde:
destinatario
Esta a string contendo o endereo de email do destinatrio.
assunto
Este o assunto do email.
mensagem
Aqui vai o corpo do email.
Beaders
Este campo opcional, e contm outras informaes de
cabealho, como por exemplo from, rep"/-to, b!!, etc.
Para facilitar a compreenso dos scripts, os argumentos (como
geralmente so strings grandes) devem ser atribudos a variveis
antes da chamada da funo mail.
Exemplo de email em formato HTML:
<?
$destinatario = teste@teste.com;
$assunto = email em html;
$mensagem = este meu email em <b>HTML</b>;
$from = From: teste@teste.com\n
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= $from;
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

-$
PHP - ASP - JSP
if ( mail( $destinatario, $assunto, $mensagem, $headers ) ) {
print email enviado para $destinatario;
} else {
print email no enviado para $destinatario;
}
?>
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

-&
PHP - ASP - JSP
11 - PHP Z ;a%a
Uma das grandes vantagens do PHP sua possibiladde de
interao com praticamente todas as demais tecnologias disponveis
atualmente, como Flash, PDF, Imagens, Bancos de Dados diversos,
Java e at a novssima tecnologia .NET.
Veremos aqui como acessar funes e mtodos oriundos de
Classes Java. A vantagem disso que uma classe Java um arquivo
compilado, o que torna sua utilizao mais segura, alm do que o
Java possui alguns recursos bem avanados e interessantes.
Para usar Classes Java, deve se proceder da mesma maneira que
se faria para usar uma Classe PHP normal, ou seja:
<?
/* Instanciando uma classe Java que est num arquivo chamado
noticias.class
*/
$myjava = new Java(noticias);
//Lendo uma funo vinda da classe Java
$resultado = myjava->selectNoticias();
//Imprimindo o conteudo recebido da classe Java
print $resultado;
?>
Para usar este recurso, preciso preparar o ambiente
Java/PHP, maiores informaes sobre isso voc encontra no capitulo
6 dos apndices.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

-*
PHP - ASP - JSP
13 - Sessions
Podemos usar variveis de sesso e gerenci-las facilmente
com PHP. Sessions so semelhantes aos Cookies, porm, as Sessions
ficam gravadas no servidor e no no computador do usurio.
1 - < <bNeto Session
O PHP cria uma nova Session para cada novo usurio e destroi
a respectiva Session quando a sesso termina.
' - Quando a sesso !omeaC
A sesso comear quando:
1. Quando um valor armazenado numa varivel de sesso;
2. Quando encontra a instruo sessionRstartHI no script.
, - Quando a sesso terminaC
A sesso terminar se um usurio no requisitar ou atualizar
uma pagina da aplicao por um determinado perodo.
Se voc quiser alterar este intervalo de timeout, poder
fazer isso atravs do PHP.INI.
Para encerrar uma sesso imediatamente ou forar que esta
termine, poder fazer isso atravs da funo sessionRdestro/HI.
<?
session_destroy();
?>
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

--
PHP - ASP - JSP
O principal problema com sesses saber quando elas devem
ser encerradas. No sabemos se a ultimas requisio do usuario foi
o final da sesso ou no. Sendo assim, no sabemos por quanto
tempo manter a sesso ativa. Mantendo a sesso ativa por um longo
tempo, esta estar consumindo recursos do servidor. Mas, se a
sesso for deleteda muito rapida corremos o risco de quando o
usuario retornar ele ter que comear tudo de novo. Encontrar o
6imeout adequado pode ser uma tarefa muito dificil.
1 - ?ra%ando e Re!uperando $ari%eis de Sesso
<?
session_start(); //inicia a sesso
$contador = $_SESSION[`CONTADOR']; //recupera valores da sesso
if (( $contador != 0 )||( $contador != )) {
$contador++;
} else {
$contador = 1;
}
print voc esteve aqui $contador vezes;
$_SESSION[`CONTADOR'] = $contador; //Grava valores na sesso
?>
Com o exemplo acima, a cada visita que voc fizer esta
pgina, a varivel $_SESSION[`CONTADOR'] ser incrementada. Este
valor somente ser perdido se a sua janela do browser for fechada
ou se expirar o tempo de existncia da mesma, valor este que est
configurado no arquivo do configuraes do PHP, o PHP0-.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

-7
PHP - ASP - JSP
15 - n!"udes8Re4uires
Outra grande vantagem do PHP o uso de in!"udes e/ou
re4uires.
Esses dois comandos so idnticos, exceto de como eles
manipulam os erros. in!"udeHI produz um erro do tipo =arning,
enquanto re4uireHI produzir um *ata" Arror.
Utilizamos re4uireHI se desejamos que um arquivo faltando
interrompa o processamento da pgina.
O comando in!"udeHI no se comporta da mesma maneira,
permitindo que o script continue nessas situaes.
Quando um arquivo includo, seu cdigo entra no escopo de
varivel da linha onde a incluso ocorre. Qualquer varivel
disponvel da linha onde a chamada da incluso ocorre estar
disponvel para o arquivo includo, daquele ponto em diante.
Tambm existem as funes in!"udeRon!eHI e re4uireRon!eHI,
que funcionam de maneira semelhante a include() e require(),
respectivamente, porm antes, elas testam se o arquivo j no foi
incluido na pagina atual, muito til em pginas com vrios
includes.
include(funcoes.php);
ou
require(funcoes.php);
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

->
PHP - ASP - JSP
1: - 6ratamento de Arros
Os tratamentos de erros so muito importantes para que
evitemos que o usurio receba mensagens indesejveis ou confusas.
1 - Arros de *uno
Para sumprimir e/ou tratar mensagens de erro de funes,
basta preceder a chamada da funo com o sinal de ]0
<?
@fopen('/tmp/f7g6b6','r');
?>
' ( Arros ?"obais
Podemos usar a funo errorRreportingHI para configurar o
nivel de erros que desejamos que sejam exibidos na execuo do
script.
<?
//Desabilita todas as mensagens de erro
error_reporting(0);
//Reporta erros simples de funcionamento do script
error_reporting (E_ERROR | E_WARNING | E_PARSE);
//Reporta E_NOTICE
error_reporting (E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
//Reporta todos erros exceto E_NOTICE
//Este o valor padro do php.ini
error_reporting (E_ALL ^ E_NOTICE);
//Reporta todos erros
error_reporting (E_ALL);
//Idntico ao error_reporting(E_ALL);
ini_set ('error_reporting', E_ALL);
?>
6abe"a de C9digos de Arro
E_ERROR Fatal run-time errors
E_WARNING Run-time warnings
E_PARSE Compile-time parse errors
E_NOTICE Run-time notices
E_CORE_ERROR Fatal startup errors
E_CORE_WARNING Startup warnings
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

-:
PHP - ASP - JSP
E_COMPILE_ERROR Fatal compile-time errors
E_COMPILE_WARNING Compile-time warnings
E_USER_ERROR User-generated errors
E_USER_WARNING User-generated warnings
E_USER_NOTICE User-generated notices
E_ALL All of the above
, - )ie8A.it
A funo dieHI um apelido para a funo e.itHI e serve para
terminar a execuo dos scripts em caso de erros. A funo exibe
uma mensagem de erro personalizada antes de encerrar a execuo do
script.
<?
$filename = '/caminho/para/arquivo';
$file = fopen ($filename, 'r') or exit("No pude abrir o arquivo $filename)");
?>
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

7<
PHP - ASP - JSP
ASP
A!ti%e Ser%er Pages
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

71
PHP - ASP - JSP
1 - ntroduo
1 - < 4ue &C
Active Server Pages, o ASP, a tecnologia criada pela
Microsoft para o desenvolvimento de aplicaes web.
' - < 4ue pode ser feitoC
Basicamente, qualquer coisa pode ser feita com ASP, desde
coletar dados de formulrios at gerar pginas dinmicas oriundas
de bancos de dados, XML, arquivos texto, etc.
, ( Como SurgiuC
Aps um tempo de existncia do Internet Information Server
2.0, o servidor web da Microsoft, a empresa comeou a publicar o
beta-teste de uma tecnologia cujo o nome de cdigo era Denali.
Esta tecnologia passou a chamar-se Active Server Pages e
atualmente um aspecto muito importante na estratgia do Internet
Information Server.
A tecnologia ASP est encapsulada em um nico e pequeno
arquivo, do tipo DLL, chamado ASP.DLL, sendo que este um filtro
ISAPI(Internet Server Application Programming Interface) que
reside no mesmo espao de memria do IIS.
A novssima tecnologia .Net a evoluo do ASP e a nova
aposta da Microsoft em tecnologia web. As principais diferenas da
tecnologia .Net so as vrias linguagens que podem ser usadas(J# e
c#) alm da possibilidade de ter scripts compilados, o que melhora
a permance.
1 ( )iagrama
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

72
PHP - ASP - JSP
Uma requisio para o ASP funciona assim:
5. O BroFser faz uma requisio ao Ser%idor =eb;
6. O Ser%idor =eb detecta que trata-se de uma pgina ASP e
encaminha a requisio ao interpretador ASP;
7. O interpretador ASP faz os processamentos necessrios,
inclusive acessos a bancos de dados e outros recursos e
devolve o HTML para o Ser%idor =eb;
8. O Ser%idor =eb devolve O HTML ao BroFser.
No diagrama abaixo voc visualiza estas etapas:
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

7$
PHP - ASP - JSP
' - Sinta.e bsi!a
1 - )e"imitando o !9digo
O cdigo ASP, uma vez que, fica embutido em meio ao cdigo
HTML, para que o interpretador possa delimitar o que ASP e o que
HTML precisa de tags que indiquem isso:
<%
comandos
%>
' - Separando nstru+es
O ASP no possui o conceito de separao de instrues com o
; ou outro caracter, como no PHP e JSP.
, - -omes de %ari%eis
O nome de uma varivel pode ser uma sequncia de um ou mais
caracteres alfabticos, sendo que, esses nomes s podem ser
iniciados por caracteres alfabticos. Alm disso, existem algumas
palavras reservadas como break e class, por exemplo, que no podem
ser usadas para nomear variveis.
preciso ressaltar, tambm, que o ASP no faz distino
entre letras maisculas e minsculas.
1 ( Comentrios
Existe a tag de comentrios para ASP que o sinal de
apstrofe conforme abaixo:
<%
`comentrios
%>
3 ( mprimindo !9digo H67L
<%
Response.write(ASP imprimindo...)
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

7&
PHP - ASP - JSP
Ou
Response.write ASP imprimindo...
%>
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

7*
PHP - ASP - JSP
, - 6ipos
1 - 6ipos Suportados
O ASP, possui um nico tipo de dados chamado Variant. Um
dado Variant uma tipo especial de dados que pode conter
espcies diferentes de informaes, dependendo de como seja usado.
Sendo assim uma varivel declarada como Variant pode conter
tanto um valor numrico quanto uma cadeia de carateres.
Sub6ipos da $ariant
$ariant
Contm intencionalmente nenhum valor vlido.
nteiros
Integer - inteiros de -32768 a 32.767.
Ponto *"utuante
Currency - 922.337.203.685.477.4808 a
922.337.203.685.477.5807.
Strings
String - variveis alfanmricas que podem ter comprimento de
0 at 2 bilhes de caracteres.
<bNetos
Object - qualquer referncia de objeto.
Boo"eanos
Boolean - Contm true ou false.
B/te
Byte - inteiros de 0 a 255.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

7-
PHP - ASP - JSP
)ata
Date - valores de data.
Arro
Error - contm um nmero de erro.
' ( 6ransformao de 6ipos
CBoo"He.pressoI
Converte uma expresso numrica ou string em um valor
booleano.
CB/teHe.pressoI
Converte uma expresso numerica ou string em um valor do tipo
byte.
CCurHe.pressoI
Converte uma expresso numrica ou string em um valor do tipo
currency.
C)ateHe.pressoI
Converte uma expresso numrica ou string em um valor do tipo
date.
C)b"He.pressoI
Converte uma expresso numerica ou string em um valor double.
CntHe.pressoI
Converte uma expresso numerica ou string em um valor inteiro.
CLngHe.pressoI
Converte uma expresso numerica ou string em um valor long.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

77
PHP - ASP - JSP
CSngHe.pressoI
Converte uma expresso numerica ou string em um valor single.
CStrHe.pressoI
Converte uma expresso numerica ou string em um valor string.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

7>
PHP - ASP - JSP
1 - <peradores
1 - Aritm&ti!os
Exponenciao ^
Multiplicao *
Diviso inteira /
Adio +
Subtrao -
Mdulo MOD
' - Strings
Concatenao &
, - Atribuio
=
1 - L9gi!os
no not
e and
ou or
3 - Comparao
Igualdade =
Diferena <>
Menor que <
Maior que >
Menor ou igual que <=
Maior ou igual que >=
Comparao de Strings LIKE
5 - n!remento e )e!remento
ASP no possui um operador especifico para este fim, usa-se
isso ento:
variavel = variavel + 1
ou
variavel = variavel - 1
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

7:
PHP - ASP - JSP
3 - Astruturas de Contro"e
1 ( B"o!os
O ASP no possui o conceito de delimitao de blocos com a
{ e a } ou outro caracter, como no PHP e JSP.
' - Condi!ionais
*
Este o comando mais trivial dos condicionais. Ele testa uma
expresso e executa determinado comando se esta for verdadeira.
if expresso1 then comando
Existe um complemento para o IF, no caso da expresso 1 no
for verdadeira, ele executa os comando do ELSE ento:
If expresso1 then
comando
else
comando alternativo
end if
SALAC6^CASA
Este condicional avalia uma nica expresso no topo da
estrutura. O resultado da expresso ento comparada com os
valores para cada Case da estrutura.
Se algum dos Cases retorna como verdadeiro ento o respectivo
bloco de cdigo passa a ser executado.
Select Case
minha_varivel
Case 1
Response.write(um)
Case 2
Response.write(dois)
Case 3
Response.write(tres)
Case else
Response.write(nenhum deles.)
End select
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

><
PHP - ASP - JSP
, - Repetio
=HLA000=A-)
O loop while usado para repetir uma instruo ou bloco de
instrues at que uma condio particular seja verdadeira:
while condio
comando
wend
)<000
O loop DO exatamente como o loop WHI!, exceto pelo fato de
que ele executar uma dada instruo ou bloco at que uma condio
seja falsa. A diferena principal entre os dois que ele possui
umas variaos pois pode ser usado em conjunto com o while para
testar uma determinada condio antes de entrar no lao ou depois
do lao e ainda pode ser usado em conjunto com o Until.
Aqui o )o com FBi"e depois:
Do
comando
loop while condicao
Aqui usando o FBi"e antes do comando )o:
Do while condicao
comando
Loop
Aqui o )o em conjunto com o 2nti"
Do until condicao
Commandos
Loop
Para sair de um lao )o pode-se usar a declarao A.it )o.
*<R000-A_6
O loop for, repete uma instruo ou um bloco de instrues
algum nmero de vezes at que a condio seja satisfeita.
Loops for so frequentemente usados para simples iteraes na
qual voc repete um bloco de instrues um certo nmero de vezes e
ento para:
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

>1
PHP - ASP - JSP
For x = 1 To 50
comando
Next
Pode sair de um lao For usando a declarao Exit For.
O valor da interao pode ser alkterado usando a declarao
Step assim:
For x = 1 To 50 Step 2
comando
Next
*<R AACH000-A_6
Um lao For Each. Next muito parecido comos laos For.Next,
sendo que a diferena como occore o nmero de repeties.
Ele repete um grupo de declaraes para cada item em uma
coleo de objetos ou ainda para cada elemtno de um array passado.
Tornando-se muito til quanfo no se sabe qual o numero exato de
iteraes que se necessita.
Quebras de *"u.o
Em todos os loops (for, while e do), o loop termina quando a
condio que voc est testando atingida. Porm, em alguma
situao, voc desejar sair do loop antes do seu trmino normal.
Para isso, voc pode usar as palavras chaves break e continue.
BRAA`
A palavra reservada break pra imediatamente a execuo do
loop corrente. Se voc tiver loops aninhados dentro de loop mais
externo; caso contrrio, o programa simplesmente continua a
execuo da prxima instruo aps o loop.
C<-6-2A
A palavra reservada continue pra o loop e comea novamente
na prxima iterao.Continue til quando voc quer ter situaes
de casos especiais dentro de loop.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

>2
PHP - ASP - JSP
5 - *un+es
1 ( )efinio
No ASP existem duas espcies de Funes ou Procedures: as Subs
e as *un!tions.
Subs
Este o tipo de procedimento que executa determinada rotina
sem retornar um valor, sendo que possvel passar parmetros para
este.
Sub EscreveNome( NOME )
Response.Write(Seu nome : & NOME)
End Sub
*un!tions
Este o tipo de procedimento que executa determinada rotina
retorna um valor, sendo que tambm possvel passar parmetros
para este.
Function RetornaNome( NOME )
RetornaNome = NOME
End Function
Para chamar as procedures basta apenas referenciar o nome da
procedure passando ou no seus respectivos parmetros.
Poder ser usada a declarao Ca"" para chamar as
procedures, sendo que isso no necessrio. Caso decida usar esta
declarao os parametros devero, obrigatoriamente, estar em
parnteses.
' ( Retorno
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

>$
PHP - ASP - JSP
Como j vimos acima, as subs no retornam valores, enquanto
as fun!tions retornam. Para o retorno de valores, em fun!tions,
atribui-se o valor que se deseja retornar uma variavel com o
mesmo nome da funo, sem os parnteses.
, ( Argumentos
possvel passar argumentos ou parmetros para uma fun!tion
ou sub. Eles devem ser declarados logo aps o nome da funo,
entre parnteses, e tornam-se variveis pertencentes ao escopo
local da funo.
ReferSn!ia
Normalmente, a passagem de parmetros em ASP feita por
valor, ou seja, se o contedo da varivel for alterado, essa
alterao no afeta a varivel original.
Function mais5( NUMERO )
NUMERO = NUMERO + 5
Mais5 = NUMERO
End Function
NUMERO = 3
Call mais5( NUMERO ); `NUMERO continua valendo 3
No exemplo acima, como a passagem de parmetros por valor,
a funo mais3 pode ser intil, j que aps a execuo sair da
funo o valor anterior da varivel recuperado.
Caso a passagem de valor fosse feita por referncia, a
varivel NUMERO teria 8 como valor. O que ocorre normalmente que
ao ser chamada uma funo, o interpretador salva todo o escopo
atual, ou seja, os contedos das variveis.
Se uma dessas variveis for passada como parmetro, seu
contedo fica preservado, pois a funo ir trabalhar na verdade
com uma cpia da varivel.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

>&
PHP - ASP - JSP
Porm, se a passagem de parmetros for feita por referncia,
toda alterao que a funo realizar no valor passado como
parmetro afetar a varivel que o contm.
A maneira de fazer com que uma funo tenha parmetros
passados por referncia e explicitando isso na declarao da
mesma, o que faz com que a passagem de parmetros seja assim.
Para isso utiliza-se o modificador b/Ref:
Function mais5( byRef NUMERO )
NUMERO = NUMERO + 5
Mais5 = NUMERO
End Function
NUMERO = 3
Call mais5( NUMERO ); `NUMERO passa a valer 8
1 ( Conte.to
O contexto o conjunto de variveis e seus respectivos
valores num determinado ponto do programa. Na chamada de uma
funo, ao iniciar a execuo do bloco que contm a implementao
da mesma criado um novo contexto, contendo as variveis
declaradas dentro do bloco, ou seja, todas as variveis utilizadas
dentro daquele bloco sero eliminadas ao trmino da execuo da
funo.
3 ( As!opo
O escopo de uma varivel em ASP define a poro do programa
onde ela pode ser utilizada. Na maioria dos casos todas as
variveis tm escopo global. Entretanto, em funes definidas pelo
usurio um escopo local criado. Uma varivel de escopo global
no pode ser utilizada no interior de uma funo sem que haja uma
declarao explicita.
teste = Testando
function teste()
response.wtite(teste)
end function
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

>*
PHP - ASP - JSP
call teste()
O trecho acima no produzir sada alguma, pois a varivel
teste de escopo global, e no pode ser referida num escopo
local, mesmo que no haja outra com nome igual que cubra a sua
visibilidade.
Para que o script funcione da forma desejada, a varivel
global a ser utilizada deve ser declarada antecedida pela palavra
reservada )im.
Dim teste = Testando
function teste() {
response.write(teste)
end function
call teste()
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

>-
PHP - ASP - JSP
: - $ari%eis e Constantes
1 - )e!"arao
Voc declara variaveis explicitamente em seu script usando a
declarao Dim, a declarao Public e a declarao Private:
Dim nome
Pode-se tambm declarar variveis mltiplas numa mesma linha
separando-as por uma virgula:
Dim nome, sobrenome, idade
Entretanto, no necessria a declarao explicita em ASP.
' - $ari%eis en%iadas pe"o -a%egador
Para interagir com a navegao do usurio, necessrio que o
ASP possa enviar e receber informaes para o browser.
A maneira de enviar informaes atravs de um comando de
impresso, como o response.write(). Para receber informaes
vindas do navegador, atravs de um link ou um formulrio html, o
ASP utiliza as informaes enviadas atravs da URL.
Se seu script ASP est localizado em
TBttpG88"o!a"Bost8teste0aspU e voc o chama com a url
BttpG88"o!a"Bost8teste0aspCnomeVpau"oU, voc poder recuperar
automaticamente o valor do parametro nome, da url, atravs do
comando:
request.querystring(nome)
...e se for um parametro vindo de um formulrio HTML:
request.form(nome)
... onde nome ser o nome ou id, do campo do formulario.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

>7
PHP - ASP - JSP
Note que o contedo da varivel est no formato ur"en!ode. Os
formulrios html j enviam informaes automaticamente nesse
formato, e o PHP decodifica sem necessitar de tratamento.
2RLAn!ode
Este mtodo aplica regras de codificao de URL, incluindo
caracteres de escape.
Server.URLEncode(string)
H67LAn!ode
Este mtodo aplica codificao HTML.
Server.HTMLEncode(string)
, - $erifi!ando o 6ipo
Estas funes pr-definidas permitem determinar o subtipo de
uma variavel ou mesmo expresso.
$ar6/pe H%a"orI
Retorna o cdigo inteiro que corresponde ao seu tipo de
dados, de acordo com a tabela abaixo:
Cdigo Tipo de Dados
0 Empty
1 Null
2 Integer
3 Long
4 Single
5 Double
6 Currency
7 Date
8 String
9 Object
10 Error
11 Boolean
12 Variant
13 Objeto de Acesso de Dados
14 Decimal
17 Byte
8192 Array
6/pe-ame H%a"orI
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

>>
PHP - ASP - JSP
Retorna uma string com o nome correspondente ao seu tipo de
dados.
s-umeri! H%a"orI
Retorna um valor Booleano True se a expresso for um dado
numerico e False se for um outro tipo.
sArra/ H%a"orI
Retorna um valor Booleano True se a expresso for um Array e
False se for outro tipo.
s)ateH%a"orI
Retorna um valor Booleano True se a expresso for um dado do
tipo Date/Time e False se for outro tipo.
sAmpt/ H%a"orI
Retorna um valor Booleano True se a expresso for um valor
vazio ou variavel no inicializada e False em caso contrrio.
s-u"" H%a"orI
Retorna um valor Booleano True se a expressao no contiver um
tipo de dado valido e False em caso contrrio.
s<bNe!t H%a"orI
Retorna um valor Booleano True se a expresso for um Objeto e
False se for um outro tipo.
1 - )estruindo
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

>:
PHP - ASP - JSP
As vriveis pblicas(declaradas como Public) so
automaticamente destrudas, ou desalocadas na memria do sistema,
quando ocorre o trmino do script que as contm, enquanto as
Privadas(declaradas como Private) so destrudas aps a execuo
do procedimento que as contm.
3 - )efinindo Constantes
Para declarar constantes usa-se a palavra reservada Const,
conforme o exemplo:
Const Idade = 30 `Para numeros
Const Titulo = Aprendendo Constantes `Para Strings
Const Aniversario = #29-5-1982# `Para Datas
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

:<
PHP - ASP - JSP
P - C"asses Z <bNetos
1 - C"asses
Desde a verso 5.0 do VBScript, o ASP suporta o uso de
classes atravs da palavra reservada C"ass oferecendo todo o poder
da Orientao a Objeto:
Class myClass
`Define a variavel valor como acesso privado a classe
Private valor

`Define uma Sub Publica que atribui a varivel valor acima
Public Sub setaValor( ByVal novoValor )
valor = novoValor
End Function

`Define uma Function Publica que retorna o contedo da variavel valor
Public Function displayValor()
displayValor = "Valor: " & valor
End Function
End Class
' - <bNetos
A Classe a abstrao do objeto. Cada instancia da classe
ser chamada de objeto, ento, instanciar uma classe referir-se
a mesma. Cada objeto declarado com a palavra reservada -eF.
Dim objeto
Set objeto V New myClass
recomendvel criar as classes em arquivos separados e
instncia-las de dentro dos arquivos onde voc as usar,
implementando com isso o conceito de reusabilidade, que o
sentido maior da orientao a objetos, conforme o exemplo abaixo:
<!-- #include file="myClass.asp" -->'Arquivo que contem a classe
<%
Dim objeto
Set objeto = New myClass `Instancia a classe/Criando o objeto
objeto.setaValor 10 `Usando o mtodo setaValor do objeto
Response.Write(objeto.displayValor) `Usando o mtodo displayValor
set objeto = Nothing `Destruindo o objeto
%>
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

:1
PHP - ASP - JSP
Para usar a classe no necessrio saber como ela foi
implementada ou que tcnicas utiliza para oferecer as informaes
ou processamentos que utilizamos, basta saber quais os mtodos que
podem ser utilizados e quais parmetros devem ser passados para os
mesmos.
, - <bNetos mp"O!itos
<bNeto Re4uest
Este objeto responsvel pela obteno de informaes do
cliente.
Este objeto possui algumas colees, mtodos e propriedades
que nos possibilitam a manipulao de dados vindos do cliente:
Co"e+es
C"ientCertifi!ate
Mostra informaes sobre o certificado de segurana do
usurio e s pode ser usado em sites acessados com transmisso
segura de dados(https).
Response.write Data de expirao de seu certificado:
Response.write Request.ClientCertificate(ValidUntil)
A lista de parmetros possveis:
Subject Informaes sobre o certificado
Issuer Informaes sobre quem emite o certificado
ValidForm Data que o certificado tronou-se vlido.
ValidUntil Data de expirao do certificado
SerialNumber Nmero serial do certificado
Certificate Cdigo binrio completo
Flags Informaes Adicionais sobre o certificado
CooEies
Recupera informaes gravadas em cookies, que so usados para
persistncia de informaes do cliente.
Request.Cookies(USUARIO)(ID)
Onde USURIO o nome do cookie e ID o campo do cookie a
ser lido.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

:2
PHP - ASP - JSP
*orm
Recupera dados vindos de formulrios HTML com mtodos de
envio POST ou GET.
Request.Form(CIDADE)
Onde CIDADE o nome do campo do formulrio que est sendo
recuperado.
Quer/String
Recupera dados de strings URL ou de formulrios HTML com
metodos de envio GET.
Request.QueryString(CIDADE)
Onde CIDADE o nome do campo do formulrio ou do campo da
URL a ser recuperado.
Ser%er$ariab"es
Recupera dados do cabealho HTTP enviados tanto pelo cliente
quanto pelo servidor.
Request.ServerVariables(PARAMETRO)
Onde o PARAMETRO pode ser:
Path_info
Caminho da URL requisitada no navegador.
Server_Name
Nome do servidor da URL da pgina.
Remote_Addr
IP do host remoto solicitante.
Remote_Host
Host do solicitante.
Logon_User
Conta que o usurio est logado no Windows NT.
http_Ua_OS
Nome e verso do software do servidor.
Server_Port
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

:$
PHP - ASP - JSP
Nmero da porta na quala a requisio foi enviada.
Server_Protocol
Nome e verso do protocolo de informao.
Request_Addr
IP do host remoto que responde ao solicitante.
Request_Method
Mtodo utlizado na requisio(GET ou POST).
Propriedades
6ota"B/tes
Recupera o numero de bytes relacionado a solicitao atual.
Request.TotalBytes()
7&todos
Binar/Read
Contedo completo da solicitao do cliente ao servidor.
Request.BinaryRead();
<bNeto Response
Este objeto responsvel pelo controle dos dados que sero
enviados para o cliente.
Este objeto possui uma coleo que nos possibilita a criao
de cookies no cliente:
Co"e+es
CooEies
Os Cookies so pequenos arquivo que so gravados no cliente
para persistncia de dados.
Os cookies so de dois tipos:
Cooies Permanentes
Duram at a data determinada para sua expirao.
Cooies de Sess"o
Duram enquanto o navegador estiver aberto.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

:&
PHP - ASP - JSP
Response.Cookies(USUARIO)(NOME)
Onde USURIO o nome do arquivo a ser criado e NOME o
campo do cookie.
Propriedades
A.pires
Permite especificar em minutos o tempo que durar o cookie,
sendo que se este no for estipulado, o cookie deixar de existir
assim que o navegador for encerrado.
Response.Cookies.Expires = 10
A.piresAbso"ute
Permite especificar a data e hora absoluta que o cookie
expirar.
Response.Cookies.ExpiresAbsolute = December 18, 2003 8:00:00
Status
Permite especificar o valor do status e a mensagem que
enviada ao navegador nos cabealhos http que indicam o resultado
processamento das requisies.
Response.Status = 404 Page Not Found
Content6/pe
Permite especificar o tipo de contedo que dever ser enviado
como resposta ao cliente.
Response.ContentType = text/html
Buffer
Permite especificar a forma como sera enviado ao navegador o
conteudo gerado pelo seu script.
Response.Buffer = True
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

:*
PHP - ASP - JSP
Onde True significa que o servidor somente enviar
mensagens ao cliente aps todo o script ASP ter sido processado.
importante que este comando seja escrito sempre antes de qualquer
tag HTML e/ou qualquer sada gerada por Response.Write.
False o valor padro deste atributo.
7&todos
=rite
Este o mtodo utilizado para o envio de textos ao cliente.
Response.Write Este meu texto.
Redire!t
Este mtodo permite redirecionar o cliente para outra URL.
Response.Redirect http://www.naredemundial.com.br
importante que este comando seja escrito sempre antes de
qualquer tag HTML e/ou qualquer sada gerada por Response.Write.
AddHeader
Permite criar um cabealho personalizado usando valores
especificados.
Response.AddHeader nome, contedo
Onde nome a varivel que ser usada e contedo o
contedo que ser gravado na variavel.
C"ear
Permite apagar o contedo do Buffer da pgina se este foi
definido cmo true.
Response.Clear
And
Permite encerrar o processamento do script da pgina
devolvendo o contedo criado.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

:-
PHP - ASP - JSP
Response.End
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

:7
PHP - ASP - JSP
Y - Ban!os de )ados
o ASP acessa bancos de dados atravs da tecnologia chamada de
A)<, ActiveX Data Objects, que atravs do <LA)B fornece provedores
que permitem o acesso a diversas fontes de dados, inclusive por
<)BC, sendo que no caso de no existir um provedor <LA)B
especfico, para sua base de dados, ainda possvel atravs do
<)BC, obter um driver que fornea o acesso esta base de dados.
Com isso, na maioria das vezes ser possvel acessar os
vrios tipos de base de dados tanto atravs de <LA)B quanto
atravs de <)BC, sendo que o ideal usar a primeira visto que,
atravs de <)BC ocorrer sempre uma perda de performance.
Em termos de cdigo de programao, a diferena entre <)BC E
<LA)B apenas no mtodo de conexo como veremos a seguir, pois
para realizar os SELECTS os mtodos no mudam.
Para acessar arquivos do A!!ess, alm de <)BC, tambm
possivel usar o 7i!rosoft ;et, que um driver especfico para
este fim0
1 - 7/SQL
O ASP no possui um provedor de acesso direto para as bases
de dados MySQL. A maneira de solucionar isto, acess-lo atravs
de uma fonte de dados ODBC, pois para esta existe um driver
chamado MySQL Connector que pode ser baixado em:
http://www.mysql.com/downloads/api-myodbc-3.51.html
' - 7i!rosoft SQL Ser%er
Cone!tando
<LA )B
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

:>
PHP - ASP - JSP
Set db = Server.CreateObject("ADODB.Connection")
db.Open "Provider=SQLOLEDB; Data Source=SERVER; Initial Catalog=database; User
ID=username; Password=password"
<)BC
Set db = Server.CreateObject("ADODB.Connection")
db.Open "DSN=mydsn;UID=username;PWD=password"
Se"e!ionando dados
set rs = db.execute("SELECT * FROM MyTable")
rs.MoveFirst
Do Until rs.EOF
Response.Write rs("NAME")
rs.MoveNext
Loop
nserindo8Atua"i#ando8Apagando
sql = delete from clientes
db.execute(sql)
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

::
PHP - ASP - JSP
1\ - CooEies
Os cookies so usados para identificar um usuario. O cookie
um pequeno arquivo que o servidor grava no computador do usurio.
Cada vez que o mesmo computador requisita uma pagina, o browser
envia o cookie tambm. Com ASP, podemos gravar e recuperar dados
de cookies.
1 - Criando
O comando Response0CooEies usado para criar cookies, sendo
que este comando deve vir antes de qualquer tag HTML.
<%
Response.Cookies("name") = "Joo"
%>
possivel setar as propriedades de um cookie tambm, como
por exemplo a data que o mesmo expirar.
<%
Response.Cookies("nome") = "Joo"
Response.Cookies("nome").Expires = #May 10,2002#
%>
' - Re!uperando informa+es
O comando Re4uest0CooEies usado para recuperar informaes
de cookies.
<%
nome = Request.Cookies("nome")
response.write("Nome=" & nome)
%>
, - CooEies !om !Ba%es
Quando um cookie contiver uma coleo de multiplos valores,
podemos dizer que o Cookie possui chaves.
<%
Response.Cookies("usuario")("nome") = "Joo"
Response.Cookies("usuario ")("sobrenome")="da Silva"
Response.Cookies("usuario ")("pais")="Brasil"
Response.Cookies("usuario ")("idade")="25"
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1<<
PHP - ASP - JSP
%>
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1<1
PHP - ASP - JSP
11 - 7anipu"ao de Ar4ui%os
Para manipular arquivos, pastas e drives o ASP utliza o *i"e
S/stem <bNe!t(FSO) que fornece todos os mtodos necessrios:
CopyFile copiar arquivos.
CopyFolder copiar pastas.
CreateFolder criar pastas.
CreateTextFile criar arquivos texto.
DeleteFile deletar arquivos.
DeleteFolder deletar pastas.
DriveExists testar se drive existe.
FileExists testar se arquivo existe.
FolderExists testar se pasta existe.
GetAbsolutePathName retornar o caminho completo.
GetDrive retornar o drive.
GetDriveName retornar o nome do drive.
GetFile retornar o arquivo.
GetFileName retornar o nome do arquivo.
GetFolder retornar o folder.
GetParentFolderName retornar o nome do folder pai.
GetTempName criar e retornar o nome de um arquivo.
MoveFile mover arquivos.
MoveFolder mover pastas.
OpenTextFile abrir um arquivo texto existente.
1 - Copiando
dim fs
set fs=Server.CreateObject("Scripting.FileSystemObject")
fs.CopyFile "c:\documentos\web\*.htm","c:\web\"
set fs=nothing
' - $erifi!ando 6amanBo
Dim ObjFso, ObjArq
Set ObjFso = Server.CreateObject("Scripting.FileSystemObject")
Set ObjArq = ObjFso.GetFile(Server.MapPath("teste.asp"))
Response.Write "Tamanho do arquivo: " & ObjArq.Size
Set ObjFso = nothing
Set ObjArq = nothing
, - $erifi!ando se e.iste
dim fs
set fs=Server.CreateObject("Scripting.FileSystemObject")
if fs.FileExists("c:\documentos\teste.asp")=true then
response.write("File c:\documentos\teste.asp existe!")
else
response.write("File c:\documentos\teste.asp no existe!")
end if
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1<2
PHP - ASP - JSP
set fs=nothing
1 - Abrindo Ar4ui%os
Leitura
Const openForReading = 1
Const openForWriting = 2
Const openForAppending = 8

)im fso, f, txtStream
)im fileName, strText

fileName = Server.Mappath("piadas.txt")
Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFile(fileName)
Set txtStream = f.OpenAsTextStream(openForReading)
)o =Bi"e -ot txtStream.AtEndOfStream
strText = txtStream.ReadLine
Response.Write strText & "<br>"
Loop
txtStream.Close
Set txtStream = -otBing
Set f = -otBing
Set fso = -otBing
As!rita
)im fso
)im txtStream, fileName
fileName = Server.Mappath("junk.txt")

Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set txtStream = fso.CreateTextFile(fileName, 6rue)
' Escrevendo no arquivo
txtStream.WriteLine "First line in the text file."
txtStream.WriteBlankLines 2
txtStream.WriteLine "Line after two blank lines."
txtStream.Close
Set txtStream = -otBing
Set fso = -otBing
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1<$
PHP - ASP - JSP
12 - Amai"
Para utilizarmos este recurso, em ASP, necessrio a
utlizao de componentes de terceiros instalados no servidor web,
sendo que os mais conhecidos e/ou utilizados so o Asp7ai" e o
C)onts.
1 - Asp7ai"
O exemplo abaixo serve como referncia para a utilizao
padro do componente AspMail:
<%
Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
Mailer.FromName = "Joo da Silva"
Na linha acima vai o nome do remetente.
Mailer.FromAddress = "eu@dominio.com.br"
Na linha acima vai o endereo de email do remetente.
Mailer.RemoteHost = "servidor smtp"
Aqui vai o nome do seu servidor SMTP, normalmente fornecido
pelo administrador de sua rede ou provedor de acesso. Caso o nome
do servidor estiver errado nada funcionar.
Mailer.AddRecipient "Jos da Silva", "joao@provedor.com.br"
Aqui vai o Nome e Email do destinatrio do email.
Mailer.ContentType = "text/html
Na linha acima vai configurado o formato que ser enviado
o email, pode ser HTML ou TEXTO.
Mailer.Subject = "Seu pedido foi recebido"
Aqui vai o Assunto do Email.
Mailer.BodyText = "Prezado Jos, este um teste."
Aqui o conteudo, propriamente dito do email ou seja, o
texto do mesmo.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1<&
PHP - ASP - JSP
If Mailer.SendMail Then
Response.Write "Mensagem enviada com sucesso"
Else
Response.Write "Erro " & Mailer.Response
End If
Set Mailer = Nothing
%>
' - C)<-6S
O exemplo abaixo serve como referncia para a utilizao
padro do componente CDONTS:
<%
Set Mailer = CreateObject("CDONTS.NewMail")
Mailer.From = "eu@dominio.com.br"
Na linha acima vai o email do remetente.
Mailer.To = "conta@destinatario.com.br"
Aqui vai o Email do destinatrio.
Mailer.BodyFormat = 1
Mailer.MailFormat = cdoMailFormatText
Na linha acima vai configurado o formato que ser enviado o
email, pode ser HTML ou TEXTO.
Mailer.Subject = "Assunto do E-mail"
Aqui vai o Assunto do Email.
Mailer.Body = "Corpo da Mensagem"
Aqui o conteudo, propriamente dito do email ou seja, o
texto do mesmo.
Mailer.Send
Set Mailer = Nothing
%>
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1<*
PHP - ASP - JSP
1, - ASP Z ;a%a
Atravs do ASP tambm podemos acessar classes Java e
aproveitar suas caracteristicas.
Para acessar classes Java o procedimento bem semelhante
como fariamos para instanciar objetos nativos.
<%
`Instanciando uma classe Java que est num arquivo chamado noticias.class
set javaObject = GetObject("java:noticias")
`Lendo uma funo vinda da classe Java
resultado = javaObject.selectNoticias()
`Imprimindo o contedo recebido da classe Java
Response.Write(resultado)
set javaObject = nothing
%>
Para usar este recurso preciso preparar o ambiente Java/ASP.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1<-
PHP - ASP - JSP
11 - Sessions
Em ASP, o objeto Session usado para armazenar informaes
sobre a sesso do usurio. As vriaveis armazenadas no Objeto
Session mantem informaes sobre um usurio e a torna disponvel
para todas pginas de uma aplicao.
1 - < <bNeto Session
O ASP cria um novo Objeto Session para cada novo usurio e
destroi o respectivo objeto quando a sesso termina.
' - Quando a sesso !omeaC
A sesso comear quando:
3. Quando um novo usurio requisita um arquivo ASP e o
arquivo Global.asa incluir uma Procedure
Session_OnStart;
4. Quando um valor armazenado numa varivel Session;
5. Quando um novo usurio requisita um arquivo ASP e o
arquivo Global.asa incluir a tag <object> para
instanciar um objeto com o escopo de Sesso.
, - Quando a sesso terminaC
A sesso terminar se um usurio no requisitar ou atualizar
uma pagina da aplicao por um determinado perodo. Por padro,
este perodo de 20 minutos.
Se voc quiser alterar este intervalo de timeout, poder
fazer isso atravs da propriedade 6imeout..
<%
Session.Timeout = 5
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1<7
PHP - ASP - JSP
%>
Para encerrar uma sesso imediatamente ou forar que esta
termine, poder fazer isso atravs do mtodo Abandon.
<%
Session.Abandon
%>
O principal problema com sesses saber quando elas devem
ser encerradas. No sabemos se a ultimas requisio do usuario foi
o final da sesso ou no. Sendo assim, no sabemos por quanto
tempo manter a sesso ativa. Mantendo a sesso ativa por um longo
tempo, esta estar consumindo recursos do servidor. Mas, se a
sesso for deleteda muito rapida corremos o risco de quando o
usuario retornar ele ter que comear tudo de novo. Encontrar o
6imeout adequado pode ser uma tarefa muito dificil.
1 - ?ra%ando e Re!uperando $ari%eis de Sesso
O mais importante sobre o objeto Session que podemos
armazenar variaveis nele.
No exemplo abaixo setamos a variavel de sesso usuario com
o nome Joo da Silva e idade para 30:
<%
Session("usuario") = "Joo da Silva"
Session("idade") = 30
%>
Quando temos valores armazenados em variaveis de sesso
podemos acessa-los de qualquer pgina da aplicao ASP.
<%
Response.Write(Bem vindo & Session("usuario"))
%>
3 - Remo%endo $ari%eis de Sesso
A coleo Contents contm todas as variaveis de sesso.
E possivel remover uma variavel de sesso com o mtodo Remo%e.
No exemplo abaixo removemos a variavel de sesso bebidas se
o valor da variavelo de sesso idade for menor que 18:
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1<>
PHP - ASP - JSP
<%
if Session.Contents("idade")< 18 then
Session.Contents.Remove("bebidas")
end if
%>
Para remover todas as variaveis de uma sesso use o mtodo
Remo%eA"":
<%
Session.Contents.RemoveAll()
%>
5 - A!essando toda !o"eo Contents
A coleo Contents possui todas variaveis de sesso. Podemos
fazer um "oop na coleo Contents e ver tudo que ela contm:
<%
Session("usuario") = "Joo da Silva"
Session("age") = 30
dim i
for each i in Session.Contents
Response.Write(i & "<br>")
next
%>
O resultado seria:
usuario
idade
Se voc no conhecer o nmero de itens da coleo Contents,
podemos usar a propriedade Count.
<%
dim i
dim j
j = Session.Contents.Count
Response.Write("Variveis de Sesso: " & j)
for i=1 to j
Response.Write(Session.Contents(i) & "<br>")
Next
%>
E o resultado seria:
Variaveis de Sesso: 2
Joo da Silva
30
: - A!essando a !o"eo Stati!<bNe!ts
Podemos fazer um "oop na coleo Stati!<bNe!ts para ver todos
os objetos armazenados no objeto Session.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1<:
PHP - ASP - JSP
<%
dim i
for each i in Session.StaticObjects
Response.Write(i & "<br>")
next
%>
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

11<
PHP - ASP - JSP
13 - n!"udes
Os includes em ASP funcionam da seguinte maneira:
<!--#include virtual="funcoes.asp"-->
ou
<!--#include file ="funcoes.asp"-->
Usa-se a palavra reservada %irtua" para indicar um arquivo a
ser incluido, cujo caminho inicie por um diretorio virtual do
servidor.
<!-- #include virtual ="/mensagens/header.asp" -->
Usa-se a palavra reservada fi"e para indicar um arquivo a ser
incluido, cujo caminho seja relativo.
<!-- #include file ="mensagens\header.asp" -->
Usa-se a palavra reservada fi"e com a sintaxe (..\) para
incluir um arquivo de uma pasta localizada em nvel superior ao
mesmo.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

111
PHP - ASP - JSP
15 ( 6ratamento de Arros
Os tratamentos de erros so muito importantes para que
evitemos que o usurio receba mensagens indesejveis ou confusas.
1 - ARR
No ASP existe um objeto interno utilizado para indicar
situaes de erro em tempo de interpretao: o objeto ARR. O
objeto possui duas propriedades.
Description Contm a mensagem original do erro
Number Contm o nmero associado ao erro
Quando no fazemos uso desse objeto, os usurios do nosso
site podem receber mensagens de erro indecifrveis. A idia
ento escrever um cdigo capaz de detectar os erros e enviar
mensagens amigveis aos usurios.
Para usar este objeto devemos adicionar o seguinte comando no
incio do nosso script: <- ARR<R RAS27A -A_60
Esse comando informar ao ASP que, caso ocorra algum erro na
interpretao de algum comando do script, deve-se descartar esse
comando, atualizar o objeto ARR e executar a prxima linha.
Basta agora escrever cdigo em qualquer lugar do script para
verificar a ocorrncia do erro para posterior tratamento.
<HTML>
<HEAD><TITLE>Curso de ASP</TITLE></HEAD>
<BODY>
<% On Error Resume Next
Dim i
For i=10 to 0 step -1 %>
100 Dividido por <%=i%> = <%=(100/i)%><BR>
<% next
if err then %>
<B>OCORREU UM ERRO [<%=Err.Number%>] : <%=Err.Description%>
<%end if%>
</BODY>
</HTML>
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

112
PHP - ASP - JSP
' - ASPArror
O objeto ASPArror foi implementado no ASP 3.0 e somente est
disponivel no IIS5.
O objeto ASPArror usado para exibir informaes detalhadas
de quaiqyer erros que venham a ocorrer nos scripts de paginas
ASP. Este objeto criado quando Ser%er0?etLastArror chamado,
assim estas informaes podem somente ser acessadas usando o
mtodo Ser%er0?etLastArror.
<%
'Esta cria um erro
dim i for i=1 to 1 next
'Chama o mtodo GetLastError() para pegar o erro
dim objerr
set objerr=Server.GetLastError()
'A variavel objerr agora possui o objeto ASPError
response.write("ASP Code=" & objerr.ASPCode)
response.write("<br>")
response.write("Number=" & objerr.Number)
response.write("<br>")
response.write("Source=" & objerr.Source)
response.write("<br>")
response.write("Filename=" & objerr.File)
response.write("<br>")
response.write("LineNumber=" & objerr.Line)
%>
As propriedades do objeto ASPError esto descritas abaixo,
sendo que as mesmas so somente para leitura, pois estas no podem
ser alteradas.
ASPCode
Retorna o cdigo do erro gerado pelo IIS.
ASP)es!ription
Retorna a descrio detalhada do erro.
Categor/
Retorna a origem do erro.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

11$
PHP - ASP - JSP
Co"umn
Retorna a posio da coluna do arquivo em que foi gerado o
erro.
)es!ription
Retorna uma breve descrio do erro.
*i"e
Retorna o nome do arquivo ASP que gerou o erro.
Line
Retorna o nmero da linha onde o erro foi detectado.
-umber
Retorna cdigo de erro padro COM.
Sour!e
Retorna o cdigo-fonte da linha onde o erro ocorreu.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

11&
PHP - ASP - JSP
1: - ?"oba"0asa
O arquivo Global.asa um arquivo opcional, numa aplicao,
que pode conter declaraes de objetos, variveis e mtodos que
podem ser acessados por cada pgina de sua aplicao ASP.
O arquivo ?"oba"0asa deve ser gravado no diretrio root da
aplicao ASP, sendo que cada aplicao pode ter somente um
?"oba"0asa.
1 - A%entos
No Global.asa podemos dizer para a aplicao e objetos da
sesso o que fazer quando a aplicao e/ou sesso inicia e quando
ela termina. O cdigo para isto colocado em A%entos. O arquivo
Global.asa possui 4 tipos de eventos:
App"i!ationR<nStart
Este evento ocorre qaundo o primeiro usurio chama a primeira
pagina da aplicao ASP. Este evento ocorre aps o webserver ser
restartado ou depois do ?"oba"0asa ser editado. O evento
KSessionR<nStartK ocorre imediatamente aps este evento.
SessionR<nStart
Este evento ocorre a cada vez que um novo usurio requisita a
primeira pgina da aplicao ASP.
SessionR<nAnd
Este evento ocorre a cada vez que o usuario finaliza uma
sesso. O usurio termina a sesso apos a pagina deixar de ser
requisitada por um determinado tempo.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

11*
PHP - ASP - JSP
App"i!ationR<nAnd
Ese evento ocorre aps o ltimo usurio finalizar sua sesso.
Tipicamente, este evento ocorre quando o webserver para. Este
procedimento usado para limpar configuraes apos a aplicao
parar.
Abaixo um exemplo do arquivo Global.asa:
<script language="vbscript" runat="server">
sub Application_OnStart
''''some code
end sub
sub Application_OnEnd
''''some code
end sub
sub Session_OnStart
''''some code
end sub
sub Session_OnEnd
''''some code
end sub
</script>
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

11-
PHP - ASP - JSP
;SP
;a%a Ser%er pages
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

117
PHP - ASP - JSP
1 - ntroduo
1 - < 4ue &C
JSP uma combinao de HTML e Java dentro de uma mesma
pgina.
Atravs de Tags especiais podemos introduzir cdigo Java em
qualquer parte da pgina, e todo o cdigo, fora destas tags
especiais, HTML puro.
' - < 4ue pode ser feitoC
Basicamente, qualquer coisa pode ser feita com JSP desde
coletar dados de formulrios at gerar pginas dinmicas oriundas
de fontes de dados quaisquer.
1 ( )iagrama
Uma requisio para o JSP funciona assim:
1. O BroFser faz uma requisio ao Ser%idor =eb;
2. O Ser%idor =eb detecta que trata-se de uma pgina JSP
e encaminha a requisio a Engine ;SP;
3. A engine ;SP faz os processamentos necessrios,
inclusive acessos a bancos de dados e outros recursos
e devolve o HTML para o Ser%idor =eb;
4. O Ser%idor =eb devolve O HTML ao BroFser.
No diagrama abaixo voc visualiza estas etapas:
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

11>
PHP - ASP - JSP
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

11:
PHP - ASP - JSP
' - Sinta.e Bsi!a
1 ( )e"imitando o !9digo
O cdigo JSP, uma vez que, fica embutido em meio ao cdigo
HTML, para que o interpretador possa delimitar o que JSP e o que
HTML precisa de tags que indiquem isso:
<%
comandos
%>
' ( Separando nstru+es
Assim como na linguagem C, javascript e outras mais
conhecidas, necessrio utilizar o ponto-e-virgula para
sinalizar o fim de uma instruo ou comando.
, - -omes de $ari%eis
recomendvel seguir as seguintes regras na codificao de
programas em Java:
1. No colocar mais do que uma instruo por linha. Uma
instruo deve espalhar-se por mltiplas linhas para que
nenhuma linha ocupe mais do 70 caracteres por linha para
facilitar o entendimento.
2. Os nomes das classes devem comear por uma maiscula. As
letras seguintes devem ser minsculas, exceto no incio
de novas palavras. Evitar o uso de abreviaturas e
acrnimos.
3. Os nomes dos mtodos devem ser verbos e comear com
letras minsculas. As letras subsequentes devem tambm
ser minsculas, exceto se forem a primeira letra de
novas palavras.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

12<
PHP - ASP - JSP
4. Os nomes das variveis tambm devem comear com letras
minsculas. As letras subsequentes devem tambm ser
minsculas, exceto se forem a primeira letra de novas
palavras. Os nomes das variveis devem ser curtos mas
com maior significado possivel. Nomes de variveis com
uma letra devem ser evitados sempre.
5. Variveis declaradas como fina" e usadas como constantes
devem ter nomes constitudos por letras maisculas e
traos de unio.
6. Ser consistente na colocao das chavetas, identao, e
espaos. Em caso de dvida, siga o exemplo da
codificao disponibilizada ou consulte:
http://java.sun.com/docs/codeconv/.
7. Usar bons nomes para as variveis. Apesar desta
directiva ser subjectiva, evite ser muito verboso ou
sinttico.
8. No use mtodos marcados como "deprecated" na
documentao.
9. Remova o cdigo que est obsoleto e no usado, no se
limite simplemente a coment-lo ou mesmo apag-lo.
preciso ressaltar, tambm, que o Java faz distino entre
letras maisculas e minsculas, assim como no PHP.
Alm disso, existem algumas palavras reservadas como break e
class, por exemplo, que no podem ser usadas para nomear
variveis.
1 ( Comentrios
Existem dois tipos de comentrios em JSP:
Comentrios de uma "inBa
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

121
PHP - ASP - JSP
<% // comentrios %>
ou
<%-- comentrios --%>
Comentrios de mais de uma "inBa
<%
/*
comentrios
*/
%>
3 ( mprimindo !9digo H67L
<%
out.println(JSP imprimindo...);
%>
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

122
PHP - ASP - JSP
, - 6ipos
O JSP, como derivado do Java fortemente tipado, ou seja,
necessrio a declarao do tipo de dados que cada varivel
poder manipular. Os tipos suportados veremos logo abaixo.
As declaraes de variveis consistem de um tipo e um nome de
varivel, como segue o exemplo:
int idade; //Declara idade como inteiro.
String nome; //Declara nome como sequncia chars
boolean existe; //Declara existe como true ou false
possvel que seja feita a incializao do valor do varivel
no mesmo momento da declarao:
int idade = 10; //Declara idade e inicializa com valor 10
1 ( 6ipos Suportados
As variveis em Java podem ser definidas para aceitar tipos
de dados primitivos ou referncias a objetos.
6ipos de dados primiti%os
Este tipos so chamados primitivos porque no so objetos e
so nativos no Java.
Este tipos de dados primitivos so:
nteger
Armazena os nmeros inteiros e possui 4 subtipos, sendo que
destes o mais usado o int:
Byte Armazena valores entre -128 e +127
Short Armazena valores entre -32.768 e +32.767
int Armazena valores entre -2147483648 e +2147483647
long Armazena valores entre -9223372036854775808 e +9223372036854775807
*"oating Point
So os valores numricos com partes decimais e existem dois
subtipos:
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

12$
PHP - ASP - JSP
float Armazena valores numricos com 32 bits de preciso.
double Armazena valores numricos com 34 bits de preciso.
CBara!ter
Este o tipo usado para os caracteres individuais:
char Armazena caracteres.
6rue8*a"se
Boolean Armazena valores binaries true, false ou 0, 1.
Strings
Uma String uma sequncia de caracteres(char) e a classe
String representa todas as strings em Java.
String nome = Carlos Alberto;
Para comparar strings existem mtodos especiais:
String senha = teste;
if ( senha.equals(teste) ) {
out.println(OK...);
}
ou assim, considerando case sensitives:
String senha = teSte;
if ( senha.equalsIgnoreCase(teste) ) {
out.println(ERRO...);
}
Produzindo Strings a partir de primitivas:
String dez = String.valueOf(10);
Produzindo primitives a partir de Strings
Existe uma wraper class para cada tipo primitivo
String valor = 10;
int quantidade = Integer.parseInt(valor);
Arra/s
Armazenam colees de dados de um mesmo tipo sendo que o
tamanho do mesmo deve ser definido durante a sua criao e este
no poder mais ser alterado.
Quando se declara um array ele ter valores null at que o
mesmo seja inicializado usando a palavra reservada new.
Um array pode armazenar tanto primitivas quanto objetos.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

12&
PHP - ASP - JSP
Declarando um array de primitivas:
int[] cores;
int cores[];
Declarando um array de objetos apartir de um array de
primitivas:
int[] cores;
cores new int[4];
Inicializando:
cores[0] = vermelho;
ou ainda:
int[] cores = {vermelho,verde,azul};
$e!tor
Armazenam colees de dados de um mesmo tipo sendo que o
tamanho do mesmo, diferente dos arrays, pode ser definido e/ou
modificado a qualquer momento.
A classe Vector implementa um array redimensionavel de um
tipo de objeto.
Criando um vector vazio:
Vector alunos = new Vector();
Criando um vector com um tamanho inicial:
Vector alunos = new Vector(10);
Adicionando elementos no fim do vector:
String nome = Pedro;
alunos.addElement(nome);
Adicionando elementos numa posio determinada do vector:
alunos.insertElement(name,0);
Removendo elementos numa posio determinada do vector:
alunos.removeElement(0);
Acessando o primeiro elemento de um vector:
String aluno = (String)alunos.firstElement();
Acessando um elemento em uma determinada posio:
String aluno = (String)alunos.elementAt(2);
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

12*
PHP - ASP - JSP
Procura um objeto num vector:
int indice = alunos.indexOf(nome);
Pegando o tamanho de um vector:
int tamanho = alunos.size();
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

12-
PHP - ASP - JSP
1 - <peradores
1 - Aritm&ti!os
+ e - Operaes de adio e subtrao.
* e / Operadores de multiplicao e diviso.
% O mdulo da diviso.
' - Strings
+ Concatenao.
, - Atribuio
= Atribuio Simples
=+ Atribuio composta, atribuio e adio.
=- Atribuio composta, atribuio e subtrao.
=/ Atribuio composta, atribuio e diviso.
=* Atribuio composta, atribuio e multiplicao.
=% Atribuio composta, atribuio e mdulo da diviso.
1 - L9gi!os
&& E lgico.
|| OU lgico.
! NOT lgico.
3 - Comparao
== Igual
!= Diferente
< Menor que
> Maior que
<= Menor ou igual
>= maior ou igual
5 - A.presso Condi!iona"
Existe um operador de seleo que ternrio:
(expresso1)?(expresso2):(expresso3)
A primeira expresso avaliada, se for verdadeira
executada a expresso 2, seno executada a expresso 3.
: - n!remento e )e!remento
++ Incremento
-- Decremento
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

127
PHP - ASP - JSP
3 - Astruturas de Contro"e
1 ( B"o!os
Blocos em JSP 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.
' - Condi!ionais
*
Este o comando mais trivial dos condicionais. Ele testa uma
expresso e executa determinado comando se esta for verdadeira.
if ( expresso 1 ) {
comando;
}
Existe um complemento para o IF, no caso da expresso 1 no
for verdadeira, ele executa os comando do ELSE ento:
if ( expresso 1 ) {
comando;
} else {
comando alternativo;
}
S=6CH
Neste comando condicional, o teste (um tipo primitivo de
byte, char, short ou int) comparado com cada valor em questo.
Se um valor coincidente achado, a instruo (ou instrues)
depois do teste executada. Se nenhum valor for encontrado, a
instruo default executada.
switch(idade) {
case 15:
out.println(quinze);
case 20:
out.println(vinte);
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

12>
PHP - ASP - JSP
case 30:
out.println(trinte);
default:
out.println(no informado...);
}
6Ra^CA6CH
Este condicional tenta primeiro executar os comandos do bloco
TRY, se por algum motivo ocorre alguma falha ou erro ento
executado o comando do bloco CATCH.
Este condicional usado principalmente para a captura de
erros.
try {
commando 1;
} catch (Exception e) {
commando 2;
}
, - Repetio
=HLA
O loop while usado para repetir uma instruo ou bloco de
instrues at que uma condio particular seja verdadeira:
while(condio) {
comando;
}
)<000 =HLA
O loop DO...WHI! exatamente como o loop WHI!, exceto pelo
fato de que ele executar uma dada instruo ou bloco at que uma
condio seja falsa. A diferena principal entre os dois que os
loops while testam a condio antes de iniciar o loop, tornando
possvel que o corpo do loop nunca seja executado caso a condio
seja inicialmente falsa. Os loop do while executam pelo menos uma
vez antes de testar a condio:
do {
comando;
}
while(condio);
*<R
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

12:
PHP - ASP - JSP
O loop for, repete uma instruo ou um bloco de instrues
algum nmero de vezes at que a condio seja satisfeita.
Loops for so frequentemente usados para simples iteraes na
qual voc repete um bloco de instrues um certo nmero de vezes e
ento pra:
for(inicializao; teste ; incremento) {
comando;
}
Quebras de *"u.o
Em todos os loops (for, while e do), o loop termina quando a
condio que voc est testando atingida. Porm, em alguma
situao, voc desejar sair do loop antes do seu trmino normal.
Para isso, voc pode usar as palavras chaves break e continue.
BRAA`
A palavra reservada break pra imediatamente a execuo do
loop corrente. Se voc tiver loops aninhados dentro de loop mais
externo; caso contrrio, o programa simplesmente continua a
execuo da prxima instruo aps o loop.
C<-6-2A
A palavra reservada continue pra o loop e comea novamente
na prxima iterao.Continue til quando voc quer ter situaes
de casos especiais dentro de loop.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1$<
PHP - ASP - JSP
5 - *un+es
1 - )efinio
As funes em JSP, possuem algumas peculiaridades, ou seja,
elas funcionam de maneira idntica aos servlets.
A nomenclatura das funes obedecem as mesmas regras de
nomenclatura das variveis.
public String saudacao( String nome ){
return Seja bem vindo + nome;
}
' - Retorno
Todas as funes devem obrigatoriamente ser declaradas os
tipos de dados que retornaro, mesmo que elas no retornem nada, o
que no caso seria do tipo void.
' - Argumentos
Os argumentos que estas recebem tambm devem ser declarados
com seus respectivos tipos.
, - As!opo
As funes, junto a declarao de tipo tambm devem ter o
escopo de acesso das mesmas, ou seja, public ou private.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1$1
PHP - ASP - JSP
: - $ari%eis e Constantes
1 - )e!"arao
As variaveis em Java devem, obrigatoriamente, ser declaradas
antes de serem usadas.
A declarao feita com o tipo precedendo o nome da variavel
sendo que no momento de declarao tambm, poder ser feito a
inicilizao dos valores.
String nome;
int idade;
ou:
String nome = Pedro;
int idade = 25;
' - $ari%eis en%iadas pe"o -a%egador
Para interagir com a navegao do usurio, necessrio que o
JSP possa enviar e receber informaes para o browser.
A maneira de enviar informaes atravs de um comando de
impresso, como o out.println(). Para receber informaes vindas
do navegador, atravs de um link ou um formulrio html, o JSP
utiliza as informaes enviadas atravs da URL.
Se seu script JSP est localizado em
TBttpG88"o!a"Bost8teste0NspU e voc o chama com a url
BttpG88"o!a"Bost8teste0NspCnomeVpau"oU, voc poder recuperar
automaticamente o valor do parametro nome, da url, atravs do
comando:
request.getParameter(nome)
Note que o contedo da varivel est no formato ur"en!ode. Os
formulrios html j enviam informaes automaticamente nesse
formato, e o JSP decodifica sem necessitar de tratamento.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1$2
PHP - ASP - JSP
2RLAn!ode
Este mtodo aplica regras de codificao de URL, incluindo
caracteres de escape.
java.net.URLEncoder.encode(String)
H67LAn!ode
Este mtodo aplica codificao HTML.
java.net.URLDecoder.decode(String)
, - $ari%eis de Ambiente
A classe S/stem contm uma srie de propriedades que definem
os atributos do ambiente de trabalho.
Abaixo segue a lista deste atributos:
file.separator Separador de arquivos(por exemplo, "/")
java.class.path Caminho das classes Java
java.class.version verso da classe Java
java.home Diretrio de instalao do Java
java.vendor String Java vendor
java.vendor.url URL Java vendor
java.version Verso Java
line.separator Separador de linhas
os.arch Arquitetura do Sistema Operacional
os.name Nome do Sistema Operacional
os.version Verso do Sistema Operacional
path.separator Separador de Caminhos(por exemplo, ":")
user.dir Pasta de trabalho do usurio atual
user.home Pasta de trabalho home do usurio atual
user.name Nome do usurio
Os programas Java podem ler e gravar as propriedades do
sistema atravs dos mtodos da classe S/stem.
1 - )efinindo Constantes
Para declarar constantes em JSP usa-se o modificador fina"
precedendo o nome da mesma. Recomenda-se usar os nomes de
contantes em caixa alta para diferenciar das variaveis.
final int VALOR = 10;
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1$$
PHP - ASP - JSP
P - C"asses e <bNetos
1 ( C"asses
Uma classe um conjunto de variveis e funes relacionadas
a essas variveis. Uma vantagem da utilizao de programao
orientada a objetos poder usufruir do recurso de encapsulamento
de informao. Com o encapsulamento o usurio de uma classe no
precisa saber como ela implementada, bastando para a utilizao
conhecer a interface, ou seja, as funes disponveis.
Uma classe um tipo, e portanto no pode ser atribuda a uma
varivel. Para definir uma classe, deve-se utilizar a seguinte
sintaxe:
public class frutas {
private string cor;
public boolean ok;
}
1 - 2sando uma %aria%e" ou metodo de !"asse
Para referir-se a um metodo ou variavel de classe, junta-se o
nome da classe e o nome do mtodo ou varivel com o smbolo de
ponto (".").
' - 2sando uma %aria%e" ou metodo de inst@n!ia
Os mtodos e variveis que no so de classe so conhecidos
como mtodos e variveis de instncia.
Para referenciar os mtodos e s variveis de instancia, voc
deve referenciar os mtodos e variveis de objeto.
Voc referencia os mtodos e variveis de instancia
similarmente maneira que voc consulta aos mtodos e variveis
da classe.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1$&
PHP - ASP - JSP
Voc junta uma referncia do objeto e o nome do mtodo da
instancia ou da varivel junto com o ponto(".").
, - C"asses Abstratas
Uma classe abstrata e uma classe que no pode ser instanciada
diretamente sendo que os mtodos abstratos devem ser implementadas
em suas subclasses.
A classe abstrata define dados e comportamentos que sero
comuns a todos as subclasses que a herdarem.
Um mtodo abstrato definido em uma classe abstrata dever ser
implementado por todas as suas subclasses sendo que esta tcnica
permite que ao modelar um objeto o projetista possa definir
exatamente quais comportamentos sero implementados, somente que
sero implementados
1 - )efinindo !"asses abstratas
Usamos a palavra reservada abstract para declarar uma classe
como abstrata.
public abstract class frutas {
private string cor;
public boolean ok;
}
usando a classe abstrata acima:
public class pera extends frutas {
private string nome;
}
3 - )efinindo m&todos abstratos
Para que os mtodos de uma classe abstrata sejam
obrigatriamente implementados nas suas subclasses estes tambm
devem ser declarados usando a palavra reservada abstract, caso
contrrio suas subclasses no sero foradas a isto.
public abstract class frutas {
public abstract boolean ok();
}
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1$*
PHP - ASP - JSP
5 - nterfa!es
Uma interface a especificao de uma coleo de mtodos,
semelhante a uma classe abstrata. Adicionalmente ao que a classe
abstrata oferece, uma interface pode efetivamente implementar
mltipla herana. Uma classe poder implementar um nmero infinito
de interfaces mas poder implementar somente uma superclasse.
Numa interface todos seus mtodos sero abstratos e todas
suas variveis sero public static final.
: - )efinindo interfa!es
Usamos a palavra reservada interface para declarar uma
interface.
public interface Ordenavel {
int comparar(Object valor);
}
e utilizando:
public class numeros implements Ordenavel {
public int comparar(Object valor){
return valor;
}
}
' - tBis
Dentro do corpo do mtodo de um objeto voc pode apenas
consultar diretamente s variveis do proprio objeto.
Porm, s vezes voc necessita referenciar o nome da varivel
membro, se um dos argumentos ao mtodo tiver o mesmo nome.
Para o exemplo, o seguinte construtor para a classe de
HSBColor inicializa algumas de variveis do membro de um objeto de
acordo com os argumentos passados no construtor.
Cada argumento, do construtor, tem o mesmo nome que a
varivel do membro do objeto, cujo valor inicial o argumento
contm.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1$-
PHP - ASP - JSP
class HSBColor {
int hue, saturation, brightness;
HSBColor (int hue, int saturation, int brightness) {
this.hue = hue;
this.saturation = saturation;
this.brightness = brightness;
}
Os nomes do argumento fazem exame da precedncia e escondem
variveis do membro com o mesmo nome.
, ( SubC"asses
Uma classe pode ser uma extenso de outra. Isso significa que
ela herdar todas as variveis e funes da outra classe, e ainda
ter as que forem adicionadas. Em JSP no permitido utilizar
herana mltipla, ou seja, uma classe pode ser extenso de apenas
uma outra.
Para criar uma classe extendida, ou derivada de outra, deve
ser utilizada a palavra reservada e.tends:
public class Employee {
private String name;
private Date hireDate;
private Date dateOfBirth;
private String jobTitle;
private int grade;
}
public class Manager extends Employee {
private String departament;
private Employee [ ] subordinates;
}
Essa tcnica conhecida como herana e polimorfismo.
5 - Construtores
O mecanismo de inicializao do Java automtico, ou seja se
no incializarmos um construtor, o Java o inicializar
automaticamente.
Mas existem casos que se faz necessrio a declarao
explicita dos construtores.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1$7
PHP - ASP - JSP
Para escrever um mtodo que chama um construtor, voc deve
seguir duas regras:
1. O nome do mtodo precisa ser igual ao nome da classe.
2. No deve retornar um tipo declarado para o mtodo.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1$>
PHP - ASP - JSP
Y - Ban!os de )ados
JDBC a interface padro usada pelo Java para acessar bancos
de dados relacionais.
Cada fabricante de bancos de dados fornece um ou mais drivers
JDBC que devem ser instalados no servidor para que o Java possa
fazer o respectivo acesso. Um driver JDBC implementa todas
interfaces do pacote ;a%a0s4", fornecendo assim, todo cdigo
necessrio para acessar e manipular os dados.
1 - 7/SQL
Para acessar bases de dados MySQL voc deve baixar o driver
JDBC oficial para MySQL e instal-lo.
http://www.mysql.com/downloads/api-jdbc-stable.html
Cone!tando
Class.forName("com.mysql.jdbc.Driver").newInstance();
java.sql.Connection conn;
conn = DriverManager.getConnection(
"jdbc:mysql://localhost/test?user=blah&password=blah");
Se"e!ionando dados
String sql = select * from clientes;
Statement stmt = conn.createStatement();
ResultSet rset = stmt.executeQuery(sql);
nserindo8Atua"i#ando8Apagando
String sql = delete from clientes;
Statement stmt = conn.createStatement();
int linhas = stmt.executeUpdate(sql);
' - <)BC
Atravs de ODBC possivel acessar vrios bancos de dados que
possam no existir drivers para o Java. Alguns tipos de dados que
podemos acessar atravs do ODBC Access, arquivos texto, excel,
mssql e outros.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1$:
PHP - ASP - JSP
Para usar este recurso o Java possui nativamente um driver
chamado de ponte JDBC-ODBC.
Cone!tando
Connection conn = null;
try {
Driver d = (Driver)Class.forName
("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
String URL = "jdbc:odbc:" + db;
conn = DriverManager.getConnection(URL, user, passw);
} catch (Exception e) {
e.printStackTrace();
}
Se"e!ionando dados
String sql = select * from clientes;
Statement stmt = conn.createStatement();
ResultSet rset = stmt.executeQuery(sql);
nserindo8Atua"i#ando8Apagando
String sql = delete from clientes;
Statement stmt = conn.createStatement();
int linhas = stmt.executeUpdate(sql);
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1&<
PHP - ASP - JSP
1\ ( Headers
Os comandos que enviam cabealhos de HTML para o cliente so
implementados pelo objeto response, alguns deles so:
response.addHeader(tipo de cabealho);
Alguns exemplos de utilizaes deste comando:
response.sendRedire!t(http://www.naredemundial.com.br);
O comando acima direciona o usuario para a URL indicada.
response.addHeader("Pragma", "no-cache");
response.addHeader("Cache-Control", "no-store");
O comando acima define a expirao da pgina.
Estes so somente os mais utilizados e para obter uma lista
completa dos headers H66P possveis, visite o seguinte endereo na
web:
http://www.w3.org/Protocols/rfc2068/rfc2068
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1&1
PHP - ASP - JSP
11 - CooEies
Cookies so pequenos arquivos gravados no cliente por um
determinado site, sendo que, somente este poder recuperar as
informaes do mesmo.
Este recurso muito til para que determinadas informaes
sejam fornecidas pelo usurio apenas uma vez. Exemplos de
utilizao de cookies so os sites que informam a quantidade de
vezes que voc j visitou, ou alguma informao fornecida numa
visita anterior.
1 ( Criando
Este mtodo cria o cookie.
Cookie c = new cookie( nome, valor);
Este mtodo configura a idade mxima para o cookie. Nesse
exemplo, o cookie que existe por 120 segundos(2 minutos). O
argumento para set7a.Age um valor inteiro. Isso permite que um
cookie tenha uma idade mxima de at 2.147.483.647 segundos (ou
aproximadamente 24.855 dias).
c.setMaxAge( 120 );
Este mtodo adiciona o cookie resposta para o cliente.
As informaes de cabealho sempre so fornecidas primeiro ao
cliente, ento os cookies devem ser adicionados ao response com
add"ookie antes de quaisquer outras informaes. Depois que o
cookie adicionado, o servlet envia um documento HTML para o
cliente.
response.addCookie( c );
1 - 7&todos
setCommentH String I
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1&2
PHP - ASP - JSP
O comentrio que descreve o propsito do cookie que
apresentado pelo navegador para o usurio (alguns navegadores
permitem que o usurio aceite cookies selecionando individualmente
cada cookie).
set)omainH String I
Este mtodo determina quais servidores podem receber o
cookie. Por default os cookies so enviados para o servidor que
originalmente enviou o cookie para o cliente. O domnio
especificado na forma .nome.com (onde nome o nome do servidor,
por exemplo: .sun.com), indicando que todos os servidores com
finais .nome.com pode receber este cookie.
set7a.AgeH int I
Configura a idade mxima do cookie em segundos.
setPatBH String I
Configura o URL - alvo indicando os diretrios no servidor
que levam os servios que podem receber este cookie.
setSe!ureH boo"ean I
Um valor true indica que o cookie deve ser enviado apenas
utilizando um protocolo seguro.
set$a"ueH String I
Configura o valor de um cookie.
set$ersionH int I
Configura o protocolo de cookie para esse cookie.
' - Re!uperando informa+es
recupera os cookies do cliente utilizando o mtodo get"ookies
de HttpSer%"etRe4uest, que retorna um array de "ookies.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1&$
PHP - ASP - JSP
Quando uma operao GET ou POST realizada para invocar o
JSP, os cookies associados a este servidor so automaticamente
retornados para o JSP.
Cookies = request.getCookies();
Vrios mtodos de Cookie so fornecidos para manipular os
membros de um Cookie. Alguns destes mtodos esto listados no
quadro a seguir:
1 - 7&todos
getCommentHI
Retorna um String descrevendo o propsito do cookie (null se
nenhum comentrio foi configurado com setComment)
get)omainHI
Retorna um String contendo o domnio do cookie. Isso
determina quais servidores podem receber o cookie. Por default, os
cookies so enviados para o servidor que originalmente enviou o
cookie para o cliente.
get7a.AgeHI
Retorna um int representando a idade mxima do cookie em
segundos.
get-ameHI
Retorna um String contendo o nome do cookie como configurado
pelo construtor.
getPatBHI
Retorna um String contendo o prefixo da URL para o cookie. Os
cookies podem ser destinados para URLs especficos que incluem
diretrios no servidor da Web. Por default, um cookie retornado
para servios que operam no mesmo diretrio que o servio que
enviou o cookie ou um subdiretrio desse diretrio.
getSe!ureHI
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1&&
PHP - ASP - JSP
Retorna um valor boolean indicando se o cookie deve ser
transmitido utilizando um protocolo seguro (true).
get$a"ueHI
Retorna um String contendo o valor do cookie como configurado
com setValue ou com o construtor.
get$ersionHI
Retorna um int contendo a verso do protocolo de cookie
utilizada para criar o cookie. Atualmente os cookies esto
sofrendo padronizao. Um valor 0 (por default) indica o protocolo
original de cookie como definido pelo Netscape.Um valor 1 indica a
verso que atualmente est sendo padronizada.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1&*
PHP - ASP - JSP
1' - 7anipu"ao de Ar4ui%os
1 ( Copiando
public boolean copyFile(String inFile, String outFile) {
InputStream is = null;
OutputStream os = null;
byte[] buffer;
boolean success = true;
try {
is = new FileInputStream(inFile);
os = new FileOutputStream(outFile);
buffer = new byte[is.available()];
is.read(buffer);
os.write(buffer);
} catch (IOException e) {
success = false;
} catch (OutOfMemoryError e) {
success = false;
} finally {
try {
if (is != null) {
is.close();
}
if (os != null) {
os.close();
}
} catch (IOException e) {}
}
return success;
}
' - $erifi!ando 6amanBo
File file = new File(#meu$ar%ui&o.t't();
long length = file.length();
, - $erifi!ando se e.iste
boolean exists = (new File()meu$ar%ui&o.t't))).exists();
if (exists) {
out.println(Arquivo existe!);
} else {
out.println(Arquivo no existe!);
}
1 - Abrindo Ar4ui%os
Leitura
String arquivo = "c:\clientes\cidades.txt";
File Arquivo = new File(arquivo);
if (Arquivo.exists()) {
String c;
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1&-
PHP - ASP - JSP
FileReader txt = new FileReader(arquivo);
BufferedReader textoTxt = new BufferedReader(txt);
while ( ( c = textoTxtTef.readLine() ) != null ){
out.println("CIDADE : " + c + "<br>");
}
txt.close();
}
%>
As!rita
try {
BufferedWriter out = new BufferedWriter(new FileWriter()ar%ui&o.t't)));
out.write()isto &ai dentro do ar%ui&o no&o*));
out.close();
} catch (IOException e) {
}
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1&7
PHP - ASP - JSP
1, ( Amai"
A manipulao de emails, com JSP, tambm no uma tarefa
muito simples, como acontece no PHP.
Mas, a funo abaixo desempenha bem essa funo, bastando
apenas configurar a linha que diz String mai"Ser%er, com o seu
servidor de envio de emails(smtp)0
public boolean enviarMail(String from, String to, String subject, String body) {
try {
String mailServer = "smtp.server.com";
Properties mailProps = new Properties();
mailProps.put("mail.smtp.host", mailServer);
Session mailSession = Session.getDefaultInstance(mailProps, null);
int toCount = 1;
InternetAddress[] toAddrs = new InternetAddress[toCount];
for (int i=0; i<toCount; ++i) {
toAddrs[i] = new InternetAddress (to);
}
InternetAddress fromAddr = new InternetAddress(from);
Message message = new MimeMessage(mailSession);
message.setFrom(fromAddr);
message.setRecipients(Message.RecipientType.TO, toAddrs);
message.setSubject(subject);
message.setContent(body, "text/plain");
Transport.send(message);
return true;
} catch (AddressException endereco) {
return false;
}
catch (MessagingException mex) {
return false;
}
}
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1&>
PHP - ASP - JSP
11 - ;SP Z ;a%aHSer%"ets e BeansI
O JSP pode acessar diretamente classes Java em forma de
servlets e/ou Beans.
Para exemplificar usaremos uma classe chamada getSour!e0!"ass
que implementa o recurso de ler arquivos H67L e devolver o cdigo-
fonte.
1 ( A C"asse
Este seria o cdigo-fonte da classe getSource.class.
GetSource.java:
import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;
import java.net.*;
import java.io.*;
import java.lang.*;
import javax.activation.*;
import java.lang.reflect.Array;
import java.lang.Class;
public class getSource {
public String get_Source (String pagina) {
DataInputStream dis;
String source = "";

try {
URL u = new URL (pagina);
dis = new DataInputStream
(u.openConnection().getInputStream());
String s;
while ( ( s = dis.readLine() ) != null ) {
source += s;
}
} catch (Exception e){
System.out.println(e);
}
return source;
}
}
Ela dever ser compilada e colocada no repositrio de
servlets e ou beans do seu servidor.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1&:
PHP - ASP - JSP
' ( < ;SP
Este seria o JSP que instncia a classe Java como Bean.
GetSource.jsp:
<html>
<body>
<%@ page import="getSource" %>
<jsp:useBean id="getSource" scope="session" class="getSource"/>
<%
try {
String pagina = "modelo.html";
String source_html = getSource.get_Source(pagina);
} catch (Exception e) {
out.println("Erro: " + e);
}
%>
</body>
</html>
, ( < H67L
Este seria o arquivo HTML que ser passado como parmetro
pelo JSP para que o Bean leia-o e devolva seu cdigo-fonte.
modelo.html:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Untitled</title>
</head>
<body>
Este meu arquivo de modelo...
</body>
</html>
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1*<
PHP - ASP - JSP
13 - Sessions
Podemos usar variveis de sesso e gerenci-las facilmente
com JSP. Sessions so semelhantes aos Cookies, porm, as Sessions
ficam gravadas no servidor e no no computador do usurio.
1 - 7&todos das Sess+es
getdHI
Retorna o valor do identificador nico da sesso.
put$a"ueHI
Permite adicionar objetos com seus respectivos nomes na
sesso (Certifique-se que o nome dado a um objeto nico, em
todos os servlets que compartilham esta sesso).
get$a"ueHI
Permite recuperar os objetos contidos na sesso.
is-eFHI
Retorna true toda vez que existe uma nova sesso. Uma sesso
considerada nova (new) , quando ela foi criada pelo servidor mas
o cliente ainda no tem conhecimento que ele foi associado a ela.
in%a"idateHI
Faz com que a sesso seja imediatamente invalidada. Todas
informaes contidas no objeto sero perdidas. E o objeto ser
removido.
getCreation6imeHI
Retorna o tempo em que o objeto foi criado.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1*1
PHP - ASP - JSP
getLastA!essed6imeHI
Retorna o tempo no qual ocorreu o ltimo pedido enviado pelo
cliente associado a sesso.
Cada um destes mtodos acima pode, em caso de sesso
invlida, chamar a +a&a.langIllegal,tate!'ception.
' - Como in%a"idar a Sesso
Uma sesso do usurio pode ser invalidada manualmente ou,
dependendo de onde o JSP seja executado, automaticamente.
Para que seja invalidada automaticamente uma sesso, utilize
o mtodo da sesso in&alidate. Algumas aplicaes tm um ponto
natural no qual se invalida a sesso.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1*2
PHP - ASP - JSP
15 ( n!"udes
Em JSP tambm podemos usufruir das vantagens de includar
arquivos em nosso scripts, sendo que isso pode ser feito de trs
maneiras:
<%@ include file="connectoracle.jsp" %>
ou assim:
<jsp:include page="ct_rs.jsp" flush="true"></jsp:include>
ou ainda assim, usando parmetros:
<jsp:include page="scripts/login.jsp">
<jsp:param name="username" value="jsmith" />
</jsp:include>
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1*$
PHP - ASP - JSP
1: ( 6ratamento de Arros
Em JSP existem basicamente duas maneiras de fazer o
tratamento dos erros que possam ocorrer no decorre de nossos
scripts.
1 ( )ireti%a Page
As pginas JSP fornecem um mecanismo elegante para a
manipulao de excees em tempo de execuo.
possivel criar sua prpria forma de tratamento de excees
dentro das pginas JSP, porm nem todas as situaes podem ser
previstas.
Ao fazer uso do atributo errorPage da diretiva page,
possvel transferir uma exceo no tratada para uma pgina de
erro JSP personalizada.
<%@ page isErrorPage="false" errorPage="meu_erro.jsp" %>
A linha acima informa ao JSP para transferir qualquer exceo
que no tenha sido tratada para a pgina JSP meuRerro0Nsp.
Para que isto funcione necessrio que a pgina meuRerro0Nsp
esteja com o parametro isArrorPage setado em true.
<%@ page isErrorPage="true" %>
' - A.!eptions
A classe de A.!eptions define condies de erro moderados que
seus programas podem encontrar.
Quando um erro acontece em seu programa, o cdigo que acha o
erro pode "disparar" uma exceo. Disparar uma exceo o
processo de sinalizar ao processo atual que um erro aconteceu.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1*&
PHP - ASP - JSP
Podemos capturar a excesso e quando possvel recuperar a
conduo normal rotinas.
1 - 7anipu"ao de A.!eptions
)e!"ara+es tr/ e !at!B
Uma maneira de manipular possveis erros, usando as
declaraes tr/ e !at!B.
A declarao tr/ indica a parte do cdigo onde poder ocorrer
uma e.!eption, sendo que para isso voc dever delimitar esta
parte do cdigo com o uso de chaves.
Na declarao !at!B voc coloca o cdigo a ser executado caso
venha a ocorrer uma e.!eption.
try {
// cdigo que pode ocasionar uma exception
} catch{
// tratamento do erro
}
)e!"arao fina""/
A declarao fina""/ utilizada para definir o bloco que ir
ser executado ocorrendo ou no uma e.!eption, isto, aps o uso da
declarao tr/ e !at!B.
try {
// cdigo que pode ocasionar uma exception
} catch{
// tratamento do erro
}
finally {
// cdigo
}
' - A.!eptions mais !omuns
Os tipos de excees mais comuns so as seguintes:
AritBmeti!A.!eption
Ocorre quando tenta-se dividir qualquer numero por zero.
int i = 12 / 0
-u""PointerA.!eption
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1**
PHP - ASP - JSP
Ocorre quando tenta-se utilizar um objeto que no foi
instanciado.
-egati%eArra/Si#eA.!eption
Ocorre quando atribuido um valor nulo para um array.
Arra/nde.<ut<fBoundsA.!eption
Ocorre quando tenta-se acessar um elemento do array que no
existe.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1*-
PHP - ASP - JSP
Ap"i!ao de A.emp"o
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1*7
PHP - ASP - JSP
Agenda
Para exemplificarmos a aplicao prtica do que foi abordado
neste livro, desenvolveremos um simples Sistema de Agenda composto
por 15 arquivos, descritos a seguir.
Como banco de dados usaremos uma fonte de dados ODBC que
estar acessando um arquivo do Microsoft Access com uma tabela
chamada Agenda, que tambm veremos0
1 ( Ar4ui%o Comum
Este o arquivo que ser usado como banco de dados pela
fonte de dados ODBC que usaremos.
1 ( agenda0mdb
Este o arquivo do Access que usaremos como bancos de dados,
convm lembrar que manipularemos os dados desta tabela atravs da
fonte de dados ODBC.
Campo 6ipoHtamanBoI
ID auto-numerao
NOME texto(100)
ENDERECO texto(100)
DDD texto(5)
FONE texto(20)
EMAIL texto(100)
OBSERVACOES texto(255)
DATA data/hora
' - 7enu
Este o arquivo com o menu principal de nossa agenda e deve
ser salvo como agenda.html, ele tambm ser includado em nossos
scripts.
Em PHP seria assim:
<table width="100%" border=0 bgcolor=White>
<tr align="center">
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1*>
PHP - ASP - JSP
<td width=77 bgcolor="#EEE5DE">
<a href="inserir.php">Inserir</a>
</td>
<td width=77 bgcolor="#EEE5DE">
<a href="buscar.php">Buscar</a>
</td>
<td width=77 bgcolor="#EEE5DE">
<a href="listar.php">Listar</a>
</td>
<td width=77 bgcolor="#EEE5DE">
<a href="index.php">Sair</a>
</td>
</tr>
</table>
Em ASP seria assim:
<table width="100%" border=0 bgcolor=White>
<tr align="center">
<td width=77 bgcolor="#EEE5DE">
<a href="inserir.asp">Inserir</a>
</td>
<td width=77 bgcolor="#EEE5DE">
<a href="buscar.asp">Buscar</a>
</td>
<td width=77 bgcolor="#EEE5DE">
<a href="listar.asp">Listar</a>
</td>
<td width=77 bgcolor="#EEE5DE">
<a href="index.asp">Sair</a>
</td>
</tr>
</table>
Em JSP seria assim:
<table width="100%" border=0 bgcolor=White>
<tr align="center">
<td width=77 bgcolor="#EEE5DE">
<a href="inserir.jsp">Inserir</a>
</td>
<td width=77 bgcolor="#EEE5DE">
<a href="buscar.jsp">Buscar</a>
</td>
<td width=77 bgcolor="#EEE5DE">
<a href="listar.jsp">Listar</a>
</td>
<td width=77 bgcolor="#EEE5DE">
<a href="index.jsp">Sair</a>
</td>
</tr>
</table>
, ( *un+es
Este o arquivo que usaremos para armazenar as variveis,
constantes e funes comuns aos demais scripts que por sua vez
ser includado nos mesmos.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1*:
PHP - ASP - JSP
funcoes.php:
<?
/*
Funo : Fornecer variveis, constantes e funes comuns
Desenvolvedor : Cerli Rocha
Data : 30/05/2003
Atualizao : 30/06/2003
*/
define("BANCO","AGENDA"); //Constante com o nome da base de dados
define("USUARIO","agenda"); //Constante com o nome do usurio da base de dados
define("SENHA","agenda"); //Constante com a senha do usurio da base de dados
//Funo que executa a conexo a base de dados
function conecta( $BANCO, $USER, $PASS ) {
global $con;
$con = @odbc_connect($BANCO,$USER,$PASS);
}
?>
funcoes.asp:
<%
`Funo : Fornecer variveis, constantes e funes comuns
`Desenvolvedor : Cerli Rocha
`Data : 30/05/2003
`Atualizao : 30/06/2003
Const BANCO = "AGENDA"
Const USUARIO = "agenda"
Const SENHA = "agenda"
Dim con
function conecta( BANCO, USUARIO, SENHA, byRef con )
Set con = Server.CreateObject("ADODB.Connection")
con.Open "DSN=" & BANCO & ";UID=" & USUARIO & ";PWD=" & SENHA
end function
%>
funcoes.jsp:
<%!
/*
Funo : Fornecer variveis, constantes e funes comuns
Desenvolvedor : Cerli Rocha
Data : 30/05/2003
Atualizao : 30/06/2003
*/
public final String USUARIO = "agenda";
public final String SENHA = "agenda";
public boolean autentica_usuario( String usuario, String senha ) {
boolean valor = false;


if ( ( usuario.equals(USUARIO) )&&( senha.equals(SENHA) ) ) {
valor = true;
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1-<
PHP - ASP - JSP
} else {
valor = false;
}
return valor;
}
Connection con = null;
%>
<%
String driverName = "sun.jdbc.odbc.JdbcOdbcDriver";
String serverURLBase = "jdbc:odbc:";
String dbName = "Agenda";
//Conecta
try {
Class.forName(driverName);
con = DriverManager.getConnection(serverURLBase+dbName);
} catch (Exception e){
}
//Fim do conecta
%>
1 - nde.
Este a tela inicial da nossa agenda, apenas exibe a tela
para login e envia para o script que faz a validao dos dados.
index.php:
<?
/*
Funo : Exibe a tela para login
Desenvolvedor : Cerli Rocha
Data : 30/05/2003
Atualizao: 30/06/2003
*/
session_start(); //inicializa a sesso
$_SESSION['USUARIO'] = NULL; //Limpa a sesso, caso exista
//Abaixo o HTML
?>
<html>
<head>
<title>:: Agenda PHP ::</title>
</head>
<body bgcolor="#778899">
<form name="form1" action="login.php" method=post>
<table width="400" border="0" align="center">
<tr>
<td bgcolor=white>
<table width="100%" border="0" align="center">
<tr>
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1-1
PHP - ASP - JSP
<td align=right colspan=2>.: <b>Bem Vindo. Por favor informe
seus dados</b> :.</td>
</tr>
<tr>
<td align=right width="30%"><b>Login</b>: &nbsp;</td>
<td><input name="LOGIN" type=text id="LOGIN"
style="width:80px;" value="" size=5></td>
</tr>
<tr>
</tr>
<td align=right width="30%"><b>Senha</b>: &nbsp;</td>
<td><input name="SENHA" type=password id="SENHA"
style="width:80px;" value="" size=5></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type=submit name=submit value="Acessar
&gt;&gt;"></td>
</tr>
</table>
</td>
</tr>
</table>
</form>
</body>
</html>
index.asp
<!-- #include file="funcoes.asp" -->
<%
`Funo : Exibe a tela para login
`Desenvolvedor : Cerli Rocha
`Data : 30/05/2003
`Atualizao: 30/06/2003
Session.Abandon
%>
<html>
<head>
<title>:: Agenda ASP ::</title>
</head>
<body bgcolor="#778899" >
<form name="form1" action="login.asp" method=post>
<table width="400" border="0" align="center">
<tr>
<td bgcolor=white>
<table width="100%" border="0" align="center">
<tr>
<td align=right colspan=2>.: <b>Bem Vindo. Por favor informe
seus dados</b> :.</td>
</tr>
<tr>
<td align=right width="30%"><b>Login</b>: &nbsp</td>
<td><input name="LOGIN" type=text id="LOGIN"
style="width:80px" value="" size=5></td>
</tr>
<tr>
</tr>
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1-2
PHP - ASP - JSP
<td align=right width="30%"><b>Senha</b>: &nbsp</td>
<td><input name="SENHA" type=password id="SENHA"
style="width:80px" value="" size=5></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type=submit name=submit value="Acessar
&gt&gt"></td>
</tr>
</table>
</td>
</tr>
</table>
</form>
</body>
</html>
index.jsp
<%@ page import = "java.lang.*,java.io.*,java.util.*,java.sql.*" %>
<%@ include file="funcoes.jsp" %>
<%
/*
Funo : Exibe a tela para login
Desenvolvedor : Cerli Rocha
Data : 30/05/2003
Atualizao: 30/06/2003
*/
String usuario = (String)session.getAttribute("USUARIO");
if ( ( usuario != null ) ) {
%>
<html>
<head>
<title>:: Agenda JSP ::</title>
</head>
<body bgcolor="#778899" >
<table border=0 align=center bgcolor=White width="700">
<tr>
<td valign=top width="100%" align=center>
<%@ include file="menu.html" %>
</td></tr>
<td valign=top>
<form name="form1" action="inserir_agenda.jsp" method=post>
<table width="100%" border="0" align="center">
<tr>
<td bgcolor=white> <table width="100%" border="0" align="center">
<tr>
<td align=right colspan=2>.: <b>Inserir Nomes
na Agenda</b> :.</td>
</tr>
<tr>
<td align=right width="30%"><b>Nome</b>: &nbsp;</td>
<td><input name="NOME" type=text id="NOME" value="" size=30
maxlength="50"></td>
</tr>
<tr> </tr>
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1-$
PHP - ASP - JSP
<td align=right width="30%"><b>Endere&ccedil;o</b>:
&nbsp;</td>
<td><input name="ENDERECO" type=text id="ENDERECO" value=""
size=30 maxlength="100"></td>
</tr>
<tr>
<td><b>Fone</b>: </td>
<td><input name="DDD" type=text id="DDD" value="" size=3
maxlength="3">
-
<input name="FONE" type=text id="FONE" value="" size=7
maxlength="10"></td>
</tr>
<tr>
<td><b>Email</b>: </td>
<td><input name="EMAIL" type=text id="EMAIL" value="" size=30
maxlength="50"></td>
</tr>
<tr>
<td><b>Observa&ccedil;&otilde;es</b>: </td>
<td><textarea name="OBSERVACOES" cols="22" rows="5"
id="OBSERVACOES"></textarea></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type=submit name=submit value="Gravar &gt;&gt;">
<input type=reset name=submit2 value="Limpar &gt;&gt;"></td>
</tr>
</table></td>
</tr>
</table>
</form></td>
</tr>
</table>
</body>
</html>
<%
} else {
response.sendRedirect("index.jsp");
}
%>
3 - Login
Este o script que autentica o usurio, ou seja, se o
usuario vlido ele abre realmente a Agenda, seno direciona para
a tela inicial(listar).
login.php:
<?
/*
Funo : Autentica o usuario
Desenvolvedor : Cerli Rocha
Data : 30/05/2003
Atualizao: 30/06/2003
*/
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1-&
PHP - ASP - JSP
session_start(); //inicializa a sesso
include("funcoes.php"); //inclui o arquivo de funes
//Funo que autentica o usuario
function autentica_usuario( $USUARIO, $SENHA ) {
global $con;
$valor = false;

//Compara o usuario e senha recebidos com as contantes definidas no
//funcoes.php
if ( ( $USUARIO == USUARIO )&&( $SENHA == SENHA ) ) {
$valor = true;
} else {
$valor = false;
}
return $valor; //Retorna o resultado
}
//Corpo Principal do Script
$login = trim($_POST['LOGIN']); //Recebe o login
$senha = trim($_POST['SENHA']); //recebe a senha
if ( ( $login!="" )&&( $login!=NULL ) ) { //Testa o login

//chama a funo autentica_usuario
if ( autentica_usuario($login,$senha) ) {
$_SESSION['USUARIO'] = $login; //Grava o login na sesso
header("location: listar.php"); //Direciona para a agenda
} else {
header("location: index.php"); //Direciona para a tela inicial
}

} else {
header("location: index.php"); //Direciona para a tela inicial
}
?>
login.asp
<!-- #include file="funcoes.asp" -->
<%
`Funo : Autentica o usuario
`Desenvolvedor : Cerli Rocha
`Data : 30/05/2003
`Atualizao: 30/06/2003
function autentica_usuario( LOGIN, PASS )
valor = false

if ( ( LOGIN = USUARIO )AND( PASS = SENHA ) ) then
valor = true
else
valor = false
end if

autentica_usuario = valor
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1-*
PHP - ASP - JSP
end function
'Corpo Principal do Script
login = Request.Form("LOGIN")
pass = Request.Form("SENHA")
if ( ( login <> "" )AND( NOT(isNull(login)) ) ) then
if ( autentica_usuario(login,pass) ) then
Session("USUARIO") = login
Response.Redirect("listar.asp")
else
Response.Redirect("index.asp")
end if

else
Response.Redirect("index.asp")
end if
%>
login.jsp
<%@ page import = "java.lang.*,java.io.*,java.util.*,java.sql.*" %>
<%@ include file="funcoes.jsp" %>
<%
/*
Funo : Autentica o usuario
Desenvolvedor : Cerli Rocha
Data : 30/05/2003
Atualizao: 30/06/2003
*/
//Corpo Principal do Script
String login = request.getParameter("LOGIN");
String senha = request.getParameter("SENHA");
if ( login != null ) {
if ( autentica_usuario(login,senha) ) {
session.setAttribute("USUARIO",login);
response.sendRedirect("listar.jsp");
} else {
response.sendRedirect("index.jsp");
}
} else {
response.sendRedirect("index.jsp");
}
%>
5 - Listar
Esta na verdade a tela principal de nossa aplicao, pois
ela listar todos os registros da nossa agenda, exibindo as opes
para inserir, buscar, editar, excluir e sair.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1--
PHP - ASP - JSP
listar.php:
<?
/*
Funo : Lista os nomes cadastrados na agenda
Desenvolvedor : Cerli Rocha
Data : 30/05/2003
Atualizao: 30/06/2003
*/
session_start(); //Inicializa a sesso
include("funcoes.php"); //Inclui o arquivo de funes
//Lista os nomes da agenda
function listar_agenda() {
global $con;
$valor = "";
$sql = "SELECT ID, NOME, ENDERECO, DDD, FONE, EMAIL, OBSERVACOES,
DATA FROM Agenda";
$result = odbc_exec( $con, $sql );
if (!$result) {
$valor = 0;
} else {
while( odbc_fetch_row( $result ) ) {
$valor .= "<tr>
<td class=\"default\"><a
ref=\"editar.php?ID=".odbc_result( $result, 1 )."\">Editar</a></td>
<td class=\"default\"><a
href=\"#\" onClick=\"window.open('detalhes.php?ID=".odbc_result( $result, 1 )
."','Detalhes','width=350,height=200')\">".odbc_result( $result, 2 )."</a></td>
<td class=\"default\"><a
href=\"#\" onClick=\"window.open('detalhes.php?ID=".odbc_result( $result, 1 )
."','Detalhes','width=350,height=200')\">".odbc_result( $result, 6 )."</a></td>
<td class=\"default\"><a
href=\"#\" onClick=\"window.open('detalhes.php?ID=".odbc_result( $result, 1 )
."','Detalhes','width=350,height=200')\">(".odbc_result( $result, 4 )
.")".odbc_result( $result, 5 )."</a></td>
<td class=\"default\"><a
href=\"#\" onClick=\"window.open('excluir.php?ID=".odbc_result( $result, 1 )
."','Detalhes','width=1,height=1')\">Excluir</a></td>
</tr>";
}
}
return $valor;
}
//Corpo principal do script
$usuario = trim($_SESSION['USUARIO']); //recbe os dados da sesso
if ( ( $usuario != "" )&&( $usuario != "" ) ) {//Testa o usurio
if ( !$con ) { //Testa se existe conexo
//Conecta ao banco
conecta(BANCO,USUARIO,SENHA);//Conectando ao banco
}
//Grava a saida da funo na variavel
$linhas = listar_agenda();
//Abaixo o HTML
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1-7
PHP - ASP - JSP
?>
<html>
<head>
<title>:: Agenda PHP ::</title>
</head>
<body bgcolor="#778899" >
<table border=0 align=center bgcolor=White width="700">
<tr>
<td valign=top width="100%" align=center>
<?
//Incluindo o Menu
include("menu.html");
?>
</td></tr>
<td valign=top>
<table cellspacing=1 cellpadding=1 width="100%" border=0
bgcolor=White>
<tr>
<td width="60" class="headers"><b><a href="#">Editar</a></b></td>
<td width="210" class="headers"><b><a href="#">Nome</a></b></td>
<td width="210" class="headers"><b><a href="#">Email</a></b></td>
<td width="100" class="headers"><b><a href="#">Fone</a></b></td>
<td width="60" class="headers"><b><a href="#">Excluir</a></b></td>
</tr>
<?=$linhas?>
</table>
</td>
</tr>
</table>
</body>
</html>
<?
} else {
//Direciona para a tela inicial
header("location: index.php");
}
?>
listar.asp:
<!-- #include file="funcoes.asp" -->
<%
`Funo : Lista os nomes cadastrados na agenda
`Desenvolvedor : Cerli Rocha
`Data : 30/05/2003
`Atualizao: 30/06/2003
function listar_agenda()
valor = ""
sql = "SELECT ID, NOME, ENDERECO, DDD, FONE, EMAIL, OBSERVACOES,
Data FROM Agenda"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, con
Do While Not rs.EOF
valor = valor & "<tr>" & _
"<td class=default><a
href=editar.asp?ID=" & rs(0) & ">Editar</a></td>" & _
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1->
PHP - ASP - JSP
"<td class=default><a href=#
onClick=window.open('detalhes.asp?ID=" & rs(0) &
"','Detalhes','width=350,height=200')>" & rs(1) & "</a></td>" & _
"<td class=default><a href=#
onClick=window.open('detalhes.asp?ID=" & rs(0) &
"','Detalhes','width=350,height=200')>" & rs(5) & "</a></td>" & _
"<td class=default><a href=#
onClick=window.open('detalhes.asp?ID=" & rs(0) &
"','Detalhes','width=350,height=200')>(" & rs(3) & ")" & rs(4) & "</a></td>" & _
"<td class=default><a href=#
onClick=window.open('excluir.asp?ID=" & rs(0) &
"','Detalhes','width=1,height=1')>Excluir</a></td>" & _
"</tr>"
rs.MoveNext
Loop
rs.Close
set rs = Nothing
listar_agenda = valor
end function
login = Session("USUARIO")
if ( ( login <> "" )AND( NOT(isNull(login)) ) ) then
if ( con = "" ) then
call conecta( BANCO, USUARIO, SENHA, con )
end if
linhas = listar_agenda()
%>
<html>
<head>
<title>:: Agenda ASP ::</title>
</head>
<body bgcolor="#778899" >
<table border=0 align=center bgcolor=White width="700">
<tr>
<td valign=top width="100%" align=center><!-- #include
file="menu.html" --></td></tr>
<td valign=top>
<table cellspacing=1 cellpadding=1 width="100%" border=0
bgcolor=White>
<tr>
<td width="60" class="headers"><b><a href="#">Editar</a></b></td>
<td width="210" class="headers"><b><a href="#">Nome</a></b></td>
<td width="210" class="headers"><b><a href="#">Email</a></b></td>
<td width="100" class="headers"><b><a href="#">Fone</a></b></td>
<td width="60" class="headers"><b><a href="#">Excluir</a></b></td>
</tr>
<%=linhas%>
</table>
</td>
</tr>
</table>
</body>
</html>
<%
else
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1-:
PHP - ASP - JSP
Response.Redirect("index.asp")
end if
%>
listar.jsp:
<%@ page import = "java.lang.*,java.io.*,java.util.*,java.sql.*" %>
<%@ include file="funcoes.jsp" %>
<%!
Funo : Lista os nomes cadastrados na agenda
Desenvolvedor : Cerli Rocha
Data : 30/05/2003
Atualizao: 30/06/2003
*/
public String listar_agenda() {
String valor = "";
String sql = "";

String id = "";
String nome = "";
String endereco = "";
String ddd = "";
String fone = "";
String email = "";
String observacoes = "";

Statement stmt;
ResultSet rs;
//Select
try {
sql = "SELECT ID, NOME, ENDERECO, DDD, FONE, EMAIL, OBSERVACOES,
DATA FROM Agenda";
stmt = con.createStatement();
stmt.execute(sql);
rs = stmt.getResultSet();
while(rs.next()) {
id = rs.getString(1);
nome = rs.getString(2);
endereco = rs.getString(3) ;
ddd = rs.getString(4);
fone = rs.getString(5);
email = rs.getString(6);
observacoes = rs.getString(7);
valor += "<tr>" +
"<td class=\"default\"><a
href=\"editar.jsp?ID=" + id + "\">Editar</a></td>" +
"<td class=\"default\"><a
href=\"#\" onClick=\"window.open('detalhes.jsp?ID=" + id +
"','Detalhes','width=350,height=200')\">" + nome + "</a></td>" +
"<td class=\"default\"><a
href=\"#\" onClick=\"window.open('detalhes.jsp?ID=" + id +
"','Detalhes','width=350,height=200')\">" + email + "</a></td>" +
"<td class=\"default\"><a
href=\"#\" onClick=\"window.open('detalhes.jsp?ID=" + id +
"','Detalhes','width=350,height=200')\">(" + ddd + ")" + fone + "</a></td>" +
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

17<
PHP - ASP - JSP
"<td class=\"default\"><a
href=\"#\" onClick=\"window.open('excluir.jsp?ID=" + id +
"','Detalhes','width=1,height=1')\">Excluir</a></td>" +
"</tr>";
}
stmt.close();
if (!con.isClosed()) {
con.close();
}
} catch (Exception e) {
try {
if (!con.isClosed()) {
}
} catch (Exception ex){
}
}
return valor;
}
%>
<%
String usuario = (String)session.getAttribute("USUARIO");
if ( ( usuario != null ) ) {
String linhas = listar_agenda();
%>
<html>
<head>
<title>:: Agenda JSP ::</title>
</head>
<body bgcolor="#778899" >
<table border=0 align=center bgcolor=White width="700">
<tr>
<td valign=top width="100%" align=center>
<%@ include file="menu.html" %>
</td></tr>
<td valign=top>
<table cellspacing=1 cellpadding=1 width="100%" border=0
bgcolor=White>
<tr>
<td width="60" class="headers"><b><a href="#">Editar</a></b></td>
<td width="210" class="headers"><b><a href="#">Nome</a></b></td>
<td width="210" class="headers"><b><a href="#">Email</a></b></td>
<td width="100" class="headers"><b><a href="#">Fone</a></b></td>
<td width="60" class="headers"><b><a href="#">Excluir</a></b></td>
</tr>
<%=linhas%>
</table>
</td>
</tr>
</table>
</body>
</html>
<%
} else {
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

171
PHP - ASP - JSP
response.sendRedirect("index.jsp");
}
%>
: - nserir
Esta tela monta o formulrio para inserir novos nomes na
agenda e envia para o script de inserir.
inserir.php
<?
/*
Funo : Monta a tela para inserir nomes na agenda
Desenvolvedor : Cerli Rocha
Data : 30/05/2003
Atualizao: 30/06/2003
*/
session_start(); //Inicializa a Sesso
include("funcoes.php"); //inclui o arquivo de funes
//Corpo principal do script
$usuario = trim($_SESSION['USUARIO']); //Recebe os valores da sesso
//Testa o usurio
if ( ( $usuario != "" )&&( $usuario != "" ) ) {
//Abaixo o HTML
?>
<html>
<head>
<title>:: Agenda PHP ::</title>
</head>
<body bgcolor="#778899" >
<table border=0 align=center bgcolor=White width="700">
<tr>
<td valign=top width="100%" align=center>
<?
include("menu.html");
?>
</td></tr>
<td valign=top>
<form name="form1" action="inserir_agenda.php" method=post>
<table width="100%" border="0" align="center">
<tr>
<td bgcolor=white> <table width="100%" border="0" align="center">
<tr>
<td align=right colspan=2>.: <b>Inserir Nomes
na Agenda</b> :.</td>
</tr>
<tr>
<td align=right width="30%"><b>Nome</b>: &nbsp;</td>
<td><input name="NOME" type=text id="NOME" value="" size=30
maxlength="50"></td>
</tr>
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

172
PHP - ASP - JSP
<tr> </tr>
<td align=right width="30%"><b>Endere&ccedil;o</b>:
&nbsp;</td>
<td><input name="ENDERECO" type=text id="ENDERECO" value=""
size=30 maxlength="100"></td>
</tr>
<tr>
<td><b>Fone</b>: </td>
<td><input name="DDD" type=text id="DDD" value="" size=3
maxlength="3">
-
<input name="FONE" type=text id="FONE" value="" size=7
maxlength="10"></td>
</tr>
<tr>
<td><b>Email</b>: </td>
<td><input name="EMAIL" type=text id="EMAIL" value="" size=30
maxlength="50"></td>
</tr>
<tr>
<td><b>Observa&ccedil;&otilde;es</b>: </td>
<td><textarea name="OBSERVACOES" cols="22" rows="5"
id="OBSERVACOES"></textarea></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type=submit name=submit value="Gravar &gt;&gt;">
<input type=reset name=submit2 value="Limpar &gt;&gt;"></td>
</tr>
</table></td>
</tr>
</table>
</form></td>
</tr>
</table>
</body>
</html>
<?
} else {
header("location: index.php");
}
?>
inserir.asp
<!-- #include file="funcoes.asp" -->
<%
`Funo : Monta a tela para inserir nomes na agenda
`Desenvolvedor : Cerli Rocha
`Data : 30/05/2003
`Atualizao: 30/06/2003
login = Session("USUARIO")
if ( ( login <> "" )AND( NOT(isNull(login)) ) ) then
%>
<html>
<head>
<title>:: Agenda ASP ::</title>
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

17$
PHP - ASP - JSP
</head>
<body bgcolor="#778899" >
<table border=0 align=center bgcolor=White width="700">
<tr>
<td valign=top width="100%" align=center><!-- #include
file="menu.html" --></td></tr>
<td valign=top>
<form name="form1" action="inserir_agenda.asp" method=post>
<table width="100%" border="0" align="center">
<tr>
<td bgcolor=white> <table width="100%" border="0" align="center">
<tr>
<td align=right colspan=2>.: <b>Inserir Nomes
na Agenda</b> :.</td>
</tr>
<tr>
<td align=right width="30%"><b>Nome</b>: &nbsp</td>
<td><input name="NOME" type=text id="NOME" value="" size=30
maxlength="50"></td>
</tr>
<tr> </tr>
<td align=right width="30%"><b>Endere&ccedilo</b>:
&nbsp</td>
<td><input name="ENDERECO" type=text id="ENDERECO" value=""
size=30 maxlength="100"></td>
</tr>
<tr>
<td><b>Fone</b>: </td>
<td><input name="DDD" type=text id="DDD" value="" size=3
maxlength="3">
-
<input name="FONE" type=text id="FONE" value="" size=7
maxlength="10"></td>
</tr>
<tr>
<td><b>Email</b>: </td>
<td><input name="EMAIL" type=text id="EMAIL" value="" size=30
maxlength="50"></td>
</tr>
<tr>
<td><b>Observa&ccedil&otildees</b>: </td>
<td><textarea name="OBSERVACOES" cols="22" rows="5"
id="OBSERVACOES"></textarea></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type=submit name=submit value="Gravar &gt&gt">
<input type=reset name=submit2 value="Limpar &gt&gt"></td>
</tr>
</table></td>
</tr>
</table>
</form></td>
</tr>
</table>
</body>
</html>
<% else
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

17&
PHP - ASP - JSP
Response.Redirect("index.asp")
end if
%>
inserir.jsp
<%@ page import = "java.lang.*,java.io.*,java.util.*,java.sql.*" %>
<%@ include file="funcoes.jsp" %>
<%
/*
Funo : Monta a tela para inserir nomes na agenda
Desenvolvedor : Cerli Rocha
Data : 30/05/2003
Atualizao: 30/06/2003
*/
String usuario = (String)session.getAttribute("USUARIO");
if ( ( usuario != null ) ) {
%>
<html>
<head>
<title>:: Agenda JSP ::</title>
<link rel="stylesheet" href="estilos.css" type="text/css">
</head>
<body bgcolor="#778899" text="#FFFFFF" link="#FFFFFF" vlink="#FFFFFF"
alink="#FFFFFF">
<table cellspacing=2 cellpadding=0 border=0 align=center bgcolor=White
width="700">
<tr>
<td valign=top width="100%" align=center>
<%@ include file="menu.html" %>
</td></tr>
<td valign=top>
<form name="form1" action="inserir_agenda.jsp" method=post>
<table width="100%" border="0" cellspacing="0" cellpadding="2"
align="center">
<tr>
<td bgcolor=white> <table width="100%" border="0" cellspacing="1"
cellpadding="1" align="center">
<tr>
<td align=right class="title" colspan=2>.: <b>Inserir Nomes
na Agenda</b> :.</td>
</tr>
<tr>
<td align=right class="right" width="30%"><b>Nome</b>:
&nbsp;</td>
<td class="default1"><input name="NOME" type=text
class="textbox" id="NOME" value="" size=30 maxlength="50"></td>
</tr>
<tr> </tr>
<td align=right class="right"
width="30%"><b>Endere&ccedil;o</b>:
&nbsp;</td>
<td class="default1"><input name="ENDERECO" type=text
class="textbox" id="ENDERECO" value="" size=30 maxlength="100"></td>
</tr>
<tr>
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

17*
PHP - ASP - JSP
<td class="right"><b>Fone</b>: </td>
<td class="default1"><input name="DDD" type=text
class="textbox" id="DDD" value="" size=3 maxlength="3">
-
<input name="FONE" type=text class="textbox" id="FONE"
value="" size=7 maxlength="10"></td>
</tr>
<tr>
<td class="right"><b>Email</b>: </td>
<td class="default1"><input name="EMAIL" type=text
class="textbox" id="EMAIL" value="" size=30 maxlength="50"></td>
</tr>
<tr>
<td class="right"><b>Observa&ccedil;&otilde;es</b>: </td>
<td class="default1"><textarea name="OBSERVACOES" cols="22"
rows="5" class="textbox" id="OBSERVACOES"></textarea></td>
</tr>
<tr>
<td class="right">&nbsp;</td>
<td class="default1"><input type=submit name=submit
value="Gravar &gt;&gt;" class="button">
<input type=reset name=submit2 value="Limpar &gt;&gt;"
class="button"></td>
</tr>
</table></td>
</tr>
</table>
</form></td>
</tr>
</table>
</body>
</html>
<%
} else {
response.sendRedirect("index.jsp");
}
%>
P ( nserir Agenda
Este o script que recebe os dados do formulrio e insere no
banco de dados.
inserir_agenda.php
<?
/*
Funo : Insere os dados na Agenda
Desenvolvedor : Cerli Rocha
Data : 30/05/2003
Atualizao: 30/06/2003
*/
session_start(); //Inicializa a sesso
include("funcoes.php"); //Inclui o arquivo de funes
//Funo que insere os dados na agenda
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

17-
PHP - ASP - JSP
function inserir_agenda( $nome, $endereco, $ddd, $fone, $email, $observacoes ) {
global $con;
$valor = false;
$sql = "INSERT INTO Agenda( NOME, ENDERECO, DDD, FONE, EMAIL,
OBSERVACOES ) VALUES( '$nome', '$endereco', '$ddd', '$fone', '$email',
'$observacoes' )";
$result = odbc_exec( $con, $sql );
if (!$result) {
$valor = false;
} else {
$valor = true;
}
return $valor;
}
//Corpo Principal do script
$usuario = trim($_SESSION['USUARIO']); //Recebe dados da sesso
$nome = $_POST['NOME'];
$endereco = $_POST['ENDERECO'];
$ddd = $_POST['DDD'];
$fone = $_POST['FONE'];
$email = $_POST['EMAIL'];
$observacoes = $_POST['OBSERVACOES'];
//Testa o usuario
if ( ( $usuario != "" )&&( $usuario != "" ) ) {
if ( !$con ) { //Testa a conexo ao banco
conecta(BANCO,USUARIO,SENHA);//Conectando ao banco
}

//Chama a funo que insere os dados na agenda
if ( inserir_agenda( $nome, $endereco, $ddd, $fone, $email,
$observacoes ) ) {
header("location: listar.php"); //Direciona pra tela de listar
} else {
header("location: index.php"); //Direciona pra tela inicial
}

} else {
header("location: index.php"); //Direciona pra tela incial
}
?>
inserir_agenda.asp
<!-- #include file="funcoes.asp" -->
<%
`Funo : Insere os dados na Agenda
`Desenvolvedor : Cerli Rocha
`Data : 30/05/2003
`Atualizao: 30/06/2003
function inserir_agenda( nome, endereco, ddd, fone, email, observacoes )
valor = true
sql = "INSERT INTO Agenda( NOME, ENDERECO, DDD, FONE, EMAIL,
OBSERVACOES ) " & _
"VALUES( '" & nome & "', '" & endereco & "', '" & ddd &
"', '" & fone & "', '" & email & "', '" & observacoes & "' )"
set rs = con.execute(sql)
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

177
PHP - ASP - JSP

if rs is nothing then
valor = false
else
valor = true
end if
set rs = nothing
inserir_agenda = valor
end function
login = Session("USUARIO")
nome = Request.Form("NOME")
endereco = Request.Form("ENDERECO")
ddd = Request.Form("DDD")
fone = Request.Form("FONE")
email = Request.Form("EMAIL")
observacoes = Request.Form("OBSERVACOES")
if ( ( login <> "" )AND( NOT(isNull(login)) ) ) then
if ( con = "" ) then
call conecta( BANCO, USUARIO, SENHA, con )
end if
if ( inserir_agenda( nome, endereco, ddd, fone, email, observacoes ) )
then
Response.Redirect("listar.asp")
else
Response.Redirect("index.asp")
end if

else
Response.Redirect("index.asp")
end if
%>
inserir_agenda.jsp
<%@ page import = "java.lang.*,java.io.*,java.util.*,java.sql.*" %>
<%@ include file="funcoes.jsp" %>
<%!
/*
Funo : Insere os dados na Agenda
Desenvolvedor : Cerli Rocha
Data : 30/05/2003
Atualizao: 30/06/2003
*/
public boolean inserir_agenda( String nome, String endereco, String ddd, String
fone, String email, String observacoes ) {
String sql = "";
boolean valor = false;

Statement stmt;

try {
sql = "INSERT INTO Agenda( NOME, ENDERECO, DDD, FONE, EMAIL,
OBSERVACOES ) " +
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

17>
PHP - ASP - JSP
"VALUES( '" + nome + "', '" + endereco + "', '" + ddd +
"', '" + fone + "', '" + email + "', '" + observacoes + "' )";
stmt = con.createStatement ();
int linhas = stmt.executeUpdate(sql);

if (linhas > 0) {
valor = true;
} else {
valor = false;
}

} catch(SQLException e) {
e.printStackTrace();
}
return valor;
}
%>
<%
String usuario = (String)session.getAttribute("USUARIO");
String nome = request.getParameter("NOME");
String endereco = request.getParameter("ENDERECO");
String ddd = request.getParameter("DDD");
String fone = request.getParameter("FONE");
String email = request.getParameter("EMAIL");
String observacoes = request.getParameter("OBSERVACOES");
if ( ( usuario != null ) ) {
if ( inserir_agenda( nome, endereco, ddd, fone, email, observacoes ) )
{
response.sendRedirect("listar.jsp");
} else {
response.sendRedirect("index.jsp");
}

} else {
response.sendRedirect("index.jsp");
}
%>
Y - Bus!ar
Este o script que monta a tela de buscas da agenda.
buscar.php
<?
/*
Funo : Tela de Busca
Desenvolvedor: Cerli Rocha
Data : 20/06/2003
Atualizao : 30/06/2003
*/
session_start(); //Inicializa a sesso
include("funcoes.php"); //Inclui o arquivo de funes
//Lendo a Sesso
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

17:
PHP - ASP - JSP
$usuario = trim($_SESSION['USUARIO']);
//Testando se o usuario est logado
if ( ( $usuario != "" )&&( $usuario != "" ) ) {
//Abaixo o HTML
?>
<html>
<head>
<title>:: Agenda PHP ::</title>
</head>
<body bgcolor="#778899" >
<table border=0 align=center bgcolor=White width="700">
<tr>
<td valign=top width="100%" align=center>
<? //Inclui o menu
include("menu.html");
?>
</td></tr>
<td valign=top>
<form name="form1" action="search.php" method=post>
<table width="100%" border="0" align="center">
<tr>
<td bgcolor=white> <table width="100%" border="0" align="center">
<tr>
<td align=right colspan=2>.: <b>Buscar na Agenda</b> :.</td>
</tr>
<tr>
<td align=right width="30%"><b>Palavra-chave</b>:
&nbsp;</td>
<td><input name="KEY" type=text id="KEY" value="" size=30
maxlength="50"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type=submit name=submit value="Buscar &gt;&gt;">
<input type=reset name=submit2 value="Limpar &gt;&gt;"></td>
</tr>
</table></td>
</tr>
</table>
</form>
</td>
</tr>
</table>
</body>
</html>
<?
} else {
header("location: index.php"); //Direciona para tela ininial
}
?>
buscar.asp
<!-- #include file="funcoes.asp" -->
<%
`Funo : Tela de Busca
`Desenvolvedor: Cerli Rocha
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1><
PHP - ASP - JSP
`Data : 20/06/2003
`Atualizao : 30/06/2003
'Lendo a Sesso
login = Session("USUARIO")
'Tastando se o usuario est logado
if ( ( login <> "" )AND( NOT(isNull(login)) ) ) then
%>
<html>
<head>
<title>:: Agenda ASP ::</title>
</head>
<body bgcolor="#778899" >
<table border=0 align=center bgcolor=White width="700">
<tr>
<td valign=top width="100%" align=center><!-- #include
file="menu.html" --></td></tr>
<td valign=top>
<form name="form1" action="search.asp" method=post>
<table width="100%" border="0" align="center">
<tr>
<td bgcolor=white> <table width="100%" border="0" align="center">
<tr>
<td align=right colspan=2>.: <b>Buscar na Agenda</b> :.</td>
</tr>
<tr>
<td align=right width="30%"><b>Palavra-chave</b>:
&nbsp;</td>
<td><input name="KEY" type=text id="KEY" value="" size=30
maxlength="50"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type=submit name=submit value="Buscar &gt;&gt;">
<input type=reset name=submit2 value="Limpar &gt;&gt;"></td>
</tr>
</table></td>
</tr>
</table>
</form>
</td>
</tr>
</table>
</body>
</html>
<%
else
Response.Redirect("index.asp")'Login
end if
%>
buscar.jsp
<%@ page import = "java.lang.*,java.io.*,java.util.*,java.sql.*" %>
<%@ include file="funcoes.jsp" %>
<%
/*
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1>1
PHP - ASP - JSP
Funo : Tela de Busca
Desenvolvedor: Cerli Rocha
Data : 20/06/2003
Atualizao : 30/06/2003
*/
//Lendo a Sesso
String usuario = (String)session.getAttribute("USUARIO");
//Tastando se o usuario est logado
if ( ( usuario != null ) ) {
%>
<html>
<head>
<title>:: Agenda JSP ::</title>
</head>
<body bgcolor="#778899" >
<table border=0 align=center bgcolor=White width="700">
<tr>
<td valign=top width="100%" align=center>
<%@ include file="menu.html" %>
</td></tr>
<td valign=top>
<form name="form1" action="search.jsp" method=post>
<table width="100%" border="0" align="center">
<tr>
<td bgcolor=white> <table width="100%" border="0" align="center">
<tr>
<td align=right colspan=2>.: <b>Buscar na Agenda</b> :.</td>
</tr>
<tr>
<td align=right width="30%"><b>Palavra-chave</b>:
&nbsp;</td>
<td><input name="KEY" type=text id="KEY" value="" size=30
maxlength="50"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type=submit name=submit value="Buscar &gt;&gt;">
<input type=reset name=submit2 value="Limpar &gt;&gt;"></td>
</tr>
</table></td>
</tr>
</table>
</form>
</td>
</tr>
</table>
</body>
</html>
<%
} else {
response.sendRedirect("index.jsp");//Login
}
%>
1\ - Sear!B
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1>2
PHP - ASP - JSP
Este o script que faz a busca no banco de dados de acordo
com a palavra-chave recebida e retorna uma lista idntica a
listar.
search.php
<?
/*
Funo : Buscar a palavra-chave na agenda
Desenvolvedor: Cerli Rocha
Data : 20/06/2003
Atualizao : 30/06/2003
*/
session_start(); //Inicializa a sesso
include("funcoes.php"); //Inclui o arquvo e funes
//Funo que faz a busca na agenda
function search( $KEY ) {
global $con;
$valor = "";
$sql = "SELECT ID, NOME, ENDERECO, DDD, FONE, EMAIL, OBSERVACOES,
DATA FROM Agenda WHERE (NOME LIKE '%$KEY%') OR (ENDERECO LIKE '%$KEY%') OR (DDD
LIKE '%$KEY%') OR (FONE LIKE '%$KEY%') OR (EMAIL LIKE '%$KEY%')";
$result = odbc_exec( $con, $sql );
if (!$result) {
$valor = 0;
} else {
while( odbc_fetch_row( $result ) ) {
$valor .= "<tr>
<td class=\"default\"><a
href=\"editar.php?ID=".odbc_result( $result, 1 )."\">Editar</a></td>
<td class=\"default\"><a
href=\"#\" onClick=\"window.open('detalhes.php?ID=".odbc_result( $result, 1 )
."','Detalhes','width=350,height=200')\">".odbc_result( $result, 2 )."</a></td>
<td class=\"default\"><a
href=\"#\" onClick=\"window.open('detalhes.php?ID=".odbc_result( $result, 1 )
."','Detalhes','width=350,height=200')\">".odbc_result( $result, 6 )."</a></td>
<td class=\"default\"><a
href=\"#\" onClick=\"window.open('detalhes.php?ID=".odbc_result( $result, 1 )
."','Detalhes','width=350,height=200')\">(".odbc_result( $result, 4 )
.")".odbc_result( $result, 5 )."</a></td>
<td class=\"default\"><a
href=\"#\" onClick=\"window.open('excluir.php?ID=".odbc_result( $result, 1 )
."','Detalhes','width=1,height=1')\">Excluir</a></td>
</tr>";
}
}
return $valor;
}
//Corpo principal do script
$usuario = trim($_SESSION['USUARIO']); //Recebe os dados da sesso
$key = trim($_POST['KEY']);
//Testa se o usurio est logado
if ( ( $usuario != "" )&&( $usuario != "" ) ) {
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1>$
PHP - ASP - JSP
if ( !$con ) { //testa se existe conexo ao banco
conecta(BANCO,USUARIO,SENHA);//Conectando ao banco
}
//Chama a funo de busca e grava na variavel $linhas
$linhas = search( $key );
//Abaixo o HTML
?>
<html>
<head>
<title>:: Agenda PHP ::</title>
</head>
<body bgcolor="#778899" >
<table border=0 align=center bgcolor=White width="700">
<tr>
<td valign=top width="100%" align=center>
<?
//Incluindo o menu
include("menu.html");
?>
</td></tr>
<td valign=top>
<table cellspacing=1 cellpadding=1 width="100%" border=0
bgcolor=White>
<tr>
<td width="60" class="headers"><b><a href="#">Editar</a></b></td>
<td width="210" class="headers"><b><a href="#">Nome</a></b></td>
<td width="210" class="headers"><b><a href="#">Email</a></b></td>
<td width="100" class="headers"><b><a href="#">Fone</a></b></td>
<td width="60" class="headers"><b><a href="#">Excluir</a></b></td>
</tr>
<?=$linhas?>
</table>
</td>
</tr>
</table>
</body>
</html>
<?
} else {
header("location: index.php"); //Direciona pra tela inicial
}
?>
search.asp
<!-- #include file="funcoes.asp" -->
<%
`Funo : Buscar a palavra-chave na agenda
`Desenvolvedor: Cerli Rocha
`Data : 20/06/2003
`Atualizao : 30/06/2003
function search( KEY )
valor = ""
sql = "SELECT ID, NOME, ENDERECO, DDD, FONE, EMAIL, OBSERVACOES,
Data FROM Agenda " & _
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1>&
PHP - ASP - JSP
"WHERE (NOME LIKE '%" & KEY & "%') OR (ENDERECO LIKE '%" &
KEY & "%') OR (DDD LIKE '%" & KEY & "%') OR (FONE LIKE '%" & KEY & "%') OR
(EMAIL LIKE '%" & KEY & "%')"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, con
Do While Not rs.EOF
valor = valor & "<tr>" & _
"<td class=default><a
href=editar.asp?ID=" & rs(0) & ">Editar</a></td>" & _
"<td class=default><a href=#
onClick=window.open('detalhes.asp?ID=" & rs(0) &
"','Detalhes','width=350,height=200')>" & rs(1) & "</a></td>" & _
"<td class=default><a href=#
onClick=window.open('detalhes.asp?ID=" & rs(0) &
"','Detalhes','width=350,height=200')>" & rs(5) & "</a></td>" & _
"<td class=default><a href=#
onClick=window.open('detalhes.asp?ID=" & rs(0) &
"','Detalhes','width=350,height=200')>(" & rs(3) & ")" & rs(4) & "</a></td>" & _
"<td class=default><a href=#
onClick=window.open('excluir.asp?ID=" & rs(0) &
"','Detalhes','width=1,height=1')>Excluir</a></td>" & _
"</tr>"
rs.MoveNext
Loop
rs.Close
set rs = Nothing
search = valor
end function
login = Session("USUARIO")
key = trim(Request.Form("KEY"))
if ( ( login <> "" )AND( NOT(isNull(login)) ) ) then
if ( con = "" ) then
call conecta( BANCO, USUARIO, SENHA, con )
end if
linhas = search( key )
%>
<html>
<head>
<title>:: Agenda ASP ::</title>
</head>
<body bgcolor="#778899" >
<table border=0 align=center bgcolor=White width="700">
<tr>
<td valign=top width="100%" align=center><!-- #include
file="menu.html" --></td></tr>
<td valign=top>
<table cellspacing=1 cellpadding=1 width="100%" border=0
bgcolor=White>
<tr>
<td width="60" class="headers"><b><a href="#">Editar</a></b></td>
<td width="210" class="headers"><b><a href="#">Nome</a></b></td>
<td width="210" class="headers"><b><a href="#">Email</a></b></td>
<td width="100" class="headers"><b><a href="#">Fone</a></b></td>
<td width="60" class="headers"><b><a href="#">Excluir</a></b></td>
</tr>
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1>*
PHP - ASP - JSP
<%=linhas%>
</table>
</td>
</tr>
</table>
</body>
</html>
<%
else
Response.Redirect("index.asp")
end if
%>
search.jsp
<%@ page import = "java.lang.*,java.io.*,java.util.*,java.sql.*" %>
<%@ include file="funcoes.jsp" %>
<%!
/*
Funo : Buscar a palavra-chave na agenda
Desenvolvedor: Cerli Rocha
Data : 20/06/2003
Atualizao : 30/06/2003
*/
public String search( String KEY ) {
String valor = "";
String sql = "";

String id = "";
String nome = "";
String endereco = "";
String ddd = "";
String fone = "";
String email = "";
String observacoes = "";

Statement stmt;
ResultSet rs;
//Select
try {
sql = "SELECT ID, NOME, ENDERECO, DDD, FONE, EMAIL, OBSERVACOES,
DATA FROM Agenda " +
" WHERE (NOME LIKE '%" + KEY + "%') OR (ENDERECO LIKE '%"
+ KEY + "%') OR (DDD LIKE '%" + KEY + "%') OR (FONE LIKE '%" + KEY + "%') OR
(EMAIL LIKE '%" + KEY + "%')";
stmt = con.createStatement();
stmt.execute(sql);
rs = stmt.getResultSet();
while(rs.next()) {
id = rs.getString(1);
nome = rs.getString(2);
endereco = rs.getString(3) ;
ddd = rs.getString(4);
fone = rs.getString(5);
email = rs.getString(6);
observacoes = rs.getString(7);
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1>-
PHP - ASP - JSP
valor += "<tr>" +
"<td class=\"default\"><a
href=\"editar.jsp?ID=" + id + "\">Editar</a></td>" +
"<td class=\"default\"><a
href=\"#\" onClick=\"window.open('detalhes.jsp?ID=" + id +
"','Detalhes','width=350,height=200')\">" + nome + "</a></td>" +
"<td class=\"default\"><a
href=\"#\" onClick=\"window.open('detalhes.jsp?ID=" + id +
"','Detalhes','width=350,height=200')\">" + email + "</a></td>" +
"<td class=\"default\"><a
href=\"#\" onClick=\"window.open('detalhes.jsp?ID=" + id +
"','Detalhes','width=350,height=200')\">(" + ddd + ")" + fone + "</a></td>" +
"<td class=\"default\"><a
href=\"#\" onClick=\"window.open('excluir.jsp?ID=" + id +
"','Detalhes','width=1,height=1')\">Excluir</a></td>" +
"</tr>";
}
stmt.close();
if (!con.isClosed()) {
con.close();
}
} catch (Exception e) {
try {
if (!con.isClosed()) {
}
} catch (Exception ex){
}
}
return valor;
}
%>
<%
String usuario = (String)session.getAttribute("USUARIO");
String key = request.getParameter("KEY");
if ( ( usuario != null ) ) {
String linhas = search( key );
%>
<html>
<head>
<title>:: Agenda JSP ::</title>
</head>
<body bgcolor="#778899" >
<table border=0 align=center bgcolor=White width="700">
<tr>
<td valign=top width="100%" align=center>
<%@ include file="menu.html" %>
</td></tr>
<td valign=top>
<table cellspacing=1 cellpadding=1 width="100%" border=0
bgcolor=White>
<tr>
<td width="60" class="headers"><b><a href="#">Editar</a></b></td>
<td width="210" class="headers"><b><a href="#">Nome</a></b></td>
<td width="210" class="headers"><b><a href="#">Email</a></b></td>
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1>7
PHP - ASP - JSP
<td width="100" class="headers"><b><a href="#">Fone</a></b></td>
<td width="60" class="headers"><b><a href="#">Excluir</a></b></td>
</tr>
<%=linhas%>
</table>
</td>
</tr>
</table>
</body>
</html>
<%
} else {
response.sendRedirect("index.jsp");
}
%>
11 - Aditar
Esta a tela que abre algum dado que j foi inserido na
agenda para que possa ser alterado.
editar.php
<?
/*
Funo : Abre a Agenda para edio
Desenvolvedor: Cerli Rocha
Data : 20/06/2003
Atualizao : 30/06/2003
*/
session_start(); //Inicializa a sesso
include("funcoes.php"); //Inclui o arquivo de funes
//Funo que abre a agenda de acordo com o cdigo recebido
function editar_agenda( $ID ) {
global $con;
global $nome, $endereco, $ddd, $fone, $email, $observacoes;
$valor = false;
$sql = "SELECT ID, NOME, ENDERECO, DDD, FONE, EMAIL, OBSERVACOES,
DATA FROM Agenda WHERE ID = $ID";
$result = odbc_exec( $con, $sql );
if (!$result) {
$valor = false;
} else {
while( odbc_fetch_row( $result ) ) {
$nome = odbc_result( $result, 2 );
$endereco = odbc_result( $result, 3 );
$ddd = odbc_result( $result, 4 );
$fone = odbc_result( $result, 5 );
$email = odbc_result( $result, 6 );
$observacoes = odbc_result( $result, 7 );
}
}
return $valor;
}
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1>>
PHP - ASP - JSP
//Corpo principal do script
$usuario = trim($_SESSION['USUARIO']); //Recebe dados da sesso
$id = trim($_GET['ID']);
//testa se o usuario est logado
if ( ( $usuario != "" )&&( $usuario != "" ) ) {
if ( !$con ) { //Testa se existe conexo ao banco
conecta(BANCO,USUARIO,SENHA);//Conectando ao banco
}
//Chama a funo que abre os dados da agenda
editar_agenda($id);
//Abaixo o HTML
?>
<html>
<head>
<title>:: Agenda PHP ::</title>
</head>
<body bgcolor="#778899" >
<table border=0 align=center bgcolor=White width="700">
<tr>
<td valign=top width="100%" align=center>
<?
//Inclui o Menu
include("menu.html");
?>
</td></tr>
<td valign=top>
<form name="form1" action="atualizar_agenda.php" method=post>
<table width="100%" border="0" align="center">
<tr>
<td bgcolor=white> <table width="100%" border="0" align="center">
<tr>
<td align=right colspan=2>.: <b>Inserir Nomes
na Agenda</b> :.</td>
</tr>
<tr>
<td align=right width="30%"><b>Nome</b>: &nbsp;</td>
<td><input name="NOME" type=text id="NOME" value="<?=$nome?>"
size=30 maxlength="50"></td>
</tr>
<tr> </tr>
<td align=right width="30%"><b>Endere&ccedil;o</b>:
&nbsp;</td>
<td><input name="ENDERECO" type=text id="ENDERECO"
value="<?=$endereco?>" size=30 maxlength="100"></td>
</tr>
<tr>
<td><b>Fone</b>: </td>
<td><input name="DDD" type=text id="DDD" value="<?=$ddd?>"
size=3 maxlength="3">
-
<input name="FONE" type=text id="FONE" value="<?=$fone?>"
size=7 maxlength="10"></td>
</tr>
<tr>
<td><b>Email</b>: </td>
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1>:
PHP - ASP - JSP
<td><input name="EMAIL" type=text id="EMAIL"
value="<?=$email?>" size=30 maxlength="50"></td>
</tr>
<tr>
<td><b>Observa&ccedil;&otilde;es</b>: </td>
<td><textarea name="OBSERVACOES" cols="22" rows="5"
id="OBSERVACOES"><?=$observacoes?></textarea></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>
<input type="hidden" name="ID" value="<?=$id?>">
<input type=submit name=submit value="Gravar
&gt;&gt;">
<input type=reset name=submit2 value="Limpar &gt;&gt;"></td>
</tr>
</table></td>
</tr>
</table>
</form></td>
</tr>
</table>
</body>
</html>
<?
} else {
header("location: index.php"); //Redireciona para tela inicial
}
?>
editar.asp
<!-- #include file="funcoes.asp" -->
<%
`Funo : Abre a Agenda para edio
`Desenvolvedor: Cerli Rocha
`Data : 20/06/2003
`Atualizao : 30/06/2003
function editar_agenda( ID )
sql = "SELECT ID, NOME, ENDERECO, DDD, FONE, EMAIL, OBSERVACOES,
Data FROM Agenda WHERE ID = " & ID
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, con
Do While Not rs.EOF
nome = rs(1)
endereco = rs(2)
ddd = rs(3)
fone = rs(4)
email = rs(5)
observacoes = rs(6)
rs.MoveNext
Loop
rs.Close
set rs = Nothing
end function
login = Session("USUARIO")
id = trim(Request.QueryString("ID"))
Dim nome
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1:<
PHP - ASP - JSP
Dim endereco
Dim ddd
Dim fone
Dim email
Dim observacoes
if ( ( login <> "" )AND( NOT(isNull(login)) ) ) then
if ( con = "" ) then
call conecta( BANCO, USUARIO, SENHA, con )
end if
call editar_agenda(id)
%>
<html>
<head>
<title>:: Agenda ASP ::</title>
</head>
<body bgcolor="#778899" >
<table border=0 align=center bgcolor=White width="700">
<tr>
<td valign=top width="100%" align=center><!-- #include
file="menu.html" --></td></tr>
<td valign=top>
<form name="form1" action="atualizar_agenda.asp" method=post>
<table width="100%" border="0" align="center">
<tr>
<td bgcolor=white> <table width="100%" border="0" align="center">
<tr>
<td align=right colspan=2>.: <b>Inserir Nomes
na Agenda</b> :.</td>
</tr>
<tr>
<td align=right width="30%"><b>Nome</b>: &nbsp</td>
<td><input name="NOME" type=text id="NOME" value="<%=nome%>"
size=30 maxlength="50"></td>
</tr>
<tr> </tr>
<td align=right width="30%"><b>Endere&ccedilo</b>:
&nbsp</td>
<td><input name="ENDERECO" type=text id="ENDERECO"
value="<%=endereco%>" size=30 maxlength="100"></td>
</tr>
<tr>
<td><b>Fone</b>: </td>
<td><input name="DDD" type=text id="DDD" value="<%=ddd%>"
size=3 maxlength="3">
-
<input name="FONE" type=text id="FONE" value="<%=fone%>"
size=7 maxlength="10"></td>
</tr>
<tr>
<td><b>Email</b>: </td>
<td><input name="EMAIL" type=text id="EMAIL"
value="<%=email%>" size=30 maxlength="50"></td>
</tr>
<tr>
<td><b>Observa&ccedil&otildees</b>: </td>
<td><textarea name="OBSERVACOES" cols="22" rows="5"
id="OBSERVACOES"><%=observacoes%></textarea></td>
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1:1
PHP - ASP - JSP
</tr>
<tr>
<td>&nbsp;</td>
<td>
<input type="hidden" name="ID" value="<%=id%>">
<input type=submit name=submit value="Gravar
&gt&gt">
<input type=reset name=submit2 value="Limpar &gt&gt"></td>
</tr>
</table></td>
</tr>
</table>
</form></td>
</tr>
</table>
</body>
</html>
<%
else
Response.Redirect("index.asp")
end if
%>
editar.jsp
<%@ page import = "java.lang.*,java.io.*,java.util.*,java.sql.*" %>
<%@ include file="funcoes.jsp" %>
<%!
/*
Funo : Abre a Agenda para edio
Desenvolvedor: Cerli Rocha
Data : 20/06/2003
Atualizao : 30/06/2003
*/
public String editar_agenda( String ID ) {
String valor = "";
String sql = "";


Statement stmt;
ResultSet rs;
//Select
try {
sql = "SELECT ID, NOME, ENDERECO, DDD, FONE, EMAIL, OBSERVACOES,
DATA FROM Agenda WHERE ID = " + ID;
stmt = con.createStatement();
stmt.execute(sql);
rs = stmt.getResultSet();
while(rs.next()) {
id = rs.getString(1);
nome = rs.getString(2);
endereco = rs.getString(3) ;
ddd = rs.getString(4);
fone = rs.getString(5);
email = rs.getString(6);
observacoes = rs.getString(7);
}
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1:2
PHP - ASP - JSP
stmt.close();
if (!con.isClosed()) {
con.close();
}
} catch (Exception e) {
try {
if (!con.isClosed()) {
}
} catch (Exception ex){
}
}
return valor;
}
String id = "";
String nome = "";
String endereco = "";
String ddd = "";
String fone = "";
String email = "";
String observacoes = "";
%>
<%
String usuario = (String)session.getAttribute("USUARIO");
String id = request.getParameter("ID");
if ( ( usuario != null ) ) {
editar_agenda(id);
%>
<html>
<head>
<title>:: Agenda JSP ::</title>
<link rel="stylesheet" href="estilos.css" type="text/css">
</head>
<body bgcolor="#778899" text="#FFFFFF" link="#FFFFFF" vlink="#FFFFFF"
alink="#FFFFFF">
<table cellspacing=2 cellpadding=0 border=0 align=center bgcolor=White
width="700">
<tr>
<td valign=top width="100%" align=center>
<%@ include file="menu.html" %>
</td></tr>
<td valign=top>
<form name="form1" action="atualizar_agenda.jsp" method=post>
<table width="100%" border="0" cellspacing="0" cellpadding="2"
align="center">
<tr>
<td bgcolor=white> <table width="100%" border="0" cellspacing="1"
cellpadding="1" align="center">
<tr>
<td align=right class="title" colspan=2>.: <b>Inserir Nomes
na Agenda</b> :.</td>
</tr>
<tr>
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1:$
PHP - ASP - JSP
<td align=right class="right" width="30%"><b>Nome</b>:
&nbsp;</td>
<td class="default1"><input name="NOME" type=text
class="textbox" id="NOME" value="<%=nome%>" size=30 maxlength="50"></td>
</tr>
<tr> </tr>
<td align=right class="right"
width="30%"><b>Endere&ccedil;o</b>:
&nbsp;</td>
<td class="default1"><input name="ENDERECO" type=text
class="textbox" id="ENDERECO" value="<%=endereco%>" size=30
maxlength="100"></td>
</tr>
<tr>
<td class="right"><b>Fone</b>: </td>
<td class="default1"><input name="DDD" type=text
class="textbox" id="DDD" value="<%=ddd%>" size=3 maxlength="3">
-
<input name="FONE" type=text class="textbox" id="FONE"
value="<%=fone%>" size=7 maxlength="10"></td>
</tr>
<tr>
<td class="right"><b>Email</b>: </td>
<td class="default1"><input name="EMAIL" type=text
class="textbox" id="EMAIL" value="<%=email%>" size=30 maxlength="50"></td>
</tr>
<tr>
<td class="right"><b>Observa&ccedil;&otilde;es</b>: </td>
<td class="default1"><textarea name="OBSERVACOES" cols="22"
rows="5" class="textbox" id="OBSERVACOES"><%=observacoes%></textarea></td>
</tr>
<tr>
<td class="right">&nbsp;</td>
<td class="default1">
<input type="hidden" name="ID" value="<%=id%>">
<input type=submit name=submit value="Gravar
&gt;&gt;" class="button">
<input type=reset name=submit2 value="Limpar &gt;&gt;"
class="button"></td>
</tr>
</table></td>
</tr>
</table>
</form></td>
</tr>
</table>
</body>
</html>
<%
} else {
response.sendRedirect("index.jsp");
}
%>
1' ( Atua"i#ar Agenda
Este o script que atualiza os dados na agenda.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1:&
PHP - ASP - JSP
atualizar_agenda.php
<?
/*
Funo : Atualizar os dados na agenda
Desenvolvedor: Cerli Rocha
Data : 20/06/2003
Atualizao : 30/06/2003
*/
session_start(); //Inicializa a sesso
include("funcoes.php"); //Inclui o arquivo de funes
//atualiza os dados na agenda
function atualizar_agenda( $nome, $endereco, $ddd, $fone, $email, $observacoes,
$id ) {
global $con;
$valor = false;
$sql = "UPDATE Agenda SET NOME = '$nome', ENDERECO = '$endereco',
DDD = '$ddd', FONE = '$fone', EMAIL = '$email',
OBSERVACOES = '$observacoes' WHERE ID = $id";
$result = odbc_exec( $con, $sql );
if (!$result) {
$valor = false;
} else {
$valor = true;
}
return $valor;
}
//Corpo principal do script
//Recebendo os Dados do Formulrio
$usuario = trim($_SESSION['USUARIO']);//Lendo a Sesso
$nome = $_POST['NOME'];
$endereco = $_POST['ENDERECO'];
$ddd = $_POST['DDD'];
$fone = $_POST['FONE'];
$email = $_POST['EMAIL'];
$observacoes = $_POST['OBSERVACOES'];
$id = $_POST['ID'];
//Testando se o usuario est logado
if ( ( $usuario != "" )&&( $usuario != "" ) ) {
if ( !$con ) { //testa se existe conexo
conecta(BANCO,USUARIO,SENHA);//Conectando ao banco
}

//Chama a funo que atualiza os dados alterados
if ( atualizar_agenda( $nome, $endereco, $ddd, $fone, $email,
$observacoes, $id ) ) {
header("location: listar.php");//Direciona para o listar
} else {
header("location: index.php");//Direciona para tela inicial
}

} else {
header("location: index.php");//Direciona para tela inicial
}
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1:*
PHP - ASP - JSP
?>
atualizar_agenda.asp
<!-- #include file="funcoes.asp" -->
<%
`Funo : Atualizar os dados na agenda
`Desenvolvedor: Cerli Rocha
`Data : 20/06/2003
`Atualizao : 30/06/2003
function atualizar_agenda( nome, endereco, ddd, fone, email, observacoes, id )
valor = true
sql = "UPDATE Agenda SET NOME = '" & nome & "', ENDERECO = '" &
endereco & "', DDD = '" & ddd & "', FONE = '" & fone & "', EMAIL = '" & email &
"', " & _
"OBSERVACOES = '" & observacoes & "' WHERE ID = " & id
set rs = con.execute(sql)

if rs is nothing then
valor = false
else
valor = true
end if
set rs = nothing
atualizar_agenda = valor
end function
'Recebendo os Dados do Formulrio
login = Session("USUARIO")'Lendo a Sesso
nome = Request.Form("NOME")
endereco = Request.Form("ENDERECO")
ddd = Request.Form("DDD")
fone = Request.Form("FONE")
email = Request.Form("EMAIL")
observacoes = Request.Form("OBSERVACOES")
id = Request.Form("ID")
'Tastando se o usuario est logado
if ( ( login <> "" )AND( NOT(isNull(login)) ) ) then
if ( con = "" ) then
call conecta( BANCO, USUARIO, SENHA, con )
end if
if ( atualizar_agenda( nome, endereco, ddd, fone, email, observacoes,
id ) ) then'Executando a 'Funo
Response.Redirect("listar.asp")'Pgina Principal
else
Response.Redirect("index.asp")'Login
end if

else
Response.Redirect("index.asp")'Login
end if
%>
atualizar_agenda.jsp
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1:-
PHP - ASP - JSP
<%@ page import = "java.lang.*,java.io.*,java.util.*,java.sql.*" %>
<%@ include file="funcoes.jsp" %>
<%!
/*
Funo : Atualizar os dados na agenda
Desenvolvedor: Cerli Rocha
Data : 20/06/2003
Atualizao : 30/06/2003
public boolean atualizar_agenda( String nome, String endereco, String ddd,
String fone, String email, String observacoes, String id ) {
String sql = "";
boolean valor = false;

Statement stmt;

try {
sql = "UPDATE Agenda SET NOME = '" + nome + "', ENDERECO = '" +
endereco + "', DDD = '" + ddd + "', FONE = '" + fone + "', EMAIL = '" + email +
"', " +
" OBSERVACOES = '" + observacoes + "' WHERE ID = " +
String.valueOf(id);
stmt = con.createStatement ();
int linhas = stmt.executeUpdate(sql);

if (linhas > 0) {
valor = true;
} else {
valor = false;
}

} catch(SQLException e) {
e.printStackTrace();
}
return valor;
}
%>
<%
String usuario = (String)session.getAttribute("USUARIO");
String nome = request.getParameter("NOME");
String endereco = request.getParameter("ENDERECO");
String ddd = request.getParameter("DDD");
String fone = request.getParameter("FONE");
String email = request.getParameter("EMAIL");
String observacoes = request.getParameter("OBSERVACOES");
String id = request.getParameter("ID");
//Tastando se o usuario est logado
if ( ( usuario != null ) ) {
if ( atualizar_agenda( nome, endereco, ddd, fone, email, observacoes,
id ) ) {//Executando a Funo
response.sendRedirect("listar.jsp");//Pgina Principal
} else {
response.sendRedirect("index.jsp");//Login
}

} else {
response.sendRedirect("index.jsp");//Login
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1:7
PHP - ASP - JSP
}
%>
1, - )eta"Bes
Este o script que exibe os detalhes de cada registro da
agenda.
detalhes.php
<?
/*
Funo : Exibe os Detalhes
Desenvolvedor: Cerli Rocha
Data : 20/06/2003
Atualizao : 30/06/2003
*/
session_start(); //Inicializa a sesso
include("funcoes.php"); //Inclui o arquivo de funes
//Busca os dados da agenda de acordo com o Cdigo recebido
function editar_agenda( $ID ) {
global $con;
global $nome, $endereco, $ddd, $fone, $email, $observacoes;
$valor = false;
$sql = "SELECT ID, NOME, ENDERECO, DDD, FONE, EMAIL, OBSERVACOES,
DATA FROM Agenda WHERE ID = $ID";
$result = odbc_exec( $con, $sql );
if (!$result) {
$valor = false;
} else {
while( odbc_fetch_row( $result ) ) {
$nome = odbc_result( $result, 2 );
$endereco = odbc_result( $result, 3 );
$ddd = odbc_result( $result, 4 );
$fone = odbc_result( $result, 5 );
$email = odbc_result( $result, 6 );
$observacoes = odbc_result( $result, 7 );
}
}
return $valor;
}
//Corpo principal do script
//Lendo a Sesso
$usuario = trim($_SESSION['USUARIO']);
//Lendo o Cdigo
$id = trim($_GET['ID']);
//Tastando se o usuario est logado
if ( ( $usuario != "" )&&( $usuario != "" ) ) {
if ( !$con ) { //Testa se existe a conexo
conecta(BANCO,USUARIO,SENHA);//Conectando ao banco
}
//Chama a funo que exibir os detalhes
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1:>
PHP - ASP - JSP
editar_agenda($id);
//Abaixo o HTML
?>
<html>
<head>
<title>:: Agenda PHP ::</title>
</head>
<body bgcolor="#778899" >
<table border=0 align=center bgcolor=White width="100%">
<td valign=top>
<table width="100%" border="0" align="center">
<tr>
<td bgcolor=white> <table width="100%" border="0" align="center">
<tr>
<td align=right colspan=2>.: <b>Inserir Nomes na
Agenda</b> :.</td>
</tr>
<tr>
<td align=right width="30%"><b>Nome</b>: &nbsp;</td>
<td>
<?=$nome?>
</td>
</tr>
<tr> </tr>
<td align=right width="30%"><b>Endere&ccedil;o</b>:
&nbsp;</td>
<td>
<?=$endereco?>
</td>
</tr>
<tr>
<td><b>Fone</b>: </td>
<td>
<?=$ddd?>
-
<?=$fone?>
</td>
</tr>
<tr>
<td><b>Email</b>: </td>
<td>
<?=$email?>
</td>
</tr>
<tr>
<td><b>Observa&ccedil;&otilde;es</b>: </td>
<td>
<?=$observacoes?>
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td><a href="#" onClick="self.close()" >fechar</a></td>
</tr>
</table></td>
</tr>
</table>
</td>
</tr>
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

1::
PHP - ASP - JSP
</table>
</body>
</html>
<?
} else {
print "<script>
self.close();
</script>";
}
?>
detalhes.asp
<!-- #include file="funcoes.asp" -->
<%
`Funo : Exibe os Detalhes
`Desenvolvedor: Cerli Rocha
`Data : 20/06/2003
`Atualizao : 30/06/2003
'Busca os dados da agenda de acordo com o Cdigo recebido
function editar_agenda( ID )
sql = "SELECT ID, NOME, ENDERECO, DDD, FONE, EMAIL, OBSERVACOES,
Data FROM Agenda WHERE ID = " & ID
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, con
Do While Not rs.EOF
nome = rs(1)
endereco = rs(2)
ddd = rs(3)
fone = rs(4)
email = rs(5)
observacoes = rs(6)
rs.MoveNext
Loop
rs.Close
set rs = Nothing
end function
'Lendo a Sesso
login = Session("USUARIO")
'Lendo o Cdigo
id = trim(Request.QueryString("ID"))
Dim nome
Dim endereco
Dim ddd
Dim fone
Dim email
Dim observacoes
'Tastando se o usuario est logado
if ( ( login <> "" )AND( NOT(isNull(login)) ) ) then
if ( con = "" ) then
call conecta( BANCO, USUARIO, SENHA, con )
end if
call editar_agenda(id)
%>
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

2<<
PHP - ASP - JSP
<html>
<head>
<title>:: Agenda ASP ::</title>
</head>
<body bgcolor="#778899" >
<table border=0 align=center bgcolor=White width="100%">
<td valign=top>
<table width="100%" border="0" align="center">
<tr>
<td bgcolor=white> <table width="100%" border="0" align="center">
<tr>
<td align=right colspan=2>.: <b>Inserir Nomes na
Agenda</b> :.</td>
</tr>
<tr>
<td align=right width="30%"><b>Nome</b>: &nbsp</td>
<td>
<%=nome%>
</td>
</tr>
<tr> </tr>
<td align=right width="30%"><b>Endere&ccedilo</b>:
&nbsp</td>
<td>
<%=endereco%>
</td>
</tr>
<tr>
<td><b>Fone</b>: </td>
<td>
<%=ddd%>
-
<%=fone%>
</td>
</tr>
<tr>
<td><b>Email</b>: </td>
<td>
<%=email%>
</td>
</tr>
<tr>
<td><b>Observa&ccedil&otildees</b>: </td>
<td>
<%=observacoes%>
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td><a href="#" onClick="self.close()" >fechar</a></td>
</tr>
</table></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

2<1
PHP - ASP - JSP
<%
else
response.Write("<script>" & _
"self.close()" & _
"</script>")
end if
%>
detalhes.jsp
<%@ page import = "java.lang.*,java.io.*,java.util.*,java.sql.*" %>
<%@ include file="funcoes.jsp" %>
<%!
/*
Funo : Exibe os Detalhes
Desenvolvedor: Cerli Rocha
Data : 20/06/2003
Atualizao : 30/06/2003
*/
public String editar_agenda( String ID ) {
String valor = "";
String sql = "";

Statement stmt;
ResultSet rs;
//Select
try {
sql = "SELECT ID, NOME, ENDERECO, DDD, FONE, EMAIL, OBSERVACOES,
DATA FROM Agenda WHERE ID = " + ID;
stmt = con.createStatement();
stmt.execute(sql);
rs = stmt.getResultSet();
while(rs.next()) {
id = rs.getString(1);
nome = rs.getString(2);
endereco = rs.getString(3) ;
ddd = rs.getString(4);
fone = rs.getString(5);
email = rs.getString(6);
observacoes = rs.getString(7);
}
stmt.close();
if (!con.isClosed()) {
con.close();
}
} catch (Exception e) {
try {
if (!con.isClosed()) {
}
} catch (Exception ex){
}
}
return valor;
}
String id = "";
String nome = "";
String endereco = "";
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

2<2
PHP - ASP - JSP
String ddd = "";
String fone = "";
String email = "";
String observacoes = "";
%>
<%
String usuario = (String)session.getAttribute("USUARIO");
String id = request.getParameter("ID");
//Tastando se o usuario est logado
if ( ( usuario != null ) ) {
editar_agenda(id);
%>
<html>
<head>
<title>:: Agenda JSP ::</title>
</head>
<body bgcolor="#778899" >
<table border=0 align=center bgcolor=White width="100%">
<td valign=top>
<table width="100%" border="0" align="center">
<tr>
<td bgcolor=white> <table width="100%" border="0" align="center">
<tr>
<td align=right colspan=2>.: <b>Inserir Nomes na
Agenda</b> :.</td>
</tr>
<tr>
<td align=right width="30%"><b>Nome</b>: &nbsp;</td>
<td>
<%=nome%>
</td>
</tr>
<tr> </tr>
<td align=right width="30%"><b>Endere&ccedil;o</b>:
&nbsp;</td>
<td>
<%=endereco%>
</td>
</tr>
<tr>
<td><b>Fone</b>: </td>
<td>
<%=ddd%>
-
<%=fone%>
</td>
</tr>
<tr>
<td><b>Email</b>: </td>
<td>
<%=email%>
</td>
</tr>
<tr>
<td><b>Observa&ccedil;&otilde;es</b>: </td>
<td>
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

2<$
PHP - ASP - JSP
<%=observacoes%>
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td><a href="#" onClick="self.close()" >fechar</a></td>
</tr>
</table></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
<%
} else {
out.println("<script> " +
"self.close(); " +
"</script>");
}
%>
11 - A.!"uir
Este o script que exclui os dados da agenda de acordo com o
cdigo recebido.
excluir.php
<?
/*
Funo : Exclui os dados da agenda
Desenvolvedor: Cerli Rocha
Data : 20/06/2003
Atualizao : 30/06/2003
*/
session_start(); //Inicializa a sesso
include("funcoes.php"); //Inclui o arquivo de funes
//Funo que exclui os dados da agenda
function excluir_agenda( $id ) {
global $con;
$valor = false;
$sql = "DELETE FROM Agenda WHERE ID = $id";
$result = odbc_exec( $con, $sql );
if (!$result) {
$valor = false;
} else {
$valor = true;
}
return $valor;
}
//Corpo Principal do script
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

2<&
PHP - ASP - JSP
$usuario = trim($_SESSION['USUARIO']); //Recebe os dados da sesso
$id = $_GET['ID'];
//Testa se o usuario est logado
if ( ( $usuario != "" )&&( $usuario != "" ) ) {
if ( !$con ) { //Testa se existe conexo ao banco
conecta(BANCO,USUARIO,SENHA);//Conectando ao banco
}

//Chama a funo de excluso
if ( excluir_agenda( $id ) ) {
print "<script>
opener.location.reload();
self.close();
</script>";
} else {
print "<script>
self.close();
</script>";
}

} else {
print "<script>
opener.location = 'index.php';
self.close();
</script>";
}
?>
excluir.asp
<!-- #include file="funcoes.asp" -->
<%
`Funo : Exclui os dados da agenda
`Desenvolvedor: Cerli Rocha
`Data : 20/06/2003
`Atualizao : 30/06/2003
function excluir_agenda( id )
valor = true
sql = "DELETE FROM Agenda WHERE ID = " & id
set rs = con.execute(sql)

if rs is nothing then
valor = false
else
valor = true
end if
set rs = nothing
excluir_agenda = valor
end function
login = Session("USUARIO")
id = Request.QueryString("ID")
if ( ( login <> "" )AND( NOT(isNull(login)) ) ) then
if ( con = "" ) then
call conecta( BANCO, USUARIO, SENHA, con )
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

2<*
PHP - ASP - JSP
end if
if ( excluir_agenda( id ) ) then
response.Write("<script>" & _
"opener.location.reload();" & _
"self.close();" & _
"</script>")
else
response.Write("<script>" & _
"self.close();" & _
"</script>")
end if

else
response.Write("<script>" & _
"opener.location = 'index.asp';" & _
"self.close();" & _
"</script>")
end if
%>
excluir.jsp
<%@ page import = "java.lang.*,java.io.*,java.util.*,java.sql.*" %>
<%@ include file="funcoes.jsp" %>
<%!
/*
Funo : Exclui os dados da agenda
Desenvolvedor: Cerli Rocha
Data : 20/06/2003
Atualizao : 30/06/2003
*/
public boolean excluir_agenda( String id ) {
String sql = "";
boolean valor = false;

Statement stmt;

try {
sql = "DELETE FROM Agenda WHERE ID = " + String.valueOf(id);
stmt = con.createStatement ();
int linhas = stmt.executeUpdate(sql);

if (linhas > 0) {
valor = true;
} else {
valor = false;
}

} catch(SQLException e) {
e.printStackTrace();
}
return valor;
}
%>
<%
String usuario = (String)session.getAttribute("USUARIO");
String id = request.getParameter("ID");
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

2<-
PHP - ASP - JSP
if ( ( usuario != null ) ) {
if ( excluir_agenda( id ) ) {
out.println("<script>" +
"opener.location.reload();" +
"self.close();" +
"</script>");
} else {
out.println("<script> " +
"self.close(); " +
"</script>");
}

} else {
out.println("<script>" +
"opener.location = 'index.jsp';" +
"self.close();" +
"</script>");
}
%>
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

2<7
PHP - ASP - JSP
ApSndi!es
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

2<>
PHP - ASP - JSP
1 - 7anipu"ao de Strings
1 ( PHP
1 - H67L
Btm"spe!ia"!Bars
htmlspecialchars(string);
Retorna a string fornecida, substituindo os seguintes
caracteres:
& para '&amp;'
" para '&quot;'
< para '&lt;'
> para `&gt;'
Btm"entities
htmlentities(string);
Funciona de maneira semelhante ao comando anterior, mas de
maneira mais completa, pois converte todos os caracteres da string
que possuem uma representao especial em html, como por exemplo:
para '&ordm;'
para '&ordf;'
para '&aacute;'
para `&ccedil;'
n"'br
nl2br(string);
Retorna a string fornecida substituindo todas as quebras de
linha (\n) por quebras de linhas em html (<br>).
getRmetaRtags
get_meta_tags(arquivo);
Abre um arquivo html e percorre o cabealho em busca de
meta tags, retornando num array todos os valores encontrados.
stripRtags
strip_tags(string);
Retorna a string fornecida, retirando todas as tags html e/ou
PHP encontradas.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

2<:
PHP - ASP - JSP
ur"en!ode
urlencode(string);
Retorna a string fornecida, convertida para o formato
urlencode. Esta funo til para passar variveis para uma
prxima pgina.
ur"de!ode
urldecode(string);
Funciona de maneira inversa a urlencode, desta vez
decodificando a string fornecida do formato urlencode para texto
normal.
' - Arra/s
mp"ode e Noin
implode(separador, array);
e
join(separador, array);
As duas funes so idnticas. Retornam uma string contendo
todos os elementos do array fornecido separados pela string tambm
fornecida.
sp"it
split(string padrao, string str, int [limite]);
Retorna um array contendo partes da string fornecida
separadas pelo padro fornecido, podendo limitar o nmero de
elementos do array.
e.p"ode
explode(string padrao, string str);
Funciona de maneira bastante semelhante funo split, com a
diferena que no possvel estabelecer um limite para o nmero
de elementos do array.
, - Comparao
simi"arRte.t
similar_text(string str1, string str2, double [porcentagem]);
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

21<
PHP - ASP - JSP
Compara as duas strings fornecidas e retorna o nmero de
caracteres coincidentes. Opcionalmente pode ser fornecida uma
varivel, passada por referncia -&er t.pico sobre fun/0es1, que
receber o valor percentual de igualdade entre as strings. Esta
funo case sensiti&e, ou seja, maisculas e minsculas so
tratadas como diferentes.
str!ase!mp
strcasecmp(string str1, string str2);
Compara as duas strings e retorna 0 (zero) se forem iguais,
um valor maior que zero se str1 > str2, e um valor menor que zero
se str1 < str2. Esta funo case insensiti&e, ou seja, maisculas
e minsculas so tratadas como iguais.
str!mp
strcasecmp(string str1, string str2);
Funciona de maneira semelhante funo strcasecmp, com a
diferena que esta case sensiti&e, ou seja, maisculas e
minsculas so tratadas como diferentes.
strstr
string strstr(string str1, string str2);
e
string strchr(string str1, string str2);
As duas funes so idnticas. 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.
stristr
strstr(string str1, string str2);
Funciona de maneira semelhante funo strstr, com a
diferena que esta case insensiti&e, ou seja, maisculas e
minsculas so tratadas como iguais.
strpos
strpos(string str1, string str2, int [offset] );
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

211
PHP - ASP - JSP
Retorna a posio da primeira ocorrncia de str2 em str1, ou
zero se no houver. O parmetro opcional offset determina a partir
de qual caracter de str1 ser efetuada a busca. Mesmo utilizando o
offset, o valor de retorno referente ao incio de str1.
strrpos
strrpos(string haystack, char needle);
Retorna a posio da ltima ocorrncia de str2 em str1, ou
zero se no houver.
1 - Adio
!Bop
chop(string);
Retira espaos e linhas em branco do final da string
fornecida.
"trim
ltrim(string);
Retira espaos e linhas em branco do final da string
fornecida.
trim
trim(string);
Retira espaos e linhas em branco do incio e do final da
string fornecida.
strre%
strrev(string);
Retorna a string fornecida invertida.
strto"oFer
strtolower(string);
Retorna a string fornecida com todas as letras minsculas.
strtoupper
strtoupper(string);
Retorna a string fornecida com todas as letras maisculas.
u!first
ucfirst(string);
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

212
PHP - ASP - JSP
Retorna a string fornecida com o primeiro caracter convertido
para letra maiscula.
u!Fords
ucwords(string);
Retorna a string fornecida com todas as palavras iniciadas
por letras maisculas.
strRrep"a!e
str_replace(string str1, string str2, string str3);
Altera todas as ocorrncias de str1 em str3 pela string str2.
3 - )i%ersos
!Br
chr(cdigo ascii);
Retorna o caracter correspondente ao cdigo ASCII fornecido.
ord
ord(string);
Retorna o cdigo ASCII correspontente ao caracter fornecido.
e!Bo
echo(string1, string[argn]... );
Imprime os argumentos fornecidos.
print
print(string);
Imprime o argumento fornecido.
str"en
int strlen(string);
Retorna o tamanho da string fornecida.
' ( ASP
As!
Retorna o cdigo Asc da primeira letra da string.
CBr
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

21$
PHP - ASP - JSP
Retorna o caracter referente ao cdigo ASCII especificado.
*i"ter
Retorna um array com um subconjunto de um array de string
baseado em um critrio de filtro pre-estabelecido.
nStr
Esta funo permite que se procure um determinado substring
em um string, mesmo sem saber se este substring ser encontrado.
Esta funo retornar sempre a posio da primeira ocorrncia da
busca.
nStrRe%
Semelhante a InStr, porm a partir do final.
L!ase
Substitui todas as letras maisculas de uma string por letras
minsculas.
Left
Isola os n primeiros caracteres de uma string.
Len
Retorna o numero de carateres de uma string ou os bytes
necessrios para armazenar uam determinada varivel.
Ltrim
Retira todos espaos e branco no inicio de uma string.
7id
Isola uma substring do meio de uma string.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

21&
PHP - ASP - JSP
Rep"a!e
Retorna uma string onde uma substring foi substituda por
outra, um determinado numero de vezes.
RigBt
Isola os n ltimos caracteres de uma string.
Rtrim
Retira todos os espaos em branco no final de uma expresso.
StrComp
Retorna um valor decorrente do resultado da comparao entre
duas strings.
String
Retorna um determinado caracter um determinado numero de
vezes.
StrRe%erse
Retorna o inverso de uma string determinada.
6rim
Retorna uma determinada string sem espaos em branco no
inicio e no final.
2Case
Substitui todas as letras minsculas de uma determinada
string por por maisculas.
, - ;SP
"engtBHI
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

21*
PHP - ASP - JSP
Retorna o numero de caracteres de uma string:
String variavel = testando;
int tamanho = variavel.length();
!BarAtHI
Retorna o caracter na posio especificada pelo ndice, sendo
que o primeiro caracter o ndice 0.
String varivel = testando;
char c = variavel.chatAt(1);\\retorna e
substringHOndi!e ini!ia", Ondi!e fina"I
retorna uma substring de acorodo com os ndices inciais e
finais passados, sendo que o primeiro caracter o ndice 0.
String varivel = testando;
String subvar = variavel.substring(2,4);\\retorna sta
to2pperCaseHI
Retorna a string toda em maisculas.
String varivel = testando;
String novavar = variavel.toUpperCase();\\retorna TESTANDO
toLoFerCaseHI
Retorna a string toda em minsculas.
String varivel = TESTANDO;
String novavar = variavel.toLowerCase();\\retorna testando
trimHI
retorna uma string sem espaos no inicio e no fim.
String varivel = TESTANDO ;
String novavar = variavel.trim();\\retorna TESTANDO
inde.<fH String I
retorna o ndice de uma substring determinada.
String varivel = TESTANDO;
String novavar = variavel.indexOf(TA);\\retorna 3
"astnde.<fH String I
retorna o ndice da ultima ocorrncia de uma substring
determinada.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

21-
PHP - ASP - JSP
String varivel = TESTANDO;
String novavar = variavel.indexOf(T);\\retorna 3
e4ua"sHI
Compara strings checando maiusculas e minsculas.
String varivel = TESTANDO;
if ( varivel.equals(TeStAnDo) ) {\\retorna false
commando;
}
e4ua"sgnoreCaseHI
Compara strings ignorando maiusculas e minsculas.
String varivel = TESTANDO;
if ( varivel.equals(TeStAnDo) ) {\\retorna true
commando;
}
toStringHI
Retorna uma String apartir de objetos.
Cor vermelho = new Cor();
out.println(vermelho);
%a"ue<fHI
Retorna uma String a partir de tipos primitivos.
String valor = String.valueOf(5);\\retorna 5
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

217
PHP - ASP - JSP
' - 7anipu"ao de ->meros
1 ( PHP
abs
Retorna o valor absoluto de um nmero.
a!os
Retorna o coseno inverso (arco cosseno).
a!osB
Retorna o cosseno hiperblico inverso.
asin
Retorna o seno inverso (arco seno).
asinB
Retorna o seno hiperblico inverso.
atan'
retorna a tangente inversa de duas variveis.
atan
Retorna a tangente inversa (arco tangente).
atanB
Retorna a tangente hiperblica inversa.
baseR!on%ert
Converte um nmero entre bases arbitraries.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

21>
PHP - ASP - JSP
binde!
Converte de binrio para decimal.
!ei"
Arredonda fraes para cima.
!os
Retorna o coseno.
!osB
Retorna o Coseno hiperblico.
de!bin
Converte um nmero decimal para binrio.
de!Be.
Converte um nmero decimal para hexadecimal.
de!o!t
Converte um nmero decimal para octal.
deg'rad
Converte o nmero em graus ao equivalente em radianos.
e.p
Calcula o expoente de e (Neperiano ou base logartmica
natural)
e.pm1
Retorna exp(numero) - 1, computado de forma que preciso
mesmo quando o valor do nmero perto de zero.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

21:
PHP - ASP - JSP
f"oor
Arredonda fraes para baixo.
fmod
Retorna o mdulo de divises de nmeros de ponto flutuante.
getrandma.
Retorna o maior valor aletrio possvel.
Be.de!
Converte um nmero hexadecimal para decimal.
B/pot
Retorna a raiz quadrada de (num1*num1 + num2*num2).
isRfinite
Retorna true se for um nmero finito legal dentro dos limites
permitidos para um nmero float PHP nesta plataforma.
isRinfinite
Retorna true se for um nmero infinito(positivo ou negativo).
isRnan
Retona true se for um nmero.
"!gR%a"ue
Gerador congruente linear combinado.
"og1\
Logaritmo Base 10.
"og1p
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

22<
PHP - ASP - JSP
Retorna o log(1 + numero), calculado de forma que o valor do
nmero seja prximo de zero.
"og
Logaritmo natural
ma.
Localiza o maior nmero
min
Localiza o menor nmero
mtRgetrandma.
Retorna o maior valor aletrio possvel.
mtRrand
Gerador melhorado de nmeros aleatrios
mtRsrand
Semeia o gerador melhorado de nmeros aleatrios
o!tde!
Converte de octal para decimal.
pi
Obtm o valor de pi
poF
Retorna a base elevada ao expoente;
rad'deg
Converte o nmero em radianos para o equivalente em graus
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

221
PHP - ASP - JSP
rand
Gera um nmero aleatrio
round
Arredonda um nmero
sin
Seno
sinB
Seno hiperblico
s4rt
Reatorna a raiz quadrada.
srand
Semeia o gerador de nmeros aletrios
tan
Tangente
6anB
Tangente hiperblica
' ( ASP
*ormatCurren!/
Formata uma expresso como um dado do tipo currency(moeda).
*ormat-umber
Formata valores numricos, indicando o nmero de casas
decimais, o numero de zeros inciais ou finais.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

222
PHP - ASP - JSP
*ormatPer!ent
Converte uma expresso em formato de percentagem, incluindo o
caracter %.
Round
Retorna uma numero arredondado para um determinado nmero de
casa decimais.
, ( ;SP
int$a"ue
public abstract int intValue()
Retorna o valor de um nmero como um tipo int.
"ong$a"ue
public abstract long "ong$a"ue()
Retorna o valor de um nmero como um tipo "ong.
f"oat$a"ue
public abstract float floatValue()
Retorna o valor de um nmero como um tipo f"oat.
doub"e$a"ue
public abstract double doub"e$a"ue()
Retorna o valor de um nmero como um tipo doub"e.
b/te$a"ue
public byte b/te$a"ue()
Retorna o valor de um nmero como um tipo b/te.
sBort$a"ue
public short sBort$a"ue()
Retorna o valor de um nmero como um tipo sBort.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

22$
PHP - ASP - JSP
, - 7anipu"ao de )ata e Hora
1 ( PHP
dateHformatoI
Retorna uma data de acordo com o formato da string recebida
como parmetro.
Os seguintes caracteres so reconhecidos na estrutura da
string:
a - "am" ou "pm"
A - "AM" ou "PM"
B - Swatch Internet time
d - dia do ms, 2 digitos com zeros zeros esquerda; i.e. "01" at "31"
D - dia da semana, texto, 3 letras; e.g. "Fri"
F - ms, texto, longo; e.g. "January"
g - hora, Forma com 12-horas sem zeros esquerda; i.e. "1" at "12"
G - hora, Forma com 24-horas sem zeros esquerda; i.e. "0" at "23"
h - hora, Forma com 12-horas; i.e. "01" at "12"
H - hora, Forma com 24-horas; i.e. "00" at "23"
i - minutos; i.e. "00" at "59"
I (capital i) - "1" Se no horrio de vero, seno "0".
j - Dia do ms sem zeros esquerda; i.e. "1" at "31"
l (minscula 'L') - dia da semana, texo, longo; e.g. "Friday"
L - booleano se um ano bissexto; i.e. "0" ou "1"
m - ms; i.e. "01" at "12"
M - ms, texto, 3 letras; e.g. "Jan"
n - ms sem zeros esquerda; i.e. "1" at "12"
O - Diferena entre o horrio de Greenwich em horas; e.g. "+0200"
r - RFC 822 formatted date; e.g. "Thu, 21 Dec 2000 16:01:07 +0200" (adicionda no
PHP 4.0.4)
s - segundos; i.e. "00" at "59"
S - Sufixo ordinal para o dia do ms, 2 characteres; i.e. "st", "nd", "rd" or
"th"
t - nmero de dias do dado ms; i.e. "28" at "31"
T - Timezone setting desta mquina; e.g. "EST" or "MDT"
U - segundos desde a poca Unix (January 1 1970 00:00:00 GMT)
w - dia da semana, numrico, i.e. "0" (domingo) at "6" (Sbado)
W - ISO-8601 nmeros de semanas do ano, semana comea na segunda-feira
(adicionado no PHP 4.1.0)
Y - ano, 4 dgitos; e.g. "1999"
y - ano, 2 dgitos; e.g. "99"
z - dia do ano; i.e. "0" at "365"
Z - timezone offset em segundos (i.e. "-43200" to "43200"). O offset para as
timezones oeste de UTC sempre negativa, e para as leste de UTC sempre
positiva.
' ( ASP
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

22&
PHP - ASP - JSP
=eeE)a/-ame
Retorna o nome do dia da semana, de acordo com o parmetro
passado.
7ontB-ame
Retorna uma string indicando o nome do ms, de acordo com o
parmetro passado.
*ormat)ate6ime
Retorna uma expresso em formato de data e hora.
)ate
Data do sistema.
)ateAdd
Retorna uma data a qual sofreu uma adio de tempo.
)ate)iff
Retorna o intervalo de tempo entre duas datas.
)atePart
Contm um intervalo de tempo de uma data determinada.
-oF
Retorna a data e hora do sistema operacional.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

22*
PHP - ASP - JSP
1 - 7anipu"ao de Arra/s
1 ( PHP
1 - ?en&ri!as
arra/
array array(...);
a funo que cria um array a partir dos parmetros
fornecidos. possvel fornecer o ndice de cada elemento. Esse
ndice pode ser um valor de qualquer tipo, e no apenas de
inteiro. Se o ndice no for fornecido o PHP atribui um valor
inteiro sequencial, a partir do 0 ou do ltimo ndice inteiro
explicitado.
range
array range(minimo, maximo);
A funo range cria um array cujos elementos so os inteiros
pertencentes ao intervalo fornecido, inclusive. Se o valor do
primeiro parmetro for maior do que o do segundo, a funo retorna
false (valor vazio).
sBuff"e
shuffle(array);
Esta funo embaralha o array, ou seja, troca as posies
dos elementos aleatoriamente e no retorna valor algum.
si#eof
sizeof(array);
Retorna um valor inteiro contendo o nmero de elementos de um
array. Se for utilizada com uma varivel cujo valor no do tipo
array, retorna 1. Se a varivel no estiver setada ou for um array
vazio, retorna 0.
' - -a%egao
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

22-
PHP - ASP - JSP
Toda varivel do tipo array possui um ponteiro interno
indicando o prximo elemento a ser acessado no caso de no ser
especificado um ndice. As funes seguintes servem para modificar
esse ponteiro, permitindo assim percorrer um array para verificar
seu contedo (chaves e elementos).
reset
reset(array);
Seta o ponteiro interno para o primeiro elemento do array, e
retorna o contedo desse elemento.
end
end(array);
Seta o ponteiro interno para o ltimo elemento do array, e
retorna o contedo desse elemento.
ne.t
next(array);
Seta o ponteiro interno para o prximo elemento do array, e
retorna o contedo desse elemento.
pre%
prev(array);
Seta o ponteiro interno para o elemento anterior do array, e
retorna o contedo desse elemento. Funciona de maneira inversa a
next.
pos
pos(array);
Retorna o contedo do elemento atual do array, indicado pelo
ponteiro interno.
Ee/
key(array);
Funciona de maneira bastante semelhante a pos, mas ao invs de
retornar o elemento atual indicado pelo ponteiro interno do array,
retorna seu ndice.
ea!B
each(array);
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

227
PHP - ASP - JSP
Retorna um array contendo o ndice e o elemento atual indicao
pelo ponteiro interno do array. o valor de retorno um array de
quatro elementos, cujos ndices so 0, 1, key e value. Os
elementos de ndices 0 e key armazenam o ndice do valor atual,
e os elementos de ndices 1 e value contm o valor do elemento
atual indicado pelo ponteiro.
, - <rdenao
sort
sort(array);
A funo mais simples de ordenao de arrays. Ordena os
elementos de um array em ordem crescente, sem manter os
relacionamentos com os ndices.
rsort
rsort(array);
Funciona de maneira inversa funo sort. Ordena os elementos
de um array em ordem decrescente, sem manter os relacionamentos
com os ndices.
asort
asort(array);
Tem o funcionamento bastante semelhante funo sort. Ordena
os elementos de um array em ordem crescente, porm mantm os
relacionamentos com os ndices.
arsort
arsort(array);
Funciona de maneira inversa funo asort. Ordena os
elementos de um array em ordem decrescente e mantm os
relacionamentos dos elementos com os ndices.
Esort
ksort(array);
Funo de ordenao baseada nos ndices. Ordena os elementos
de um array de acordo com seus ndices, em ordem crescente,
mantendo os relacionamentos.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

22>
PHP - ASP - JSP
usort
usort(array, function compara);
Esta uma funo que utiliza outra funo como parmetro.
Ordena os elementos de um array sem manter os relacionamentos com
os ndices, e utiliza para efeito de comparao uma funo
definida pelo usurio, que deve comparar dois elementos do array e
retornar 0, 1 ou -1, de acordo com qualquer critrio estabelecido
pelo usurio.
uasort
uasort(array, function compara);
Esta funo tambm utiliza outra funo como parmetro.
Ordena os elementos de um array e mantm os relacionamentos com os
ndices, utilizando para efeito de comparao uma funo definida
pelo usurio, que deve comparar dois elementos do array e retornar
0, 1 ou -1, de acordo com qualquer critrio estabelecido pelo
usurio.
uEsort
uksort(array, function compara);
Esta funo ordena o array atravs dos ndices, mantendo os
relacionamentos com os elementos., e utiliza para efeito de
comparao uma funo definida pelo usurio, que deve comparar
dois ndices do array e retornar 0, 1 ou -1, de acordo com
qualquer critrio estabelecido pelo usurio.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

22:
PHP - ASP - JSP
3 - 6emp"ates
A principal vantagem no uso templates para gerar pginas
dinmicas se d devido a separao do cdigo HTML(layout) dos
scripts PHP, ASP ou JSP(lgica), pois num grande projeto
normalmente quem desenvolve o layout(HTML) no a mesma pessoa
que desenvolve a lgica(Scripts e Bancos de Dados) e tambm no
caso de necessidade de manuteno do layout, por exemplo, no se
torna necessrio que o desenvolvedor se envolva, visto que o HTML
e scripts esto separados.
Existem vrios sistemas de temp"ates para PHP, ASP e JSP na
web, mas todos acabam necessitando que certas tags sejam inseridas
no documento HTML e que certas bibliotecas ou plug-ins sejam
instalados no servidor, o que, na minha opinio, faz com que seu
cdigo fique dependente de terceiros e de uma certa mistura de
lgica tambm.
Mas como usar templates sem necessitar de terceiros?
1 - Todas minhas !"asses e fun+es armazenam seu valor de
retorno em uma varivel;
' - Uso uma simples funo que l um arquivo HTML e retorna
o cdigo-fonte da mesma:
Em PHP seria assim:
<?
function read_file($strfile) {
if(!file_exists($strfile)) return;
$thisfile = file($strfile);
while(list($line,$value) = each($thisfile)) {
$value = ereg_replace("\r","",$value);
$value = ereg_replace("\n","",$value);
$result .= "$value\r\n";
}
return $result;
}
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

2$<
PHP - ASP - JSP
?>
Em ASP seria assim:
<%
'Funao para ler os arquivos
function read_file( arquivo )
Dim ObjAbreArq, ObjFso, Var_Caminho,Linha
Var_Caminho = Server.MapPath (arquivo)
Set ObjFso = Server.CreateObject("Scripting.FileSystemObject")
Set ObjAbreArq = ObjFso.OpenTextFile(Var_Caminho, 1, True, False)
linha = ""
Do While Not ObjAbreArq.AtEndOfStream
linha = linha & ObjAbreArq.ReadLine & Chr(13) + Chr(10)
Loop
ObjAbreArq.Close
Set ObjAbreArq = Nothing
read_file = linha
end function
%>
Em JSP seriam assim:
<%!
public String get_Source (String pagina) {
DataInputStream dis;
String source = "";
try {
URL u = new URL (pagina);
dis = new DataInputStream (u.openConnection().getInputStream());
String s;
while ( ( s = dis.readLine() ) != null ) {
source += s;
}
} catch (Exception e){
out.println(e);
}
return source;
}
%>
, - Uso funes nativas de PHP/ASP/JSP para substituir no
cdigo-fonte, os comentrios HTML pelo contedo;
Em PHP seria assim:
str_replace("!--menu--""#$menu#$template%
Em ASP seria assim:
replace(template, "<!--menu-->", menu)
Em JSP seria assim:
template.replaceAll("<!--menu-->", menu);
Parece simples, e .
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

2$1
PHP - ASP - JSP
Agora vejamos tudo junto, criando uma pgina HTML que
esquerda ter um menu dinmico e a direita ter as noticias.
O primeiro passo criamos nosso arquivo HTML, que deve ser
salvo com o nome de temp"ate0Btm" e ser usado como nosso primeiro
template:
<html>
<head><title>Primeiro Template</title></head>
<body>
<table width=100% border=1>
<tr>
<td width=20%><!--menu--></td>
<td width=80%><!--noticias--></td>
</tr>
</table>
</body>
</html>
Agora que temos o template vamos us-lo com o script, criando
antes o arquivo abaixo que eu uso como repositrio de todas
funes, variveis e constantes comuns a todos os scripts, salve-o
como fun+es0pBp,asp e Nsp respe!ti%amente, mais tarde ele ser um
in!"ude:
Em PHP seria assim:
<?
function read_file($strfile) {
if(!file_exists($strfile)) return;
$thisfile = file($strfile);
while(list($line,$value) = each($thisfile)) {
$value = ereg_replace("\r","",$value);
$value = ereg_replace("\n","",$value);
$result .= "$value\r\n";
}
return $result;
}
//LISTA DE TEMPLATES
$home = "template.html";
?>
Em ASP seria assim:
<%
'Funao para ler os arquivos
function read_file( arquivo )
Dim ObjAbreArq, ObjFso, Var_Caminho,Linha
Var_Caminho = Server.MapPath (arquivo)
Set ObjFso = Server.CreateObject("Scripting.FileSystemObject")
Set ObjAbreArq = ObjFso.OpenTextFile(Var_Caminho, 1, True, False)
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

2$2
PHP - ASP - JSP
linha = ""
Do While Not ObjAbreArq.AtEndOfStream
linha = linha & ObjAbreArq.ReadLine & Chr(13) + Chr(10)
Loop
ObjAbreArq.Close
Set ObjAbreArq = Nothing
read_file = linha
end function
`LISTA DE TEMPLATES
Dim home = template.html
%>
Em JSP seria assim:
<%!
public String read_file(String pagina) {
DataInputStream dis;
String source = "";
try {
URL u = new URL (pagina);
dis = new DataInputStream (u.openConnection().getInputStream());
String s;
while ( ( s = dis.readLine() ) != null ) {
source += s;
}
} catch (Exception e){
out.println(e);
}
return source;
}
//LISTA DE TEMPLATES
String home = template.html;
%>
Ento, agora temos nosso template e nosso arquivo de funes
comuns, finalmente implementamos o uso do nosso template no script
principal:
Em PHP seria assim:
<?
//Fazendo o include do arquivo de funes
include("funcoes.php");
//lendo o arquivo de template
$template = read_file($home);
/* Carregando as variaveis que devero conter o contedo dinmico
sendo que estas informaes podem vir do banco de dados, arquivos, etc.
*/
$menu = "principal<br>noticias<br>chat<br>enquete";
$noticias = "Noticia um<br>Noticia 2<br>Noticia 3";
//Substituindo os comentrios do template pelos contedos das variveis
$template = str_replace("<!--menu-->",$menu,$template);
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

2$$
PHP - ASP - JSP
$template = str_replace("<!--noticias-->",$noticias,$template);
//Imprimindo a pgina pronta
print $template;
?>
Em ASP seria assim:
<!-- #include file="funcoes.asp" -->
<%
`lendo o arquivo de template
template = read_file(home)
`Carregando as variaveis que devero conter o contedo dinmico
`sendo que estas informaes podem vir do banco de dados, arquivos, etc.
menu = "principal<br>noticias<br>chat<br>enquete"
noticias = "Noticia um<br>Noticia 2<br>Noticia 3"
`Substituindo os comentrios do template pelos contedos das variveis
template = replace(template, "<!--menu-->", menu)
template = replace(template, "<!--noticias-->", noticias)
`Imprimindo a pgina pronta
response.write(template)
%>
Em JSP seria assim:
<%@ page import = "java.lang.*,java.io.*,java.util.* %>
<%@ include file="funcoes.jsp" %>
<%
//lendo o arquivo de template
String template = read_file(home);
//Carregando as variaveis que devero conter o contedo dinmico
//sendo que estas informaes podem vir do banco de dados, arquivos, etc.
String menu = "principal<br>noticias<br>chat<br>enquete";
String noticias = "Noticia um<br>Noticia 2<br>Noticia 3";
//Substituindo os comentrios do template pelos contedos das variveis
template.replaceAll("<!--menu-->", menu);
template.replaceAll("<!--noticias-->", noticias);
//Imprimindo a pgina pronta
out.println(template);
Pronto, este script mandar para o browser uma pgina HTML
com os comentrios substituidos pelo contedo dinmico que poder
vir de um banco de dados, de um arquivo texto, um arquivo XML,
etc.
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

2$&
PHP - ASP - JSP
5 - nsta"ao dos Ambientes
1 - Ambiente ;a%a8PHP
A extenso Java para PHP uma ferramenta extremamente
excitante. Utilizando este mdulo possvel estender ainda mais
as capacidades do PHP atravs do poder das classes Java. Veremos a
partir daqui como proceder a instalao deste mdulo assim como
alguns exemplos.
1 - nsta"ao em Ambiente =indoFs
As seguintes configuraes foram testadas com Servidor Web
Apache 1.3.12(atualmente est na verso 2.0.44), interpretador PHP
4.0.3(atualmente est na verso 4.3.3) e JDK 1.2.2. Estas
configuraes tambm foram testadas com verses mais antigas do
JDK e outros Webservers, como Microsoft (PWS and IIS), em
Plataformas Windows 95, Windows 98, NT4 e Windows 2000.
nsta"ando o ;)`G
Esta parte muito simples, visto que o JDK instala-se sem
muitas perguntas. Ser necessrio checar suas variveis de
ambiente(autoexec.bat no Windows 9x e Sistema dentro do Painel de
Controle no NT e 2000) e certificar-se que o diretrio
jdk1.x.x\bin est no seu PATH. Isto far a compilao de suas
classes Java facilmente.
No Win 9x adicione ao autoexec.bat:
PATH=%PATH%;C:\jdk1.2.2\bin
No Win NT adicione no fim da variavel de ambiente PATH:
;C:\jdk1.2.2\bin
7odifi!ando seu PHP0-G
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

2$*
PHP - ASP - JSP
Voc deve adicionar algo similar a isto no seu PHP.INI, na
seo [java]:
[java]
extension=php_java.dll
java.library.path=c:\web\php4\extensions\
java.class.path="c:\web\php4\extensions\jdk1.2.2\php_java.jar;c:\myclasses"
java.home = c:\jre1.3.1
java.library = c:\jre1.3.1\bin\hotspot\jvm.dll
Normalmente as pessoas colocam a diretiva
e.tensionVpBpRNa%a0d"" com as demais extenses, mas funciona
tambm se for logo colocado abaixo da seo [java] do PHP.INI.
A diretiva Na%a0"ibrar/0patB deve ser setada com a
localizao da pBpRNa%a0d"", e a diretiva Na%a0!"ass0patB deve ser
setada com a localizao de pBpRNa%a0Nar.
A diretiva Na%a0!"ass0patB deve tambm incluir os patBbs para
as demais classes que deseja usar.
6estando sua nsta"aoG
Criar um arquivo PHP similar a este:
&
$s'stem ( ne) *a+a(",a+a.lang.-'stem"%.
print "*a+a +ersion(".$s'stem-"getPropert'(",a+a.+ersion"%." br"/n".
print "*a+a +endor(".$s'stem-"getPropert'(",a+a.+endor"%." p"/n/n".
print "0-(".$s'stem-"getPropert'("os.name"%." ".
$s'stem-"getPropert'("os.+ersion"%." on ".
$s'stem-"getPropert'("os.arch"%." br"/n".
$1ormatter ( ne) *a+a(",a+a.te2t.-imple3ate4ormat"#"5555# 6666 dd# '''' 7at7 h:mm:ss a 8888"%.
print $1ormatter-"1ormat(ne) *a+a(",a+a.util.3ate"%%."/n".
&"
Se tudo estiver instalado e configurado corretamente a sada
dever ser algo do tipo:
Java version=1.2.2
*a+a +endor(-un 6icros'stems 9nc.
0-(:indo)s ;< =.>? on 2@A
:ednesda'# 0ctober >@# B??? at >?:BB:=< A6 China -tandard Cime
Um pequeno exemplo para teste, mas mostra como acessar
classes Java disponveis. Se o exemplo acima funcionar, voc teve
sucesso na sua instalao da extenso Java.
Criando e 2sando suas pr9prias C"asses ;a%aG
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

2$-
PHP - ASP - JSP
Criar suas prprias classes Java e muito fcil. Crie um novo
arquivo texto chamado pBptest0Na%a0
Este arquivo deve ser salvo na pasta que voc definiu no seu
Na%a0!"ass0patB,. Neste arquivo escreva o seguinte:
public class phptest{
public String valor;
public String test(String str) {
if(str.equals("")) {
str = "A string est vazia. ";
}
return str;
}
public String retornavalor() {
return "valor = " + valor;
}
}
Uma vez criado este arquivo, voc deve compil-lo com Na%a!
pBptest0Na%a na linha de comando. Isto depender da perfeita
configurao da varivel de ambiente PATH com a pasta java/bin.
Para testar a sua nova classe Java com o PHP, crie um novo
arquivo PHP chamado phptest.php. Ele deve conter o seguinte:
&
$m',a+a ( ne) *a+a("phptest"%.
print $m',a+a-"test("Dello :orld"% .
$m',a+a-"+alor ( "5ste E meu +alorF".
print "5u setei o +alor para: b"". $m',a+a-"+alor "Gb"".
print "6eu mEtodo *a+a retorna: b"" . $m',a+a-"retorna+alor(% "Gb"".
&"
Na%a0"ang0C"ass-ot*oundA.!eption
Se voc receber a mensagem de erro: =arningG
Na%a0"ang0C"ass-ot*oundA.!eption, significa simplesmente que seu
arquivo pBptest0!"ass no est salvo no Na%a0!"ass0patB
especificado em seu PHP.INI.
Um importante fato a lembrar que a linguagem Java
fortemente tipada, mas PHP no. Isto pode causar problemas quando
o Java espera uma String e recebe um nteger, ou vice-versa.
Experimente substituir a linha:
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

2$7
PHP - ASP - JSP
$m',a+a-"+alor ( " 5ste E meu +alorF".
por
$m',a+a-"+alor ( >BH=<AI@.
Voc deve fazer o !asting(converso explicita) de suas
variveis, para corrigir o tipo, antes de pass-las para o Java.
$m',a+a-"+alor ( (string%>BH=<AI@.
ou
$m',a+a-"+alor ( ">BH=<AI@".
O exemplo phptest.java o mais simples exemplo de como voc
pode criar suas prprias classes Java e fazer o PHP acess-las.
' - Ambiente PHP no =indoFs
1 - Apa!Be
O servidor web que ser utilizado o Apache, que est
disponvel para download em:
http://httpd.apache.org/
A instalao do Apache bastante simples, similar a qualquer
aplicao windows. A nica restrio que o Finso!E' deve estar
instalado no sistema. Se no estiver, o download pode ser feito
em:
http://www.microsoft.com/windows95/downloads/contents/wuadmintools/s_wunetworkin
gtools/w95sockets2/
Depois de instalado, necessrio fazer a configurao do
servidor, atravs do arquivo Bttpd0!onf. Todas as configuraes
esto comentadas. O mnimo que deve ser configurado o diretrio
onde os documentos estaro, atravs da opo )o!umentRoot. Basta
procurar a opo e escrever o nome do diretrio em seguida, como
no exemplo:
DocumentRoot "C:\teste\"
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

2$>
PHP - ASP - JSP
Uma outra configurao bsica a )ire!tor/nde., que informa
ao servidor quais os arquivos sero exibidos automaticamente como
ndice do diretrio. isso que faz com que ao digitar, por
exemplo,www.naredemundial.com.br, o servidor saiba qual dos
arquivos do diretrio deve ser exibido. Abaixo temos um exemplo da
utilizao do )ire!tor/nde.:
DirectoryIndex index.html index.htm index.php
Feito isso, crie um arquivo com um dos nomes definidos como
ndice e coloque no diretrio definido como root. Execute o
servidor Apache e tente acessar o endereo http://localhost pelo
browser. Se a pgina for exibida, porque o servidor foi
instalado corretamente.
' - PHP
O PHP pode ser conseguido em www.php.net, e sua instalao
tambm simples. Basta descompactar os arquivos para o diretrio
c:\php e editar o arquivo de configurao.
O arquivo php.ini-dist deve ser copiado para o diretrio do
windows (geralmente c:\windows ou c:\winnt) com o nome php.ini.
Depois de copiado, o arquivo pode ser editado, bastando modificar
a linha extension_dir, que deve conter o diretrio onde esto os
mdulos (c:\php). Veja o exemplo:
extension_dir = c:\php
Feito isso, podemos partir para a configurao do servidor
Apache, necessria para que este reconhea o PHP. Editando
novamente o arquivo httpd.conf, as linhas a seguir devem ser
adicionadas no final do arquivo:
ScriptAlias /php/ "c:/php/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php/php.exe"
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

2$:
PHP - ASP - JSP
A primeira linha define o diretrio onde est o PHP. A
segunda cria um tipo para o PHP, definido que todos os arquivos
com a extenso .php devem passar pelo interpretador PHP. A
terceira linha define o executvel do interpretador PHP.
Depois de salvar o arquivo, podemos testar se a instalao do
PHP foi bem sucedida. A melhor maneira criar um arquivo chamado
teste.php e salvar no diretrio raiz do servidor Apache. O arquivo
deve conter a seguinte informao:
<?
phpinfo();
?>
Acessando a pgina atravs do servidor
(http://localhost/teste.php), devemos ter como resultado uma
listagem de todas as configuraes do PHP:
, - 7/SQL
O banco de dados MySQL pode ser feito o download em:
http://www.mysql.com/download.html
Sua instalao tambm bastante simples, tambm no modelos
de instalao de qualquer aplicativo para Windows.
As configuraes necessrias so relativas a segurana, e
exigem um conhecimento mais avanado de administrao de
servidores. Como essa instalao destina-se apenas a praticar o
PHP, no necessrio fazer muitas alteraes na segurana,
bastando apenas saber como adicionar usurios.
Para isto, basta utilizar o comando GRANT, que tem a seguinte
sintaxe:
GRANT privilegio [(lista_colunas)]
[, privilegio [(colunas)] ...]
ON {tabela | * | *.* | db.*}
TO usuario [IDENTIFIED BY 'senha']
[, usuario [IDENTIFIED BY 'senha'] ...]
[WITH GRANT OPTION]
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

2&<
PHP - ASP - JSP
Onde privilgio uma das palavras reservadas listadas a
seguir:
AJJ PR9K9J5L5-
49J5
R5J0A3
AJC5R
9M35N
-5J5CC
CR5AC5
9M-5RC
-DOC30:M
35J5C5
PR0C5--
OP3AC5
3R0P
R545R5MC5-
O-AL5
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

2&1
PHP - ASP - JSP
Cada palavra representa um tipo de acesso (s) coluna(s),
tabela(s) ou base(s) de dados listadas logo depois da clusula ON.
Usurio deve conter o nome do usurio (login) e o host
permitido (ex.: teste@localhost).
Abaixo temos um exemplo da utilizao do comando grant:
?RA-6 SELECT, INSERT, UPDATE <- *
6< teste@localhost )A-6*A) Ba senhateste;
O exemplo cria o usurio teste, com a senha senhateste,
que s pode acessar da mesma mquina onde est o servidor
(localhost), e s pode utilizar os comandos select, insert e
update.
Tambm possvel adicionar usurios utilizando o comando
INSERT, pra alterar diretamente na tabela de privilgios, que a
tabela user da base de dados mysql, que possui os campos para
definir nome de usurio, host, senha, e permisses especficas.
, - Ambiente PHP no Linu.
1 - Ser%idor Apa!Be e PHP
Faa os downloads dos programas de instalao,
respectivamente, em:
http://httpd.apache.org/
e
http://www.php.net/downloads.php
Depois siga os passos abaixo:
V para o diretrio em que sero descompactados os arquivos
(/usr/src):
# cd /usr/src
Descompacte o Apache e o PHP:
# tar xvzf apache_1_3.x.tar.gz
# tar xvzf php-4.x.x.tar.gz
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

2&2
PHP - ASP - JSP
V para o diretrio do Apache e configure-o
# cd apache_1.3.x
# ./configure -prefix=/www
V agora para o diretrio do PHP e proceda a instalao
# cd../php-x.x.x
# ./configure -with-mysql -with-apache=../apache_1.3.x -enable-track-vars -
enable-trans-sid
Compile e instale o PHP
# make
# make install
Retorne ao diretrio do Apache e configure-o para o PHP,
executando a compilao e a instalao do Apache com PHP:
# cd ../apache_1.3.x
# /configure -activate-module=src/modules/php4/libphp4.a
# make
# make install
Volte ao diretrio do PHP e copie o arquivo php.ini:
# cd ../php-x.x.x
# cp php.ini-dist /usr/local/lib/php.ini
V at o diretrio de configurao do Apache (/www/conf) e
altere o arquivo httpd.conf, inserindo a seguinte linha:
AddType application/x-httpd-php .php
Por fim, inicialize o Apache
# cd /www/bin
# ./apachectl start
' - 7/SQL
Faa os download do MySQL em:
http://www.mysql.com
Crie um grupo de usurios chamado MySQL
# groupadd mysql
Adicione um novo usurio MySQL relacionado ao grupo MySQL
# adduser -g mysql mysql
V para o diretrio base de instalao ( em geral /usr/local)
# cd /usr/local
Descompacte e extraia os fontes do MySQL
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

2&$
PHP - ASP - JSP
# tar xvzf /diretorio/mysql-VERSAO-OS.tar.gz
Em que <diretrio> o local onde est o arquivo tar e
VERSAO-OS a verso e o sistema operacional dos fontes.
Altere o nome do diretrio de mysql-VERSAO-OS para mysql
# mv mysql-VERSAO-OS mysql
V para o diretrio do MySQL
# cd mysql
Execute o script de instalao do Banco de dados
# scripts/mysql_install_db
Altere os donos e os grupos dos diretrios do MySQL
# chown -R root /usr/local/mysql
# chown -R mysql /usr/local/mysql/var
# chown -R mysql /usr/local/mysql
# chown -R root /usr/local/mysql/bin/
Inicialize o MySQL
# bin/safe_mysqld -user=mysql &
O Site abaixo possui instrues mais detalhadas para instalar
PHP, Apache, Mysql, Oracle e muito mais no ambiente Linux:
http://www.e-gineer.com/instructions/
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

2&&
PHP - ASP - JSP
: - nsta"ao e Configurao
do Ambiente <)BC
Para criar uma conexo ODBC, Abra o Paine" de Contro"e,
depois clique no cone <)BC:
Depois aparecer uma tela semelhante a esta:
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

2&*
PHP - ASP - JSP
Selecione o marcador S/stem )S-(DSN de Sistema).
Selecione o boto Add(Adicionar).
Voc ter uma tela como esta:
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

2&-
PHP - ASP - JSP
Selecione o 7i!rosoft A!!ess )ri%er para Microsoft Access, o
SQL Ser%er para Microsoft SQL SERVER, e assim por diante .
Clique no boto finisB(Finalizar).
Voc ter uma tela como esta:
No campo )ata Sour!e -ame(Nome da Fonte de Dados), digite um
nome para seu )ata Sour!e(Fonte de Dados), este ser o nome que
voc chamar sua Base de Dados.
No campo )es!ription(Descrio) digite uma breve descrio
sobre sua Base de Dados.
Finalmente, clique no boto Se"e!t(Selecionar). A partir
deste menu selecione a Base de Dados Access que voc quer acessar
atravs da sua Fonte ODBC.
Pronto, est feito!
Cerli Antnio da Rocha - cerli@naredemundial.com.br - Pgina

2&7

Você também pode gostar