Visão Geral.......................................................................................................................................................1 Bancos de Dados............................................................................

.................................................................2 Utilizando DNS de Sistema...............................................................................................................................2 Componentes ODBC32Bits..............................................................................................................................3 Como instalar um componente ODBC..........................................................................................................3 Quais os componentes de um sistema de banco de dados..............................................................................5 A SQL(Structured Query Language).................................................................................................................5 Operadores de Comparação.........................................................................................................................6 Operadores Lógicos......................................................................................................................................6 Exemplos de instruções SQL........................................................................................................................6 Utilizando o Microsoft Access 8.0/97................................................................................................................9 Criando um banco de dados no Microsoft Access........................................................................................9 Utilizando o My-Sql 3.2.3................................................................................................................................11 Conectando/Desconectando o MySql.........................................................................................................11 Criando e abrindo um banco de dados.......................................................................................................11 Criando tabelas e campos...........................................................................................................................12 Para criar uma tabela dentro do banco de dados você deve:.....................................................................12 Para exibir a estrutura da tabela.................................................................................................................13 PHP................................................................................................................................................................14 Criando e executando um arquivo em PHP................................................................................................14 Enviando informações do cliente para o servidor(Navegador)....................................................................14 Enviando informações do servidor para o cliente(Servidor Web)................................................................14 Integração do Formulário HTML e PHP......................................................................................................14 Tornando a informação persistente na aplicação........................................................................................15 Passando informações através de variáveis dinâmicas..............................................................................16 Enviando informações para o usuário.........................................................................................................17 Gerenciando um banco de dados MySql....................................................................................................17 Estabelecendo a comunicação com o banco de dados..............................................................................18 Utilizando rotinas atuárias...........................................................................................................................18 Gravando Informações no Banco de dados MySQL................................................................................18 Atualizando Informações no Banco de dados MySQL.............................................................................18 Excluindo Informações no Banco de dados MySQL................................................................................19 Consultando Informações no Banco de dados MySQL...........................................................................19 ASP................................................................................................................................................................21 A Estrutura da Active Server Pages............................................................................................................21 Criando e executando um arquivo em ASP................................................................................................22 Informação persistente na aplicação...........................................................................................................22 Passando informações específicas para um usuário...............................................................................22 Integração do formulário HTML com ASP...................................................................................................23 Enviando informações para o usuário.........................................................................................................23

Gerenciando um banco de dados...................................................................................................................23 Utilizando ADO com Active Server Pages...................................................................................................24 Objeto Connection...................................................................................................................................24 O objeto recordset (registros)..................................................................................................................25 Gerenciando componentes C.O.M com ASP..............................................................................................29 Utilizando o objeto aspmail.........................................................................................................................29 Registrando componentes ActiveX no Servidor..............................................................................................31 XML................................................................................................................................................................32 XML Vs. HTML............................................................................................................................................32 Criando Documento XML............................................................................................................................32 Estrutura de um documento XML................................................................................................................33 Prolog......................................................................................................................................................33 Comnetários............................................................................................................................................34 Elementos ROOT....................................................................................................................................34 Elementos CHILD....................................................................................................................................34 Elementos Vazios....................................................................................................................................34 Criando Data Island com XML e HTML..........................................................................................................35 Utilizando Validação com Schemas................................................................................................................35 Melhorando a aparência com XSLT...............................................................................................................35 Mecanismos do XSLT.................................................................................................................................35 Criando Um arquivo XSLT..........................................................................................................................35 UTILIZANDO ACTIVE SERVER PAGES E MSXML3.0..................................................................................35

1

Visão Geral
“... Neste módulo você vai aprender como as tecnologias ASP, PHP, ADO, SQL, XML, ACTIVEX, COM, Dlls são utilizadas para tornar sua aplicação dinâmica e altamente produtiva. Para compreender os conceitos e lições bem como os códigos mostrados e demonstrados neste material você tem que racionar como um servidor Web”. Saber analisar e responder aos pedidos do cliente através dos protocolos web (http, FTP) e principalmente entender que o termo servidor é muito mais que um computador principal, é a maneira como os serviços de uma aplicação se relacionam...”“. Marcelo Costa

2

Bancos de Dados
Sistemas de bancos de dados são utilizados para armazenar grandes quantidades de informações sobre um determinado assunto. Exemplo: informações sobre o estoque da sua empresa. Estas informações podem estar relacionadas com outras informações no mesmo sistema de banco de dados ou de outros bancos de dados em outras plataformas operacionais em um ambiente de rede como intranet e/ou internet. Exemplo: as informações sobre os produtos que a empresa vende pode estar vinculado as informações sobre os fornecedores. Neste módulo você vai estudar sobre as ferramentas e recursos utilizados na criação e gerenciamento de sistemas de bancos de dados através do Microsoft Access e do MySql. As aplicações servidor(ASP, PHP) que utilizam estes bancos de dados trabalham com ODBC(open database conectivity) para efetuar a comunicação com estes programas. A seção posterior mostra como criar uma comunicação utilizando ODBC através do applet Fontes de dados ODBC contido no painel de controle.

Utilizando DNS de Sistema
Você pode utilizar o DNS(Data Source Name) ou NFD(Nome da Fonte de dados) para prover comunicação com o banco de dados que contém informações a serem coletas pela sua aplicações Web. Para criar uma comunicação você deve: 1. 2. Remover. No Painel de Controle, clique 2x no ícone Fonte de dados ODBC 32 bits e, Para criar uma instancia de conexão, clique em Adicionar. Para alterar os em seguida, clique na guia DNS de sistema ou NFD de sistema. parâmetros de uma conexão existente clique em Configurar. Para apagar uma conexão clique em

3.

Neste exemplo você deve clicar em Adicionar e, em seguida, clique no

nome do Driver de banco de dados desejado. Por fim clique em Concluir.

3

Componentes ODBC32Bits
Fornecer acesso aos dados de diversos aplicativos de bancos de dados pode ser uma operação muito complexa. Os aplicativos que usam padrão ODBC, como o Microsoft Access e MYSql, aliviam essa carga usando meios de fornecedor neutro para trabalhar com SGBDs(Sistemas de Gerenciamento de Bancos de Dados). A tabela abaixo mostra as camadas do ODBC Aplicativo – A.D.O. Gerenciador de Driver (ODBC32.DLL) Driver SGBD (DLL) Software de Rede Fonte de dados SGBD) O aplicativo chama as funções ODBC para conectar-se a uma fonte de dados; O gerenciador de driver fornece uma lista de fontes de dados disponíveis, carrega os drives dinamicamente à medida que eles forem necessários. • O Driver SGBD, desenvolvido separadamente do aplicativo, processa as chamadas de função ODBC e pode converter a sintaxe SQL padrão da fonte de dados de destino em SQL nativa.

• •

Como instalar um componente ODBC
Nesta seção você vai aprender como instalar o componente ODBC para o banco de dados MySql atrvés do arquivo MyODBC-3.51.01.exe 2. procure a pasta no servidor contendo o arquivo MyODBC-3.51.01.exe

4

3. Na tela de apresentação clique sobre o botão next. Será apresentada a tela de contrato.

4. Clique novamento sobre o botão next. Agora o sistema indica que você está pronto para instalar os componentes do driver odbc para o MySql

5. Para iniciar a copia dos arquivos clique em next

5

6. Depois de terminada a instalação dos arquivos clique em Finish Importante: Você pode utilizar o Driver instalado, a partir do applet Fonte de dados ODBC 32 bits contido no painel de controle. Para obter maiores informações sobre a utilização do applet Fonte de dados ODBC 32 bitx consulte a seção

