LOGIN:

iMasters | Por uma internet mais criativa e dinâmica

Feeds

Segunda-feira, 04/11/2002 - 03:00 - Por Raphael Simas
Seções relacionadas:

CGI em formulários / CSS em formulários

Olá pessoal!

Em resposta à uma quantidade realmente grande de emails, escrevo esta coluna. Falaremos sobre uma rotina CGI para envio de formulários sem o Outlook. E, aproveitando o assunto de formulários, respondo à mais um "monte" de emails, falando sobre aparência de formulários (mudar fonte, cor, borda etc....). Então, vamos á matéria!!!

CGI em Formulários
Existem outras formas de enviar emails por rotinas programadas... você tem ASP, PHP etc... Eu preferi falar sobre a CGI porque é bem prática e fácil. A única coisa que não depende delá é o servidor que tem que estar configurado. Mas isso, você terá que ver com o administrador do servidor.

O código é este:

#!/usr/bin/perl
# email.pl
#
# **********************************************************
# * Comentario: Processa formulário e o envia por e-mail
# *
# *
# **************************************************************
#

# ****************** inicializacao de variáveis que serão usadas*********

$mail_prog = '/usr/sbin/sendmail';
$destination = 'AQUI O SEU EMAIL';
$subject = 'AQUI O TÍTULO DO EMAIL';
$feedback = '/home/user/public_html/resposta02.htm';
$resperro = '/home/user/public_html/resposta04.htm';
$acesso = '0';
#*******************início do programa***************************
# Verifica o método utilizado e ativa entrada padrao
if ($ENV{'REQUEST_METHOD'} eq 'POST') {
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@pairs = split(/&/, $buffer);

# Utiliza um arquivo temporário para guardar informações até enviá-las por e-mail
open(TMP, ">/tmp/$$");

# Lê cada par (name e value) separando os com o caracter "="
# elimina espaços em branco e inicializa variáveis necessárias
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-f0-9])/pack("C", hex($1))/eg;
if ( $name eq 'feedback') {
$feedback = $value;
}
if ( $name eq 'nome') {
$nome = $value;
}
if ( $name eq 'email') {
$email = $value;
}
if ( $name eq 'obs') {
$obs = $value;

}

print TMP "$name = $value ";
}
close(TMP);

if ( $nome eq '' or $obs eq '' or $email eq ''){
# Eu coloquei nesta proxima linha o valor de acesso=0
$acesso = '0';
}else{
$acesso = '1';
}

if ($acesso eq '1') {

# Envia e-mail com os dados acumulados no arquivo temporário
open(pipe_mail, "|$mail_prog $destination") || &erro("Não pode enviar mail");
open(TMP, "/tmp/$$");
print pipe_mail "From: $email ";
print pipe_mail "Reply-to: $email ";
print pipe_mail "To: $destination ";
print pipe_mail "Subject: $subject ";
print pipe_mail " ";
while() {
print pipe_mail $_;
}
close(TMP);
close(pipe_mail);

# Elimina arquivo temporário
unlink("/tmp/$$");

# Envia página como resposta
if ($feedback =~ ////) {
print "Location: $feedback ";
} else {

# Mensagem padrão para o browser esperar html
print "Content-type: text/html ";

open( FEED, $feedback);
while() {
print $_;
}
close(FEED);
}
}

if ($acesso eq '0') {

print "Content-type: text/html ";
print;
open(RESP, $resperro);
while() {
print $_;
}
close(RESP);

}

}

---------------------------------------------------------------
01 - Copie este código para um txt e salve como email.pl.
02 - Os destaques em Verde no início do código são as mudanças que você deverá fazer:

$mail_prog = '/usr/sbin/sendmail'; = O Administrador do servidor te informará este endereço, que é o programa de envio, usado do servidor... sem este endereço correto, não vai funcionar...

$destination = 'AQUI O SEU EMAIL'; = Aqui você coloca seu email, oara onde serão enviadas as informações.

$subject = 'AQUI O TÍTULO DO EMAIL'; = Aqui, você indica um título para a mensagem que chegará no seu email.

$feedback = '/home/user/public_html/confirma.htm'; = URL da págima de resposta com a confirmação dos dados. Repare que não basta colocar a URL http://........ O endereço deverá ser o do servidor... por isso, você deve entrar em contato com o administrador.

$resperro = '/home/user/public_html/erro.htm';
URL da página de resposta com a informação de Erro no preenchimento, etc... vale o mesmo para o endereço acima.

if ( $name eq 'nome') {
$nome = $value;
}
if ( $name eq 'email') {
$email = $value;
}
if ( $name eq 'obs') {
$obs = $value;


= Nestas condições, estão explicitados 3 nomes de campos que, obrigatoriamente, deverão existir no seu formulário (nome, email e obs).
03 - Agora, no formulário.... na action, você deverá indicar o locar da cgi, dessa vez, pelo http.. Por exemplo: Action=http://www.meudominio.com.br/cgi-bin/email.pl
OBS: para indicar uma action para o form, basta selecionar a linha vermelha pontilhada do formulário que no painel de propriedades aparecerá o campo para isso.

---------------------------------------------------------------

Aplicando um CSS para um formulário:

Como foi dito na coluna anterior, utilizaremos o painel CSS do Dreamweaver.

Veja no exemplo vários css e suas informações:

EXEMPLO

É isso pessoal. Continuem mandando seus emails com dúvidas, sugestões, críticas etc... E até a próxima!

Dica de Áudio:
Álbum: Eric Clapton Unplugged
Artista: Eric Clapton
Comentários: Muito violão pra galera eheh... vale a pena escutar este CD...

Todos os artigos de Raphael Simas

0 comentários publicados

Poste um comentário


Os textos publicados neste espaço são de responsabilidade única de seus autores (colunistas e leitores) e podem não expressar necessariamente a opinião do iMasters.

Sobre o autor

Raphael Simas é Diretor de Arte da produtora Café Azul Mídia Digital e utiliza o Macromedia Fireworks como principal ferramenta para a criação para web.


Indique para um amigo

captcha

TI SHOP Produtos iMasters

  • Lançamento: CD-ROM Treinamento Aplicado de SQL - Lançamento! Treinamento Aplicado de SQL - Aprenda a trabalhar com SQL com bancos de dados Oracle e SQL Server. São mais de 100 tópicos explicados por Mauro Pichilliani, um articulistas mais lidos do iMasters. Aproveite! Apenas R$ 69,90 no TI SHOP.
  • Lançamento: Livro iMasters "O Encontro de 2 Mundos"- Este livro conta com 56 crônicas de profissionais mais admirados e influentes do mercado brasileiro de Internet. Aproveite o preço especial para leitores do iMasters. Apenas R$ 40,00 e envio imediato!
  • DVD Curso Completo de Photoshop - Do conceito à finalização Lançamento! Curso Completo de Photoshop, em DVD, com mais de 230 aulas dividas em 4 módulos: conceito, básico, avançado e finalização. Apenas R$ 69,50 no TI SHOP - Frete com 50% de desconto
  • DVD Javascript Starter - Curso Completo Com mais de 9 horas de vídeo-aulas, é um curso completo sobre Javascript. Ideal para quem deseja aprender a linguagem. Apenas R$ 64,90 no TI SHOP - Frete com 50% de desconto!

2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.