Posts de Abril, 2006

Script em ASP para envio de e-mail autenticado usando o componente CDO SYS

Abril 20, 2006

<%
‘##————————————————–
‘## Envio de Emails pelo SMTP Autênticado usando CDO
‘##————————————————–
‘# Mais informações sobre as possiveis bibliotecas são encontradas no link:
‘# http://msdn.microsoft.com/library/en-us/dncdsys/html/cdo_roadmap.asp
‘#
‘# Documentação do CDO pode ser encontrada no link:
‘# http://msdn.microsoft.com/library/en-us/dnanchor/html/collabdataobjects.asp
‘#
‘# Para ler sobre as possiveis configurações do objeto de configuração, acesse:
‘# http://msdn.microsoft.com/library/en-us/cdosys/html/_cdosys_schema_configuration.asp
‘# http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cdosys/html/_cdosys_imessage_interface.asp
‘#
‘# IMPORTANTE
‘# O codigos de erros estão documentados em:
‘# http://msdn.microsoft.com/library/en-us/cdosys/html/_cdosys_error_codes.asp
‘#
‘# Para ler sobre a comparação do CDO com CDONTS acesse:
‘# http://support.microsoft.com/default.aspx?scid=kb;en-us;177850
‘##————————————————–

‘ Definindo uma variavel auxiliar
sch = “http://schemas.microsoft.com/cdo/configuration/”

‘ Criando o objeto de configuração do CDO
Set cdoConfig = Server.CreateObject(“CDO.Configuration”)

‘ Definindo as configurações
cdoConfig.Fields.Item(sch & “sendusing”) = 2
cdoConfig.Fields.Item(sch & “smtpauthenticate”) = 1
cdoConfig.Fields.Item(sch & “smtpserver”) = “smtp.seudominio.com”
cdoConfig.Fields.Item(sch & “sendusername”) = “email=seudominio.com”
cdoConfig.Fields.Item(sch & “sendpassword”) = “suasenha”
cdoConfig.fields.update

‘ Criando o objeto de msg do CDO
Set cdoMessage = Server.CreateObject(“CDO.Message”)

‘ Associando as configurações ao obj Mensagem
Set cdoMessage.Configuration = cdoConfig

‘ Definido variaveis da msg
cdoMessage.From = “email@seudominio.com”
cdoMessage.To = “DESTINATARIO@DominioDestinatario.com”
cdoMessage.Subject = “TITULO DO E-MAIL”

‘ Utilize esta opção caso deseje definir o e-mail de resposta
‘ cdoMessage.ReplyTo = “EMailDeResposta@DominioDeResposta.com”

cdoMessage.TextBody = “Escreva aqui o texto do seu e-mail”

cdoMessage.Send
Set cdoMessage = Nothing
Set cdoConfig = Nothing
%>

Fonte: www.hostnet.com.br

Conexão com banco SQL Server em Perl – Linux

Abril 17, 2006

Redirecionamento em Perl

Abril 17, 2006

Redirecionar o script em Perl para outra página :

print “Location: resposta.htm\n\n”;

Script para exibição de conteúdo Perl no navegador

Abril 17, 2006

#!/usr/bin/perl
print “Content-type: text/html\n\n”;
print “Ola”;

Com este cabeçalho é possível visualizar em um navegador web o conteúdo de um script .pl

Script em PHP para envio de e-mail via SMTP autenticado usando Pear

Abril 11, 2006

<?
##—————————————————
## Envio de Emails pelo SMTP Autênticado usando PEAR
##—————————————————
# Mais detalhes sobre o PEAR:
# http://pear.php.net/
#
# Mais detalhes sobre o PEAR Mail:
# http://pear.php.net/manual/en/package.mail.mail-mime.php
##—————————————————

## OBSERVAÇÃO: Caso deseje um exemplo de como enviar arquivos em anexo,
## gere um script com “Formato do e-mail” igual a “HTML”.

# Faz o include do PEAR Mail.
include (“Mail.php”);

# E-mail de destino. Caso seja mais de um destino, crie um array de e-mails.
# *OBRIGATÓRIO*
$recipients = ‘endereco@mail.com.br’;

# Cabeçalho do e-mail.
$headers =
array (
‘From’ => ‘endereco@mail.com.br’, # O ‘From’ é *OBRIGATÓRIO*.
‘To’ => ‘DESTINATARIO@DominioDestinatario.com’,
‘Subject’ => ‘TITULO DO E-MAIL’
);

# Utilize esta opção caso deseje definir o e-mail de resposta
# $headers['Reply-To'] = ‘EMailDeResposta@DominioDeResposta.com’;

# Utilize esta opção caso deseje definir o e-mail de retorno em caso de erro de envio
# $headers['Errors-To'] = ‘endereco@mail.com.br’;