Quais os componentes de um sistema de banco de dados
Um sistema de banco de dados é constituído de um arquivo principal. Dentro deste arquivo principal existem as tabelas. As tabelas são utilizadas para armazenar informações sobre um determinado assunto. Exemplo: Uma tabela de produtos contém informações sobre os produtos que a empresa vende (nome, quantidade etc..). A tabela é composta de campos. Os campos são utilizados para separar e organizar as informações de um assunto em grupos. Exemplo: O campo Descrição pode conter o nome dos produtos da tabela de produtos.

Banco de Dados Tabela de Clientes Tabela de Produtos Tabela de Fornecedores

Nome Endereço

Código Descrição

Nome CGC

Para criar estes componentes bem como pesquisar as informações gravadas dentro dos campos de uma ou mais tabelas você pode utilizar a aplicativos como Microsoft Access, Microsoft SQL Server, Mysql, entre outros. A linguagem de programação SQL associada a estes aplicativos também permite a criação de bancos de dados e seus componentes.

A SQL(Structured Query Language)
A linguagem SQL é utilizada para oferecer uma comunicação programável com as fontes de dados padrão ODBC e OLEDB. Esta seção mostra exemplos sobre a utilização de alguns comandos SQL. Estes

6 comandos podem ser atribuídos a variáveis e utilizados em conjunto com os objetos do componente ADO(ActiveX Data Object). A tabela abaixo mostra uma descrição de algumas instruções em SQL organizadas por cláusulas e comandos. Para maiores informações consulte Exemplos de instruções SQL posteriormente. INSTRUÇÃO SET ORDER BY WHERE TIPO cláusula cláusula cláusula DESCRIÇÃO Especifica a coluna(campo) e os valores que serão mudados na tabela do banco de dados Classifica uma ou mais colunas(campos0 em ordem crescente(ASC) ou decrescente(DESC) Determina(m) qual(is) linha(s), isto é, registro(s) que será(ão) atualizado(s) no banco de dados. A cláusula where pode utilizar operadores de comparação, Intervalos, Listas e Lógicos. Estes operadores podem ser utilizados de forma UPDATE SELECT FROM INSERT comando comando comando isolada ou em conjunto. Muda uma única linha ou um grupo de registros em uma tabela Especificar quais colunas(campos) do banco de dados você deseja utilizar Especificar as tabelas onde as colunas(campos) estão armazenados Inserir linhas de informação, isto é, registros no banco de dados com a palavra chave VALUES. A palavra-chave INTO possibilita especificar quais LIKE cláusula colunas serão utilizadas Seleciona registros que atendam uma parte do valor específicado na srting. Exemplo: para selecionar todos os produtos que comecem pela letra A você DELETE Comando pode utilizar LIKE 'A%' Deletar

Operadores de Comparação
Você pode utilizar os operadores de comparação juntamente com a cláusula WHERE. Através dos operadores você pode criar poderosas expressões para filtrar os dados de acordo com a necessidade da sua aplicação. = > < !> % Igual a Maior do que Menor do que Não maior do que Todos >= <= <> !< Maior ou Igual a Menor ou igual a Diferente Não menor do que

Operadores Lógicos
Você pode utilizar os operadores lógicos AND e OR em conjunto com a cláusula WHERE.

Exemplos de instruções SQL
As tabelas abaixo mostram rotinas em SQL utilizadas em consultas, atualização, Exclusão e inserção de informações nos campos dos bancos de dados. Importante: Você pode utilizar o programa Microsoft Query para testar os exemplos abaixo. Para iniciar o programa Microsoft Query localize e abra o arquivo Msqry32.exe.

7 Os exemplos abaixo utilizam os campos das tabelas contidas no banco de dados GrupoAbc.MDB. Antes de começar a utilizar as instruções SQL abaixo, é recomendável abrir o banco de dados citado e estudar o relacionamento entre os campos e as tabelas do banco de dados. Utilizando a cláusula SELECT para todos os campos. “select * from tblprodutos” Utilizando a cláusula SELECT para alguns campos CONSULTAR ATUALIZAR APAGAR INSERIR “select nmprodutodb,pvprodutodb from tblprodutos” Utilizando a cláusula SELECT com ORDER BY “select * from tblclientes order by nmclientedb asc” Utilizando a cláusula SELECT com WHERE e operadores de comparação “select * from tblclientes where ufclientedb = ‘PR’” Utilizando a cláusula SELECT com WHERE e operadores de comparação e Lógicos “select * from tblprodutos where pvprodutodb >0 and pvprodutodb <=50” Importante: O símbolo (*) indica que a instrução select vai buscar as informações de todos os campos do banco de dados. Você pode substituir o símbolo do * pelo(s) nome(s) do(s) campo(s) do banco de dados que você deseja consultar. Utilizando a cláusula UPDATE e SET “update tblclientes set cepclientedb = 81020500” Utilizando a cláusula UPDATE e SET com WHERE e operadores de comparação “update tblclientes set ufclientedb = ‘PR’ where ufclientedb = ‘SC’” Utilizando a cláusula UPDATE e SET com WHERE, operadores de comparação e operadores lógicos “update tblclientes set ufclientedb = ‘PR’ where ufclientedb = ‘SC’ and sxclientedb = ‘masculino’” Utilizando a cláusula UPDATE e SET com operadores aritiméticos “update tblprodutos set pvprodutodb = pvproduto + (pvprodutodb * 0.60)”

Os exemplos abaixo mostram como excluir informações de uma ou mais tabelas do banco de dados. Utilizando a cláusula DELETE “delete cepclientedb from tblcliente” Utilizando a cláusula DELETE com WHERE “delete * from tblclientes where ufclientedb = ‘SC’” Utilizando a cláusula DELETE e WHERE com operadores de comparação e operadores lógicos “delete * from tblclientes where ufclientedb = ‘SC’ and sxclientedb = ‘masculino’” Os exemplos abaixo mostram como inserir informações em uma tabela do banco de dados através da cláusula INSERT INTO Utilizando a cláusula INSERT
“insert tblclientes values (‘Ana Cláudia’,’Rua das Flores, 900’,81020030,’ana@linda.com.br’)”

Utilizando a cláusula INSERT INTO
“insert into tblclientes (nmclientedb,enclientedb,cepclientedb,emclientedb) values (‘Ana Cláudia’,’Rua das Flores, 900’,81020030,’ana@linda.com.br’)”

8 Utilizando a cláusula INSERT INTO e SELECT

Importante: Para adicionar textos que contenham apóstrofos, utilize o símbolo (‘) apóstrofo 2 vezes. Exemplo: Marca D’água deve ser inserido como Marca D‘’água

9

Utilizando o Microsoft Access 8.0/97
Criando um banco de dados no Microsoft Access
No Microsoft Access, selecione a opção Banco de dados vazio e, em seguida, clique OK Na caixa abaixo, informe o local (pasta), o nome do banco de dados. Na caixa salvar como tipo mantenha a opção Banco de dados do Microsoft Access (*.MDB) e, em seguida, clique em Criar.

Selecione a guia tabela e, em seguida, clique em novo. Por fim marque a opção modo de estrutura e clique em Ok No modo estrutura, você deve criar os campos que serão utilizados para armazenar informações (estoque, clientes, fornecedores etc...). Na coluna Nome do campo você deve informar o nome do campo de acordo com a informação que será armazenada neste. Exemplo: Campo NOME armazena os nomes dos cliente. Na coluna Tipo de dados, você deve escolher o tipo de informação que será armazenada no campo. Exemplo: a campo NOME receberá os nomes dos clientes, por este fato o tipo de dados é texto. Na coluna Descrição, você pode digitar mensagens explicativas para indicar como os campos devem ser preenchidos. Exemplo: "..o campo nome deve ser preenchido com letras maiúsculas.."

10 Neste ponto você já pode criar uma tabela utilizando a janela mostrada acima. Digite as informações da tabela abaixo: Nome do campo Tipo de dados #Idprodb Autonumeração coprodb Texto nmprodb Texto ctprodb Texto qtprodb Texto pcprodb Número pvprodb Número mgprodb Número obprodb Memorando Após digitadas as informações acima, selecione o campo idprodb e, em seguida, clique em editar  chave primária. Salve a tabela com o nome produtosxyz e, em seguida, feche o banco de dados

11

Utilizando o My-Sql 3.2.3
O MySql é um sistema de banco de dados servidor, isto é, além de controlar diversos arquivos de bancos de dados e seus componentes, o My sql controla os usuários e suas permissões de acesso aos componentes dos bancos de dados. Para criar um banco de dados no MySql você deve se conectar ao banco de dados e, em seguida, utilizar comandos da linguagem SQL a partir do console do programa para criar e ativar o banco de dados e, em seguida, criar as tabelas contendo os campos.

Conectando/Desconectando o MySql
1. Acesse o prompt do ms-dos e, em seguida, digite c:\mysql\bin\mysql. Por fim pressione ENTER D:\>mysql\bin\mysql -u root -p Enter password:****** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 4 to server version: 3.23.44-max-debug Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> Importante: Algumas instalações do MySql permitem aos usuários se conectares como usuários anônimos quando estão utilizando o servidor no computador local. Se este é o seu caso então para se conectar ao MySql basta digitar: \mysql\bin\mysql e, em seguida, pressionar ENTER. 2. Para finalizar o MySql, na linha de comando mysql>, digite quit e, em seguida, pressione ENTER. mysql> quit Bye

Criando e abrindo um banco de dados
Para criar um banco de dados no MySql você deve: 1. no prompt do MySql, digite CREATE DATABASE nome_do_banco_de_dados e, em seguida, pressione ENTER mysql> CREATE DATABASE empresaxyz; Query OK, 1 row affected (0.11 sec) Importante: O MySql gera 03 arquivos para gerenciamento do banco de dados. A tabela abaixo descreve cada um desses arquivos: Arquivo produtoxyz.frm produtoxyz.MYI produtoxyz.MYD Descrição Layout das tabelas Dados das tabelas Arquivo de Indice

12 Para abrir um banco de dados você deve: 1. na linha de prompt do MySql, digite USE nome_do_banco_de_dados mysql> USE empresaxyz; Database changed

Criando tabelas e campos
Antes de criar as tabelas e os campos do banco de dados você precisa conhecer os comandos SQL que definem o tipo de dados e as propriedades dos campos. • Para definir um campo com o tipo texto você utiliza o comando CHAR(qte) aonde qte é o tamanho do campo fixo. Você ainda pode utilizar o comando VARCHAR(qte) aonde qte é o tamanho do campo não fixo. • • Para definir um campo com o tipo de dados numérico e inteiro utilize o comando INT(qte) aonde qte corresponde ao tamanho do campo Para definir um campo numérico com casas decimais utilize o comando DOUBLE(qte,decimais) aonde qte corresponde ao tamanho do campo e decimais corresponde a quantidade de casas decimais • • • • • Para criar campos do tipo data ou hora utilize o comando DATE Para definir um campo como chave primária da tabela utilize o comando PRIMARY KEY(campo1, campo2) aonde campo1 e campo2 correspondem aos nome dos campos Para evitar que um campo tenha preenchimento zero utilize o comando UNSIGNED ZERFILL Para definir um campo com numeração automática utilize o comando AUTO_INCREMENT Para definir um valor padrão para o campo utilize o comando DEFAULT ‘valor’ aonde valor corresponde ao valor gravado por padrão no banco de dados.

Para criar uma tabela dentro do banco de dados você deve:
1. No prompt do MySql, digite CREATE TABLE nome_da_tabela (campo tipo, campo tipo..) mysql>
CREATE TABLE produtoxyz (idprodb SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,

-> coprodb CHAR(20) UNSIGNED ZEROFILL DEFAULT ‘000’ NOT NULL, -> nmprodb VARCHAR(100) NOT NULL, -> ctprodb VARCHAR(20) NOT NULL, -> qtprodb DOUBLE(10,2) NOT NULL, -> pcprodb DOUBLE(10,2) NOT NULL, -> pvprodb DOUBLE(10,2) NOT NULL, -> mgprodb DOUBLE(10,2) NOT NULL, -> obprodb VARCHAR(200) NOT NULL, -> PRIMARY KEY(idprodb)); Query OK, 0 rows affected (0.44 sec) Importante: Para visualizar as tabelas do banco de dados utilize o comando SHOW nome_da_tabela

13

Para exibir a estrutura da tabela
1. No prompt do MySql digite DESCRIBE nome_da_tabela mysql> DESCRIBE produtoxyz; Field Type idprodb smallint(5) unsigned coprodb varchar(20) nmprodb varchar(100) ctprodb varchar(20) qtprodb double(10,2) pcprodb double(10,2) pvprodb double(10,2) mgprodb double(10,2) obprodb varchar(200) 9 rows in set (0.22 sec) Null Key PRI Default NULL Extra auto_increment

0.00 0.00 0.00 0.00

14

PHP
Criando e executando um arquivo em PHP
Para integrar seus script’s em php com o código HTML da sua página você pode utilizar as opções abaixo: Neste primeiro exemplo é utilizado o sinal de menor(<) seguido do ponto de interrogação(?) e o nome PHP, para indicar o início do script em PHP. Para indicar o final do script é utilizado o ponto de interrogação (?) seguido do sinal de menor (<) <?PHP //exemplo de código eme PHP echo phpinfo(); ?> A outra maneira é indicar o tipo de script dentro da tag <SCRIPT>. O atributo LANGUAGE recebe o nome da linguagem enquanto o atributo RUNAT indica que os comandos serão interpretados pelo servidor. <SCRIPT LANGUAGE=’php’ RUNAT=’server’> //exemplo de código em php echo phpinfo(); </SCRIPT>

Enviando informações do cliente para o servidor(Navegador)
Para compreender o envio de informações do cliente para o servidor imagine as situações abaixo:   Um usuário clicando no link de uma página Web; Um usuário acionando o botão de um formulário para gravar informações de cadastro em um banco de dados ou qualquer outro dispositivo de armazenamento. Estas ações fazem o navegador enviar as informações do link ou do formulário através do protocolo HTTP. Estas informações podem trafegar pelo cabeçalho(head) ou pelo corpo(body) do procolo HTTP. As seções abaixo mostram como é possível controlar a maneira como as informações são enviadas para o servidor a partir de um formulário ou link da página Web.

Enviando informações do servidor para o cliente(Servidor Web)
O servidor Web utiliza as linguagens ASP, PHP para coletar e analisar as informações do cabeçalho e do corpo do protocolo HTTP. Estas linguagens também se encarregam de efetuar a resposta do processamento para o cliente.

Integração do Formulário HTML e PHP
Para controlar a maneira como as informações dos campos de um formulário serão enviadas para o servidor, você deve utilizar o atributo METHOD da tag FORM. Para maiores informações sobre o atributo METHOD Consulte Criando formulário em HTML da apostila Script Enviroment.

15 Ao preencher todos os campos e clicar sobre o botão inscrever-se os nomes dos dos campos do formulários e os valores digitados dentro campos pelo serão transmitidos servidor Web navegador

através do protocolo HTTP, para o

Quando as informações de um formulário são enviadas para processamento por um script php, os nomes e valores dos campos do formulário ficam armazenados em variáveis de ambiente do PHP. Caso o envio seja feito através do método POST, então as informações ficarão armazenadas na variável $HTTP_POST_VAR. Porém se o envio for feito através do método GET então as informações ficarão armazenadas na variável $HTTP_GET_VAR. O formulário abaixo mostra um exemplo de cadastro de pessoas. Importante: Se a diretiva register_globals do arquivo PHP.INI estiver definida com o valor true, o nome do campo do formulário será transformado em variável com escopo global.

Tornando a informação persistente na aplicação
Antes de tornar as informações persistentes você deve pensar em duas situações:  As informações digitadas no formulário devem ser visualizadas somente pelo usuário que preencheu o formulário.  As informações devem estar disponíveis para todas as páginas da aplicação em que o usuário visitar, para evitar à necessidade de autenticação do usuário no banco de dados à cada página que o mesmo visita. Para estes casos você pode utilizar as variáveis de sessão. O PHP possui funções que permitem a você instanciar estas variáveis. A tabela abaixo mostra as funções utilizadas para gerenciar as variáveis de sessão

16 Função Session_register Session_unregister Session_destroy Descrição Registra uma variável de sessão, na sessão atual. Remove uma variável de sessão da sessão atual. Destroi todas as variáveis da sessão atual.

Importante: as diretivas track_vars e register_globals do arquivo PHP.INI influenciam na forma como as variáveis são armazenadas. A tabela abaixo mostra as comparações e valores destas diretivas. Track_vars True(default) False Register_globals False True Descrição As variáveis de sessão poderão ser criadas e utilizadas somente a partir do array $HTTP_SESSION_VARS. Todas as variáveis com escopo global poderão ser registradas como variáveis de sessão. As variáveis de sessão poderão ser utilizadas True True da mesma forma que as variáveis globais Neste caso as entradas para variáveis globais e sessão possuirão os mesmos valores. O exemplo abaixo verifica se o campo txtnome do formulário foi preenchido, caso a condição seja verdadeira a função session_register é utilizada para registrar 3 variável sessão e, em seguida, a variável de ambiente $HTTP_POST_VAR busca informações digitadas no campo do formulário de cadastro de clientes através e insere estes valores dentro das variáveis de sessão a partir do array $HTTP_SESSION_VARS.
<?PHP if ($HTTP_POST_VAR['txtnome'] != '') { $nome = $HTTP_POST_VAR("txtnome"); $senha = $HTTP_POST_VAR("txtsenha"); $profissao = $HTTP_POST_VAR("selprof"); session_register("nome","senha","profissao");] echo ‘Bem vindo ‘. $HTTP_SESSION_VARS["nome"] echo ‘Sua senha é “ . $HTTP_SESSION_VARS["senha"] echo Sua área de atuação é : . $HTTP_SESSION_VARS["profissao"] } ?>