# Utilize esta opção caso deseje definir a prioridade do e-mail
# $headers['X-Priority'] = ‘3′; # 1 UrgentMessage, 3 Normal

# Corpo da Mensagem
$body = ‘Escreva aqui o texto do seu e-mail’;

# Parâmetros para o SMTP. *OBRIGATÓRIO*
$params =
array (
‘auth’ => true, # Define que o SMTP requer autenticação.
‘host’ => ’smtp.dominio.com.br’, # Servidor SMTP
‘username’ => ‘endereco=mail.com.br’, # Usuário do SMTP
‘password’ => ‘12345′ # Senha do seu MailBox. );

# Define o método de envio! queremos ’smtp’. *OBRIGATÓRIO*
$mail_object =& Mail::factory(’smtp’, $params);

# Envia o email. Se não ocorrer erro, retorna TRUE caso contrário, retorna um # objeto PEAR_Error. Para ler a mensagem de erro, use o método ‘getMessage()’.
$result = $mail_object->send($recipients, $headers, $body);
if (PEAR::IsError($result)) {
echo “ERRO ao tentar enviar o email. (” . $result->getMessage(). “)”;
} else {
echo “Email enviado com sucesso!”;

} ?>

Fonte: Hostnet Internet

String de conexão para banco de dados Access

Abril 11, 2006

dim cn
set cn = server.CreateObject (“adodb.connection”)
cn.Open “DRIVER={Microsoft Access Driver (*.mdb)};DBQ=” & Server.MapPath(“../databases/banco.mdb”)

Inserção em banco de dados usando ASP

Abril 11, 2006

Neste tutorial você aprenderá a criar uma página ASP que insira dados em um banco de dados. Como a linguagem SQL é universal, você poderá usar esta rotina em qualquer tipo de banco de dados, seja ele Access, SQL ou mySQL (acredite, é possível usá-lo com o ASP). Inserir dados a partir de um formulário é muitas vezes o sonho daqueles que estão aprendendo a fazer sites – e eu, que já passei por esta fase, venho desmistificar a pompa do nome :)

A inserção é muito útil para cadastro de usuários, controle de estoque ou qualquer outra coisa que você tenha que lidar com dados que devam ficar disponíveis mesmo após a página ser fechada. Como eu sei que você deve estar ansioso para começar, vamos lá !:

Parte 1 – o script em si

Aqui vou dar o exemplo usando um banco de dados Access, que é o mais comum, não requerendo que o servidor tenha instalado o SQL ou mySQL Server:

1. Iniciando a conexão
Primeiro nós temos que criar o objeto de conexão para que possamos manipular o banco de dados. O nome dele é ADODB.Connection e devemos declará-lo assim no ASP:

Set conexao = Server.CreateObject("ADODB.Connection")

2. Abrindo…
Agora que já temos o objeto, podemos abrir a conexão de fato e deixá-la pronta para abrir o objeto Recordset e inserir os registros:

conexao.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("test_db.mdb")&";"

Parece confuso mas se entendermos a sua lógica, não é mais: a parte Provider=Microsoft.Jet.OLEDB.4.0 indica qual o driver que será usado para a conexão com a base de dados: não se preocupe com ela pois você pode utilizar o copiar/colar (CTRL+C CTRL+V). A parte Data Source="&Server.MapPath("test_db.mdb")&";" informa ao documento a localização do banco de dados.

Temos várias aspas nesta parte pois a função Server.MapPath deve estar FORA das aspas que delimitam a string: se ela estivesse dentro, o servidor iria admitir que o nome do banco de dados é "Server.MapPath("test_db.mdb")" e não informaria a localização física do arquivo test_db.mdb. O ponto-e-vírgula é só para terminar a string de conexão. Insignificante, mas indispensável …

3. Abrindo a consulta
Agora, para economizar meu tempo e sua paciência, juntaremos dois passos num só: você iniciará a consulta para poder inserir os dados na tabela: o objeto é ADODB.Recordset. Possivelmente você já sabe como criar um objeto. Mas vou mostrar assim mesmo:

Set add_action = Server.CreateObject ("ADODB.Recordset")

Agora você terá de abrir mais uma coisa: uma tabela.

Antes de começar, entenda a lógica do processo e no final deste parágrafo você verá que este script que você está criando tem uma lógica extremamente compreensível:

Passo 1: abrir o Microsoft Access (este você já deve conhecer melhor)

Passo 2: Vá em Arquivo > Abrir e escolha o arquivo que quer usar

Passo 3: Acessar a lista de tabelas.

Passo 4: Abrir a tabela que você deseja utilizar.

Este roteiro será algo bem parecido com o que acontecerá com o servidor do seu aplicativo ASP na hora da inserção :) …. OK, agora vamos abrir a tabela:

add_action.Open "sua_tabela",conexao,3,3

Em detalhes: a parte entre aspas "sua_tabela" é o nome da tabela na qual você quer inserir os dados. O valor conexão, que não deve estar entre aspas pois é uma variável, é chamado de ActiveConnection: ele diz ao método Open qual conexão usar para abrir a tabela "sua_tabela". Os valores 3,3 são o tipo de cursor que o método vai usar (não se preocupe com eles) … OK, eu sei que você é curioso: o primeiro 3 é o código do método adOpenKeyset (ele deixa o cursor estático para que somente o script possa movê-lo) e o segundo número três é o código do método adLockPessimistic.

Assim que começarmos a editar os valores, o banco de dados travará (no bom sentido) e garantirá uma atualização segura.

4. "Digitando" registros
Na prática você não vai terá de digitar de verdade: isso é apenas uma metáfora, pois será algo parecido com você digitando os registros. Primeiramente, você colocaria o cursor na última célula da última linha e pressionaria TAB. Isto criaria um novo registro.

Para fazer isso é bem fácil:

add_action.AddNew

Agora você vai ter que atribuir os valores e para isso terá de usar a seguinte sintaxe:

add_action("nome_do_campo") = "texto a ser inserido"

Por exemplo:

add_action("nome") = "Teodomiro Tiburcio Godofredo Armelindo Creosmildo"

Você terá que usar uma linha destas para cada registro. Para finalizar, dê o Update – que funciona como se você fosse salvar a tabela:

add_action.Update

5. "Limpando" a casa
Para não carregar o servidor, você deve fechar os objetos usados e limpar suas variáveis. No método Close, lembre-se de fechar primeiro a consulta (recordset) para depois fechar a conexão. Por quê? Simples: se você fechar a conexão primeiro, a consulta vai ficar sem o Active Connection e gerará um erro …

add_action.Close
conexao.Close

Agora falta apenas limpar as variáveis: simplesmente utilize o Set e defina-as para "Nothing", sem aspas:

Set add_action = Nothing
Set conexao = Nothing

Esclarecendo: nove entre dez programadores que utilizam este script para inserir dados num banco de dados desejam que isso seja feito utilizando dados de um formulário: isto é perfeitamente possível, com um esforço realmente pequeno (mas lembre-se que esta página não poderá ser acessada primariamente: ela deverá ser chamada pelo ACTION de um formulário qualquer).

Para usar os dados dos campos:

No método GET
Quando chegar a hora de inserir certo valor vindo de um formulário com o método GET, use Request.QueryString ("nome_do_campo") para usar o valor do campo que quiser.

Exemplo:

add_action("nome") = Request.QueryString("nome")

Lembrando que o valor dentro dos parênteses e aspas de Request.QueryString deverá ser o nome do campo que você definiu pelo HTML.

Detalhe: para usar Request.QueryString, basta que o valor esteja na URL, não necessitando vir de um formulário. Leia o tutorial Uso de Select Case em ASP, também escrito por mim para um exemplo disso.

No método POST
Quase igual ao método anterior: a diferença é que o método vai ser Request.Form() e não Request.QueryString():

add_action("nome") = Request.Form("nome")

Fonte: http://www.baboo.com.br/absolutenm/templates/content.asp?articleid=5200&zoneid=162

Obtendo informações do usuário – uso de Request.ServerVariables

Abril 11, 2006

Você pode querer obter informações dos usuários que acessam suas páginas , e, com ASP isto é muito simples de fazer. ASP contém no objeto request a coleção ServerVariables que pode ser usada para obter uma série de informações a partir da requisição de sua página ASP.

A coleção ServerVariables contém toda a informação gerada quando da requisição de um serviço pelo navegador combinada com as variáveis ambientais do ambiente do servidor.

Sintaxe: Request.ServerVariables(variavel)

Variavel : especifica o nome das variáveis do ambiente do servidor a retornar