Passando informações através de variáveis dinâmicas
Além dos campos dos formulários, você pode enviar variáveis através dos links de uma página. Este tipo de variável é conhecida como variável do tipo caracter de consulta ou QueryString. O código abaixo mostra os links da página consulta_produto.php, utilizando a variável categoria. O valor desta variável pode mudar de acordo com o link escolhido pelo usuário. <HTML><BODY> <A HREF=’consulta_produto.php?categoria=mm’> Moda Masculina </A>

17 <A HREF=’consulta_produto.php?categoria=mf’> Moda Feminina</A> <A HREF=’consulta_produto.php?categoria=mi’> Moda Infantil </A> </BODY></HTML> O exemplo abaixo mostra o script da página consulta_produto.php. Este script direciona o usuário para uma página específica de acordo com o link escolhido na página acima. <?PHP if ($categoria == ‘mm’) { header(http://localhost/moda_masculina.php);} else if ($categoria == ‘mf’) { header(http://localhost/moda_feminina.php);} else if ($categoria == ‘mi’) { header(http://localhost/moda_infantil.php);} ?> Importante: Você pode utilizar mais de uma variável, utilizando o separador &. A linha abaixo mostra um link para a página consulta_cliente.php com as variáveis cidade e estado <A HREF=’consulta_cliente.php?cidade=curitiba&estado=pr’> Curitiba/Pr </A>

Enviando informações para o usuário
Para gerenciar o processamento e envio de informações no servidor PHP você vai utilizar os métodos do objeto string e as funções de Controle de Saída. Funções echo, print ob_start ob_end_flush ob_end_clean Descrição Envia informações para o cliente Ativa o buffer Envia as informações armazenadas no cache do servidor e finaliza o buffer Apaga o conteúdo do buffer

No código abaixo o comando ob_start() indica que a linha echo será armazenada no cache do servidor e apresentada ao cliente(browser) após o inerpretador PHP ler da linha de comando ob_end_flush. <?PHP ob_start(); echo “Bom dia “ . $HTTP_SESSION_VARS[“nome”] ob_end_flush(); ob_end_clean(); ?>

Gerenciando um banco de dados MySql
A PHP possui um objeto para comunicação com o banco de dados sevidor MySql. A tabela abaixo apresenta alguns métodos que permitem a comunicação com o MySql e o gerenciamento do banco de dados e seus componentes. Método Mysql_connect() Descrição Abre uma conexão com o MySql

18 Mysql_pconnect() Mysql_select_db() Mysql_query() Mysql_num_rows() Mydql_fetch_array() Abre uma conexão persistente com o MySql Seleciona um banco de dados do MySql Envia uma consulta SQL para o banco de dados MySql ativo Número de linhas retornado pela consulta SQL Retorna um array contendo os registros extraídos do banco de dados. Os

campos do array são numerados a partir de 0. Mysql_close() Fecha a conexão com o MySql A próxima seção mostra como utilizar as funções da tabela acima em tarefas báscias dentro de uma aplicação PHP.

Estabelecendo a comunicação com o banco de dados
Nesta seção você vai aprender como criar uma conexão com o Mysql utilizando as funções mostradas na tabela acima <? $conexao = mysql_connect("localhost","ODBC@localhost",""); $base = mysql_select_Db("grupoabc",$conexao); ?>

Utilizando rotinas atuárias
Esta seção mostra como inserir, atualizar, excluir e consultar informações em um banco de dados MYSQL através da função mysql_query

Gravando Informações no Banco de dados MySQL
O Exemplo abaixo mostra a gravação dos dados de um formulário de cadastro de usuários dentro da tabela tblusuarios do banco de dados grupoabc. <? ob_start(); $conexao = mysql_connect("localhost","ODBC@localhost",""); $banco = mysql_select_Db("grupoabc",$conexao);
$strsql = "insert into tblusuarios (nmusuariodb,emusuariodb,cfusuariodb,rgusuariodb)";

$strsql = $strsql . "values ('$txtusuario','$txtcorreio','$txtcpf','$txtrg')"; $registro = mysql_query($strsql,$conexao); echo "Dados Gravados com sucesso !!!"; ob_end_flush(); ?>

Atualizando Informações no Banco de dados MySQL
<? ob_start(); $conexao = mysql_connect("localhost","ODBC@localhost",""); $banco = mysql_select_Db("grupoabc",$conexao); $strsql = "update tblprodutos set pvprodutodb = ";

19 $strsql = $strsql . "pvprodutodb + (pvcprodutodb * ($txtmargem/100))" $strsql = $strsql . "where idfornedb = $selforn" $registro = mysql_query($strsql,$conexao); echo "Dados Atualizados com sucesso !!!"; ob_end_flush(); ?>

Excluindo Informações no Banco de dados MySQL
<? ob_start(); $conexao = mysql_connect("localhost","ODBC@localhost",""); $banco = mysql_select_Db("grupoabc",$conexao); $strsql= "delete from tblprodutos where idprodutodb = $selproduto" $registro = mysql_query($strsql,$conexao); echo "Dados Excluídos com sucesso !!!"; ob_end_flush(); ?>

Consultando Informações no Banco de dados MySQL
<? $conexao = mysql_connect("localhost","ODBC@localhost",""); $base = mysql_select_Db("empresaxyz",$conexao);
$strsql = "select * from produto where ctprodudb = $co order by nmprodutodb asc";

$consulta = mysql_query($strsql,$conexao); echo mysql_num_rows($consulta) . "<br>"; for($aux=0;$aux<mysql_num_rows($consulta);$aux++) { $campo = mysql_fetch_array($consulta); echo $campo[0] ." ". $campo[1] . "<br>" ; } ?>

Utilizando componentes COM no PHP
O PHP possui um conjunto de funções utilizadas para manipular componentes COM desenvolvidos em qualquer linguagem de programação. A tabela abaixo mostra estas funções. Função COM Descrição Oferece uma estrutura para integração com

componentes distribuídos e seu código em PHP O exemplo de código abaixo mostra o componente ADO(ActiveX Data Object) instanciado através da função COM. <? $conexao = new COM("ADODB.Connection");

20 $conexao->Open("dns_grupoabc");
$registros = $conexao->Execute("select * from tblprodutos order by nmprodutodb");

for (m==0;m<=registros-->recordcount-1;m++) { echo registros-->fields[m].value; registros-->movenext; } ?>

21

ASP
A Estrutura da Active Server Pages
ASP possui uma estrutura simples e objetiva, tornando o seu trabalho com desenvolvedor de soluções para Web o menos complexo possível. Abaixo uma lista com os nomes dos objetos principais, as propriedades e métodos associados a estes objetos, bem como algumas coleções de objetos. Objeto Application Componentes Permite ao desenvolvedor criar uma coleção de variáveis que armazenam informações durante a execução da sua aplicação Web. Estas informações podem ser utilizadas por todos os usuários da aplicação. As informações destas variáveis ficam contidas na memória durante transmissões HTTP. A sintaxe para criação de Session uma variável application é application(“nomedavariavel”). O objeto session permite a você como desenvolvedor, armazenar informações sobre o usuário(nome, produto escolhido etc..) Durante o período de utilização da aplicação WEB, isto é, a navegação do usuário pelas páginas da sua Aplicação. O Servidor cria automaticamente um objeto SESSION quando um usuário acessa uma página da aplicação Web. O Servidor esvazia o objeto SESSION quando o tempo da Request sessão Expira ou quando a sessão é abandonada O objeto request armazena informações solicitadas pelo cliente e envia estas informações para serem processadas no servidor. Estas informações serão transmitidas ao servidor através do protocolo HTTP. Form: representa o(s) campo(s) do(s) formulário(s) de uma aplicação Web; Cookies: representa o(s) cookie(s) de uma aplicação Web ServerVariables: representa as variáveis de ambiente de um servidor Web QueryString: Armazenar conjuntos de variáveis que podem ser utilizadas para passar valores como parametros para consultas à bases de dados, matrizes e etc... Response Este objeto suporta coleções de objetos como: Form, Cookies e ServerVariables. Utilizado para enviar informações do servidor para o lado cliente da conexão. O objeto response oferece suporte somente a coleção Cookies As propriedades do objeto response são: Buffer; ContentType; Expires; ExpiresAbsolute; Status. O objeto response oferece suporte aos métodos: AddHeader; AppendToLog; BinaryWrite; Clear; End; Flush; Redirect; Write. Os exemplos de código da seção Utilizando Server os objetos Request e Response mostram a utilização destes um componente activeX. Exemplo: componentes. CreateObject Método Inicializa ADODB.Connection. Execute GetLastError Método Executar um arquivo ASP. Alternativa aos arquivos include. Método Retorna uma descrição para o objeto AspError

22 Objeto Componentes Este objeto oeferece suorte a propriedade ScriptTimeout e aos métodos: CreateObject, HTMLEncode, MapPath, URLEncode NUMBER propriedade Retorna um código de erro padrão representando o componente que está falhando Description Propriedade Retorna uma breve descrição sobre o erro ocorrido Retorna uma descrição mais detalhada do erro, se ASPDescriptionPropriedade FILE Propriedade

AspError

este erro for um erro relacionado aos componentes ASP. Indica o nome do arquivo que estava sendo processado Especifica se o erro ocorrido está relacionado ao quando o erro ocorreu. CATEGORY Propriedade ASP, a uma linguagem de script ou um objeto activeX

Criando e executando um arquivo em ASP
Assim como os arquivos criados em PHP, os arquivos ASP são interpretados pelo servidor. Os comandos em Active Server Pages podem aparecem de duas formas básicas. A tabela abaixo descreve as opções de codificação. <% ..Código em ASP %> <SCRIPT LANGUAGE=’vbscript’ RUNAT=’server’> ..Código em ASP </SCRIPT> Esta opção é mais utilizada quando você desejar mesclar comandos em ASP e/ou VBscript com tags HTML Utilize a tag SCRIPT e o atributo RUNAT com o valor Server para indicar que o script deverá ser interpretado pelo servidor. Esta opção torna o código mais organizado facilitando a depuração.

Informação persistente na aplicação
Tornar a informação persistente de forma global ou através de sessão através da ASP não é uma tarefa difícil. Você pode utilizar o objeto Para passar a mesma informação para todos os usuários de uma aplicação você deve utilizar o objeto application. Quandose tratar de informações específicas sobre um usuário utilize o objeto Session.

Passando informações específicas para um usuário
O objeto session possui propriedades e métodos que ajudam você a controlar o estado de uma sessão. As linhas de comando abaixo mostram como definir o tempo de duração da sessão, criar uma variável sessão, finalizar uma sessão. <% session.timeout = 5 session(“nome”) = request.form(“nome”) session(“senha”) = request.form(“senha”)

23 if err.number <> 0 then session.abandon response.write “Sessão finalizada” end if %> <%=”Olá “ & session(“nome”) & “ sua senha é “ & session(“senha”)%> Importante: Uma sessão termina automaticamente se um usuário não requisitar ou atualizar uma página dentro da aplicação durante um período específico de tempo definido pela propriedade Timeout.

Integração do formulário HTML com ASP
O servidor web utiliza o objeto REQUEST para avaliar os pedidos feitos pelo aplicativo cliente via HTTP. No objeto REQUEST você pode utilizar a coleção FORMS para buscar as informações enviadas a partir de um formulário através do método POST. Para manipular informações enviadas pelo método GET você deve utilizar a coleção QUERYSTRING do objeto REQUEST.

Enviando informações para o usuário
Para controlar a forma como o resultado do processamento servidor serão enviados por HTTP para o cliente(browser) você deve utilizar o objeto RESPONSE. As linhas de comando abaixo mostram como armazenar o todo o processamento no cahce do servidor antes de envia-lo para o cliente; Indicar se o navegador deve consultar a versão da página armazena no seu cache ou buscar a página no servidor; Enviar os dados para o cliente e redirecionar sua aplicação para uma página específica. <% response.buffer = true response.expires = 0 response.write “Olá “ & request.form(“nome”) if err.number <> 0 then response.redirect “erro.htm” end if %> Importante: Você pode utilizar a linha de comando response.flush para enviar a informação armazenada no cache do servidor antes que o mesmo termine de processar todo o script da página.

Gerenciando um banco de dados
ASP conta com um série de componentes para manipulação de dados. estes componentes são desenvolvidos pela própria Microsoft e por alguns fabricantes externos. Exemplo: CHILLISOFT que produz o ChilliASP para ambientes Linux. Para maiores informações consulte http://www.chillisoft.com/

24 O componente mais utilizado para acesso e manipulação de dados é denominado ADO (ActiveX Data Object) que como o próprio nome mostra, utiliza componentes ActiveX para acessar e manipular bases de dados de diferentes fabricantes.

Utilizando ADO com Active Server Pages
Neste tópico você aprender sobre como é possível gerenciar informações de diferentes bases de dados através da linguagem Active Server Pages e do componente ADO(ActiveX Data Object). O ADO é composto por diversos objetos que permitem ao desenvolvedor estabelecer comunicação com uma base de dados, além da manipulação dessa base. A seguir os passos que você deve seguir para estabelecer uma conexão com a sua base de dados. Para compreender com maior clareza e facilidade as explicações

Objeto Connection
Este objeto representa a conexão da aplicação Web com a base de dados. O objeto CONNECTION fornece diversas propriedades e métodos que possibilitam abrir uma base de dados, executar uma instrução SQL para consultar, inserir, deletar etc.. dados, fechar uma conexao com a base de dados. O objeto connection também oferece propriedades que permitem ao desenvolvedor definir o “estado” de uma conexão. A tabela abaixo mostra uma referência às propriedades e métodos do objeto CONNECTION Nome Tipo CommandTimeout Propriedade ConnectionString CursorLocation Mode Close Execute Propriedade Propriedade Propriedade Método Método Descrição Período em segundos para execução de um comando. O valor padrão é 30 seg. Informações necessárias para comunicação com a base de dados. Define se o ponteiro de registros vai utilizar as informações do servidor ou do cliente(cache) Determina a permissão de abertura da fonte de dados Fechar uma conexão aberta. Libera recursos que estavam sendo utilizados para sustentar a conexão com o cliente Executar uma instrução em SQL, uma tabela ou um objeto Command do

ADO. Open Método Estabelecer uma ligação com a fonte de dados connection e sql para consulta a base de dados Neste exemplo a variável CONEXAO recebe uma inicialização do objeto CONNECTION pertencente ao componente activeX ADO, através do método CREATEOBJECT do objeto SERVER. Este procedimento faz com que a variável CONEXAO possa utilizar as propriedades e métodos do objeto CONNECTION. A variável CONEXAO utiliza a propriedade CONNECTIONSTRING para identificar informações referentes a fonte de dados como por exemplo o driver(DRIVER) e o nome do banco de dados(DBQ). A variável CONEXAO utiliza o método OPEN do objeto CONNECTION para fazer uma conexao com a fonte de dados. A variável STRSQL recebe uma linha de comando em SQL, contendo a instrução SELECT que retornará todos(*) os registros da tabela produtos. A variável REGISTRO armazena uma cópia de todos os registros da tabela produtos. Como? Lembre que a variável CONEXAO representa o objeto CONNECTION e que o objeto CONNECTION possui um método

25 denominado EXECUTE, que está sendo utilizado para executar as instruções contidas dentro da variável STRSQL, que consultam todos(*) os registros da tabela produtos. Importante: um conjunto de registros coletados de uma banco de dados através do ADO é conhecido como objeto RECORDSET. Sendo assim é possível associar a variável registros com as propriedades e métodos do objeto RECORDSET do ADO. A linha de comando REGISTROS.MOVENEXT, por exemplo, faz o ponteiro de registros descer uma vez na lista de valores contidos na variável REGISTRO.
<% Dim conexao, regafetados Dim sqlstr, registros, cateesco Set conexao = server.createobject("ADODB.Connection") conexao.connectionstring = "DRIVER=Driver do Microsoft Access (*.mdb);” &_ “DBQ=C:\empresaxyz\empresaxyz.mdb" conexao.open sqlstr = "SELECT * FROM produtosxyz" Set registros = conexao.execute(sqlstr,,adcmdtext) %> <HTML> <HEAD><TITLE>Arquivo objconn.asp</TITLE></HEAD> <BODY> <H1 ALIGN="center">Lista de Produtos EmpresaXyZ</H1> <TABLE ALIGN="center" BORDER="1" CELLPADDING="5"> <%Do While not registros.eof%> <TR> <TD><%response.write registros("idprodb").value%></TD> <TD><%response.write registros("nmprodb").value%></TD> <TD><%response.write registros("ctprodb").value%></TD> <TD><%response.write registros("pvprodb").value%></TD> <%registros.movenext%> </TR> <% Loop conexao.close %> </TABLE> </BODY> </HTML>

O objeto recordset (registros)
De agora em diante você vai desenvolver consultas a fonte de dados através do objeto RECORDSET, contido no componente ADO. Este objeto possui propriedades e métodos que permitem ao desenvolvedor gerenciar os campos e registros de uma ou mais tabelas na fonte de dados. A tabela abaixo mostra as propriedades e métodos mais utilizados por este objeto: Componente Open ActiveConnection CursorLocation Source Update AddNew Tipo Método Propriedade Propriedade Propriedade Método Método Descrição Indica o objeto connection que será utilizado na consulta Indica se o ponteiro de registros será utilizado no lado cliente ou servidor da conexão. Instruções em Sql para consultar, inserir, editar, apagar informações do banco de dados relacionados a conexão Atualizar informações no banco de dados Adicionar um novo registro no banco de dados

26 Componente Delete MoveFirst MoveLast MoveNext MovePrevious LockType RecordCount Tipo Método Método Método Método Método Propriedade Propriedade Descrição Deletar informações selecionadas por uma instrução SQL Movimento o "ponteiro de registros" para o primeiro registro de uma tabela Movimento o "ponteiro de registros" para o último registro de uma tabela Movimento o "ponteiro de registros" para o próximo registro de uma tabela Movimento o "ponteiro de registros" para o registro anterior de uma tabela Determina o tipo de operação permita com os registros de uma base de dados. Indica a quantidade de registros indicados em um objeto recordset. Para que você possa manipular os registros no cache cliente, atribua a propriedade cursorlocation = 3 Ao executar uma consulta SQL à uma base de dados, o resultado será uma conjunto de registros. A este conjunto de registros dá-se o nome RECORDSET Consultando informações em um banco de dados Neste exemplo a variável OBJCON recebe uma inicialização do objeto CONNECTION e, em seguida, a variável OBJCON utiliza a propriedade CONNECTIONSTRING para definir o banco de dados que será utilizado(aberto). Por fim a variável OBJCON utiliza o método OPEN para abrir a conexão com o banco de dados. A variável OBJREG recebe a inicialização do objeto RECORDSET e, em seguida, a variável OBJREG utiliza a propriedade SOURCE para definir a instrução SQL que executará a consulta ao banco de dados. A variável OBJREG utiliza a propriedade ACTIVECONNECTION para definir qual a conexão que será utilizada para consultar o banco de dados e por fim a variável OBJREG utiliza o método OPEN para coletar os dados no banco de dados.
<% dim objcon dim objreg, strcon set objcon = server.createobject("adodb.connection") objcon.connectionstring = "DRIVER=Driver do Microsoft Access(*.mdb);” &_ “DBQ=C:\empresaxyz\empresaxyz.mdb" objcon.open set objreg = server.createobject("adodb.recordset") objreg.source = "select * from produtosxyz" objreg.activeconnection = objcon objreg.cursorlocation = 3 objreg.open response.write “<table align=center><tr><td>Código</td><td>Descrição</td>” &_ “<td>Preço</td></tr>” while not objreg.eof response.write "<TR><TD>", &objreg("coprodb").value, "</TD><TD>" &_ objreg(“nmprodb”).value & “</TD><TD>” objreg(“pvprodb”).value &_ “</TD></TR>” objreg.movenext wend %>

27 Inserindo Informações em um banco de dados Neste exemplo você vai utilizar propriedades e métodos do objeto RECORDSET para inserir informações no banco de dados através de um formulário. A variável OBJREG, recebe a inicialização do objeto RECORDSET, através do método CREATEOBJECT associado ao objeto SERVER. Após, a variável objreg utiliza a propriedade SOURCE para definir a instrução SQL. Esta por sua vez, seleciona os registros da coluna nmprodb e ctprodb contidos na tabela produtosxyz. A variável objreg utiliza a propriedade activeconnection para buscar a conexão ativa através da variável objcon e, em seguida, utiliza a propriedade LOCKTYPE para indicar a maneira como a tabela de tados será manipulada. Por fim a variável OBJREG utiliza o método OPEN para executar o objeto recordset e assim obter as informações do banco de dados. A variável OBJREG utiliza o método ADDNEW para fazer uma abertura de registro no banco de dados.
<HTML> <BODY> <% dim objcon dim objreg, strcon set objcon = server.createobject("adodb.connection") objcon.connectionstring = "DRIVER=Driver do Microsoft Access (*.mdb);”&_ “DBQ=C:\empresaxyz\empresaxyz.mdb" objcon.open set objreg = server.createobject("adodb.recordset") objreg.source = "select nmprodb, ctprodb, pvprodb from produtosxyz" objreg.activeconnection = objcon objreg.locktype = 3 objreg.open objreg.AddNew objreg("nmprodb").value = request.form("txtnome") objreg("ctprodb").value = request.form("txtcategoria") objreg("pvprodb").value = request.form("txtprvenda") objreg.update objcon.close %> </BODY> </HTML> Importante: O código abaixo executa a mesma tarefa do código anterior, a diferença está na utilização da instruções insert into da linguagem SQL <% dim objcon dim nome, categoria dim strsql nome = request.form("txtnome") categoria = request.form("txtende") set objcon = server.createobject("adodb.connection") strsql = "insert into produtosxyz(nmprodb, ctprodb) values ('"&nome&"','"&categoria&"')" objcon.connectionstring = "DRIVER=Driver do Microsoft Access (*.mdb);”&_ “DBQ=C:\empresaxyz\empresaxyz.mdb" objcon.open

28
objcon.execute(strsql) objcon.close %>

Atualizando informações no banco de dados Para atualizar as informações de uma banco de dados através do objeto recordset você pode utilizar o código:
<HTML> <BODY> <% dim objcon dim objreg set objcon = server.createobject("adodb.connection") objcon.connectionstring = "DRIVER=Driver do Microsoft Access (*.mdb);”&_ “DBQ=C:\empresaxyz\empresaxyz.mdb" objcon.open set objreg = server.createobject("adodb.recordset") objreg.source = "select * from produtosxyz where ctprodb =”&_ “'"&request.form("selcategoria")&''" objreg.activeconnection = objcon objreg.locktype = 3 objreg.open objreg.movefirst while not objreg.EOF objreg("ctprodb").value = request.form("selnovacategoria") objreg.update objreg.movenext wend objcon.close %> </BODY> </HTML>

Apagando informações no banco de dados No exemplo abaixo o objeto recordset representado pela variável objreg seleciona o registro desejado através de uma instrução SQL que compara o valor existente na coluna codprodb com o valor digitado no campo txtende do formulário. A partir deste ponto, o método DELETE do objeto recordset é acionado a partir da variável OBJREG. Após marcado o registro para deleção, o método UPDATE atualiza a base de dados.
<HTML> <BODY> <% dim objcon dim objreg set objcon = server.createobject("adodb.connection") objcon.connectionstring = "DRIVER=Driver do Microsoft Access (*.mdb);”&_ “DBQ=C:\empresaxyz\empresaxyz.mdb" objcon.open set objreg = server.createobject("adodb.recordset") objreg.source = "select coprodb from produtosxyz where coprodb =” &_ “’"&request.form("selcodigo")&"' " objreg.activeconnection = objcon objreg.locktype = 3 objreg.open

29
if isempty(objreg) = true then response.write "Não existe(m) registros para exclusão" else objreg.delete objreg.update response.write "o registro " & request.form("selcodigo") & " foi excluído com sucesso !!!" end if objcon.close %> </BODY> </HTML>

Gerenciando componentes C.O.M com ASP Utilizando o objeto aspmail
O componente activeX ASPMAIL 4.x permite a você enviar mensagens usando o protocolo padrão SMTP(simple mail transfer protocol). Como a maioria dos componentes activeX, o ASPMAIL 4.x deve ser instalado no computador servidor para que as suas bibliotecas(*.DLL). para maiores informações consulte... O componente activeX SMTPsvg.Mailer que representa o ASPMAIL pode ser inicializado através do método CREATEOBJECT do objeto SERVER. O objeto SMTPsvg.Mailer possui diversas propriedades e métodos que podem ser utilizadas para definir as partes do e-mail: As variáveis NOME, MENS, EMAI e OPIN receberão os valores digitados pelo usuário no formulário de correio eletrônico, através da coleção FORMS do objeto REQUEST. A variável OBJCORREIO recebe uma inicialização do objeto SMTPsvg.Mailer(representa o controle ActiveX ASPMAIL), através do método CREATEOBJECT do objeto SERVER. A variável OBJCORREIO poderá utilizar as propriedades e métodos do componente ActiveX ASPMAIL. A tabela abaixo descreve as propriedades e métodos associados ao objeto. Componente RemoteHost FromName FromAddress AddRecipient Subject BodyText SendMail Response
<% dim nome, mens, emai, opin dim objcorreio

Tipo Propriedade Propriedade Propriedade Propriedade Propriedade Propriedade Método Método

Descrição Definir o servidor SMTP(Simple Mail Transfer Protocol). O host deve ser ajustado de acordo com o provedor de e-mail do remetente. Exemplo: Objcorreio.remotehost = "smtp.bol.com.br" Nome do remetente. Exemplo:
objcorreio.FromName = "Nome do Remetente"

Endereço do Remetente. Exemplo: Objcorreio.FromAddress = "remente@bol.com.br" Endereço do Destinatário. Exemplo: Objcorreio.AddRecipient "remente@bol.com.br" Assunto do correio eletrônico Representa o corpo da página. Envia a mensagem para o destinatário Mostra respostas do procesamento de envio das mensagens.

30
nome = request.form("txtcliente") opin = request.form("optopina") mens = request.form("msgnome") emai = request.form("txtmailclie") set objcorreio = server.createobject("SMTPsvg.Mailer") objcorreio.RemoteHost = "smtp.bol.com.br" objcorreio.FromName = nome objcorreio.FromAddress = emai objcorreio.AddRecipient "EmpresaXyz", "empresaxyz@bol.com.br" objcorreio.Subject = "Sugestões em 2001" objcorreio.BodyText = mens & "<BR>" & opin If not objcorreio.SendMail then response.write "A mensagem não foi enviada <BR>" response.write objcorreio.response else response.write "Parabéns<BR>Sua mensagem foi enviada com sucesso !!!" response.write formulário." end if %> "<A HREF="formcorreio.htm"> Clique Aqui</A> para voltar ao

31

Registrando componentes ActiveX no Servidor
Para registrar um componente ActiveX você deve registrar a sua DLL utlizando o arquivo

32

XML
No modelo atual de transmissão de informação o servidor dispensa muito do seu tempo processando informações dos pedidos feitos pelo cliente. Cabe ao servidor por exemplo identificar o tipo de navegador que o cliente possui para então enviar o conteúdo HTML correto para o mesmo. Do outro lado o navegador perde muito tempo aguardando esta resposta do servidor. Para solucionar este problema imagine o servidor enviando o mesmo conteúdo web para os clientes sem se preocupar com o tipo de navegador. O XML propõe este modelo de transmissão. O XML(extensible markup language) é uma linguagem orientada por tags que oferece um formato para descrever dados de forma estruturada, possibilitando obter e gerenciar conteúdo de/para diferentes plataformas

XML Vs. HTML
XML pode ser visto como um HTML generalizado. Porém, a finalidade do XML não é substituir o HTML. O XML e o HTML possuem diferentes finalidades e objetivos. O XML é uma linguagem que possibilita você definir suas próprias tags para descrever de forma organizada, seqüências de dados(banco de dados) de diferentes plataformas. O HTML possui tags específicas com o objetivo de determinar como as informações serão mostradas no navegador. A tabela abaixo mostra exemplos em HTML e XML HTML XML

Criando Documento XML
Antes de começar a desenvolver seu documento XML você deve entender seus componentes. A lista abaixo mostra como trabalhar com estes componentes. • • • • O nome das tags XML são sugestivas, isto é, definem o tipo de dados que elas armazenam. <preco> 3500 </preco>. Estes nomes são sensíveis a maiúsculas e minúsculas. As tags são denominadas elementos. Dentro de um documento XML os elementos são considerados unidades de informação. Os elementos são compostos, isto é, possuem uma tag de início e uma tag de finalização. Exemplo: <quantidade> 900 </quantidade> Dentro de um elemento podem existir os atributos. O exemplo abaixo mostra o atributo codigo do elemento produto. <produto codigo=001> <descricao>Jaqueta de Couro</descricao> <preco>450</preco> </produto> • Os elementos podem estar aninhados. O exemplo abaixo mostra os elementos <descricao> e <preco> aninhados ao elemento <produto> <produto codigo=001> <descricao>Jaqueta de Couro</descricao>

33 <preco>450</preco> </produto> Geralmente os elementos de um documento XML podem ser repetidos diversas vezes. O exemplo abaixo mostra a relação de alguns produtos com suas descrições e preços. <produto codigo=001> <descricao>Jaqueta de Couro</descricao> <preco>450</preco> </produto> <produto codigo=002> <descricao> Calça Jeans</descricao> <preco>120</preco> </produto>

Estrutura de um documento XML
Além dos elementos, um documento XML é composto de instruções de processamento, Comentários, Os elementos são classificados em Elemento ROOT, Elemento CHILD, Elementos Vazios. Estes elementos serão exemplicados nos tópicos desta seção. O exemplo abaixo mostra um documento XML completo. <?xml version=”1.0” encoding=”8859-1”> <estoque> <produto codigo=001> <descricao>Jaqueta de Couro</descricao> <preco>450</preco> </produto> <produto codigo=002> <descricao> Calça Jeans</descricao> <preco>120</preco> </produto> </estoque>

Prolog
O prolog possui diversos elementos que definem o início do processamento do documento XML, versão do documento, tipo de codificação para os caracteres do document e os DTD(Document Type Definition) ou Schemas. Instruções de Processamento Para iniciar o processamento de um documento XMl você deve utilizar <(sinal de menor) seguido do símbolo ?(interrogação). O exemplo abaixo mostra a linha de início de um document XML. <?xml version=”1.0” encoding=”8859-1”?> A instrução Version determina a versão do código XML utilizado. A instrução encoding determina o tipo de caracter que será utilizado no documento XML. A tabela abaixo mostra os tipo de caracter mais utilizados nos documentos XML. Código Especificação

34

Comnetários
Você pode inserir comentários em qualquer posição, entre os elementos de um documento XML. Os comentários incial com <!—e terminam com -->, eles podem conter diversas linhas. O exemplo abaiixo mostra um comentário para o elemento <quantidade>. <quantidade> 900 </quantidade> <!—Valor do estoque mínimo -->

Elementos ROOT
Também conhecido como elemento principal. O elemento ROOT contém todos os outros elementos do documento XML. O exemplo abaixo mostra o elemento ROOT <estoque>. Cada documento XML pode conter apenas um documento ROOT. <estoque> <produto codigo=001> <descricao>Jaqueta de Couro</descricao> <preco>450</preco> </produto> <produto codigo=002> <descricao> Calça Jeans</descricao> <preco>120</preco> </produto> </estoque>

Elementos CHILD
Os dados dentro de um documento XML são hierárquicos. Um elemento pode conter outros elementos que são denominados elementos CHILD. No exemplo abaixo: • • Os elementos <descricao> e <preco> são denominados elementos CHILD; Os elementos <dolar> e <real> são elemento CHILD do elemento <preco> <descricao> Calça Jeans</descricao> <preco> <dolar> 45 </dolar> <real> 100 </real> </preco> </produto>

<produto>

Elementos Vazios
Elementos que não necessitam de conteúdo de texto ou de outros elementos são denominados elementos EMPTY. O exemplo abaix mostra s duas maneiras utilizadas na criação de elementos EMPTY.

35 <vendido></vendido> ou <vendido/>

Criando Data Island com XML e HTML
Data Island é o nome dado à união de um documento XML com um documento HTML. A partir do Internet Explorer 5.0 você pode utilizar o comando <XML> para criar Data Island. Um Data Island pode ser embutido dentro de um documento HTML, ou pode ser vinculado através de um arquivo Externo. A tabela abaixo mostra os exemplos de Data Island Embutido e Data Island Vinculado. Os dados XML são mostrados dentro de uma tabela HTML Data Island Embutido Data Island Vinculado

Utilizando Validação com Schemas

Melhorando a aparência com XSLT
Através do XSL você pode especificar regras à serem seguidas pelos elementos de um documento XML. Para associar um documento XML ã um arquivo XSL você deve utilizar a linha de comando abaixo. <?xml-stylesheet type=”text/xsl” href=”formato_estoque.xsl”?> • • O atributo TYPE define o tipo de documento utilizado. O atributo HREF determina o arquivo XSL que será interpretado pelo analisador XSL

Mecanismos do XSLT

Criando Um arquivo XSLT

UTILIZANDO ACTIVE SERVER PAGES E MSXML3.0
Ao iniciar o estudo sobre a tecnologia XML(Extensible Markup Language), você deve tentar compreender a estrutura do documento XML. O exemplo abaixo mostra um documento XML visto dentro do navegador IE5, você vai notar que não existe muita diferença entre o código fonte e a apresentação, porém, você pode utilizar inumeros recursos como DATAISLAND, XSLT para melhorar esta apresentação. Você pode utilizar ASP para gerenciar o modelo de objeo XML proposto pela Microsoft, denominado MSXML

36

O exemplo de código abaixo utiliza propriedade e métodos associados ao objeto XMLDOM. A seguir, uma tabela descrevendo as propriedades e métodos do componente activeX Microsoft.XMLDOM. Componente PreserveWhitespace Load documentElement createElement appendChild createAttribute Text setAttributeNode save Arquivo: "aspxml.asp"
<% dim objcon, objreg dim objxml, existexml, objroot, objprod, objnome, objqte, objvend, attid, attco set objcon = server.createobject("adodb.connection") objcon.connectionstring objcon.open set objreg = server.createobject("adodb.recordset") objreg.source = "Select * from produtosxyz" objreg.activeconnection = objcon objreg.open = "DRIVER=Driver do Microsoft Access (*.mdb);DBQ=c:\empresaxyz\empresaxyz.mdb"

Tipo Propriedade Método Propriedade Método Método Método Propriedade Propriedade Método

Descrição Preserva os espaços em branco dos dados Efetua a leitura de um documento XML Retorna o nome do elemento ROOT (principal) Cria um elemento(nó) Cria um atributo para um elemento(nó) Representa a informação contida no elemento Ajustar o attributo para um elemento específico Salva um documento XML

37
set objxml = server.createobject("Microsoft.XMLDOM") objxml.PreserveWhiteSpace = true existexml = objxml.load("c:\empresaxyz\empresaxyz.xml") if existexml = true then set objroot = objxml.documentElement else set objroot = objxml.createElement("produtos") objxml.appendChild objroot end if while not objreg.eof set objprod = objxml.createElement("produto") set attid = objxml.createAttribute("id") set attco = objxml.createAttribute("cod") attid.text = objreg("idprodb").value attco.text = objreg("coprodb").value objprod.setAttributeNode attid objprod.setAttributeNode attco objroot.appendChild objprod set objnome = objxml.createElement("nome") set objqtde = objxml.createElement("qtde") set objvenda = objxml.createElement("venda") objnome.text = objreg("nmprodb").value objqtde.text = objreg("qtprodb").value objvenda.text = objreg("pvprodb").value objprod.appendChild objnome objprod.appendChild objqtde objprod.appendChild objvenda objreg.movenext wend objxml.save("c:\empresaxyz\empresaxyz.xml")

38
%>

Sign up to vote on this title
UsefulNot useful