Geralmente lemos estas informações para obter informações sobre o servidor ou sobre o navegador. Os membros mais importantes da coleção ServerVariables são:

  1. Path_info – Armazena a informação do caminho da URL requisitada pelo navegador.(Não armazena a raiz do diretório do endereço URL.)
  2. CONTENT_LENGHT – permite determinar a extensão do conteúdo da solicitação HTTP do cliente usando o método POST.
  3. Query_String – Contém os parâmetros passados como parte de uma requisição a uma URL . (Tudo depois de um "? " é armazeando)
  4. SERVER_NAME – Fornece o nome do servidor contido na URL da página atual.
  5. HTTP_UA_COLOR – Indica o número de cores disponíveis na máquina do usuário.
  6. HTTP_UA_PIXELS – Contém a resolução da tela do navegador que fez a requisição.
  7. REMOTE _ADRR – O endereço IP do host remoto que esta solicitando o serviço.
  8. REMOTE _HOST – O nome do host que esta fazendo a solicitação do serviço.
  9. LOGON_USER – A conta no Windows NT no qual o usuário esta logado.
  10. HTTP_UA_OS – O nome e a versão do software servidor que está respondendo ao pedido.
  11. AUTH_TYPE - O método de autenticação que o servidor usa para validar usuários quando eles tentam acessar um script protegido.
  12. LOGON_USER - A conta no Windows NT do usuário.
  13. SERVER_PORT – O número da porta da qual a requisição foi enviada
  14. SERVER_PROTOCOL – O nome e a versão para o protocolo de informação.
  15. SERVER_SOFTWARE – O nome e a versão do software do servidor.
  16. SCRIPT_MAP – Informa a base da URL
  17. SCRIPT_NAME – Informa todo o caminho virtual para o roteiro presente.
  18. REQUEST_ADDR – Informa o endereço IP do host remoto que fez a requisição.
  19. REQUEST_METHOD – O método usado para fazer a requisição.(GET, POST, etc..)

Como Exemplo veremos um script que exibe as variáveis de um servidor da geocities:

<%= Request.ServerVariables("SERVER_NAME") %> retorna geocities.com

<%= Request.ServerVariables("REQUEST_METHOD") %> retorna GET

Para exibir todos os cabeçalhos HTTP enviados pelo seu navegador o script seria:

<% Replace(Request.ServerVariables("ALL_RAW"), vbcrlf, "<BR>" %>

Para certificar-se que um formulário foi submetido a página WEB podemos usar o seguinte script:

Variavel = Request.ServerVariables("SCRIPT_NAME")

Para ler o endereço IP do cliente, temos o script:

Request.ServerVariables("REMOTE_ADDR")

Fonte: http://www.linhadecodigo.com.br/artigos.asp?id_ac=222

Uso do comando Server.htmlEncode

Abril 11, 2006

Formata uma string usando codificação HTML. Este é um método estático.Formats a string using HTML encoding. This is a static method.

Syntax

htmlEncode( text )

text
The input string to be formatted.

Usage

This method will format a string using HTML encoding. The formatted string is returned from this method and the original string is not modified. This method is useful for encoding strings that contain any HTML reserved characters so they can be displayed in a web browser.

The example below encodes a string that contains the reserved HTML characters '<' and '>'.

var sEncoded = Server.htmlEncode("<b>Helloworld!</b>");
Response.write(sEncoded);

The example above produces the following output.

<b>Hello world!</b>

Fonte: http://www.intellidimension.com/default.rsp?topic=/pages/rdfgateway/reference/script/server_htmlencode.rsp 

Recuperando dados de formulários – diferença entre Request.QueryString e Request.Form

Abril 11, 2006

Um simples exemplo de form ( formulário):

<form method = "get" action="../pg.asp">
 First Name: <input type="text" name="fname"><br>
 Last  Name: <input type="text" name="lname"><br>
<input type="submit" value="Send">
</form>

Existem duas formas para obter informações de um form ( formulário ): Os comandos Request.QueryString e Request.Form.

Request.QueryString

O comando Request.QueryString coleta os valores de um formulário no formato texto.

A informação enviada em um formulário com o método GET é visível por todo mundo (no campo endereço). Lembre-se que o método GET limita a quantidade de informação a ser enviada.

Se um usuário digita-se "Bill" e "Gates" no formulário de exemplo acima, a URL, enviada ao servidor teria este formato:

../exemplos/pg.asp?fname=Bill&lname=Gates

O arquivo ASP "pg.asp" contém o seguinte script:

<body>
Bem vindo
<%
response.write(request.querystring("fname")
response.write(request.querystring("lname")
%>
</body>

O exemplo acima imprime isto em um documento:

Bem vindo Bill Gates
Request.Form

Para coletar os valores de um formulário com o método POST, use o comando Request.Form.

A informação enviada num formulário com o método POST é invisível para as outras pessoas. O método POST não tem limites, você pode enviar grandes quantidades de informação.

Se um usuário digita-se "Bill" e "Gates" no formulário de exemplo acima, a URL, enviada ao servidor teria este formato:

../exemplos/pg.asp?fname=Bill&lname=Gates

O arquivo ASP "pg.asp" contém o seguinte script:

<body>
Bem vindo
<%
response.write(request.form("fname")
response.write(request.form("lname")
%>
</body>

O exemplo acima imprime isto em um documento:

Bem vindo Bill Gates

fonte: http://database.vvg.com/asp/livrodigital/inputforms.asp