Formulario PERL + CGI [RESOLVIDO]

1. Formulario PERL + CGI [RESOLVIDO]

José Cleydson Ferreira da Silva
cleysinhonv

(usa Ubuntu)

Enviado em 29/01/2011 - 11:06h

Olá Pessoal,

estou com dificuldade de receber dados de um formulário, enviado por método POST. Vou postar aqui o formulário e o script. Caso alguém possa me ajudar fico grato.

+++++++++++++++++++++++++++++++Formulário++++++++++++++++++++++++++++++++++++++++++++++
<FORM action="/cgi-bin/addform.cgi" method="POST">

Numero sequencia: <input type="text" name="id"> <br>
Reino: <input type="text" name="reino"> <br>
especie: <input type="text" name="especie"> <br>
sequencia:<textarea name="sequencia" cols=40 rows=4>
Type your sequenc here...
</textarea>

<input type="submit" value="Submit">

</FORM>


=========================SCRIPT======================================
#!/usr/bin/perl
#use strict;
#use warnings;

use DBI;
use CGI;

#my $buffer=undef;
#my @pairs=undef;
#my $pair=undef;
#my $name=undef;
#my $value=undef;
#my %FORM=undef;


local ($buffer, @pairs, $pair, $name, $value, %FORM);
# Read in text
$ENV{'REQUEST_METHOD'} =~ tr/a-z/A-Z/;
if ($ENV{'REQUEST_METHOD'} eq "POST")
{
read(STDIN,$buffer = $ENV{'QUERY_STRING'});
}else {
$buffer = $ENV{'QUERY_STRING'};
}

# Split information into name/value pairs
@pairs = split(/&/, $buffer);
foreach $pair (@pairs)
{
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%(..)/pack("C", hex($1))/eg;
$FORM{$name} = $value;
}

my $id = $FORM{id};
my $reino = $FORM{reino};
my $especie = $FORM{especie};
my $sequencia = $FORM{sequencia};

my $dbh = DBI->connect("DBI:mysql:dna:localhost",'root','biopop')
or die ("Não foi possível fazer conexão: " . $DBI::errstr);
#print "Query $sql executada com sucesso.\n";

$dbh->disconnect();

print "Content-type:text/html\r\n\r\n";
print "<html>";
print "<head>";
print "<title>Teste</title>";
print "</head>";
print "<body>";
print "<h2>Inserido $sequencia - Ok</h2>";
print "</body>";
print "</html>";



  


2. Re: Formulario PERL + CGI [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 05/04/2011 - 09:38h

se você esta usando o "use CGI" porque não o usa ao invés de tratar o recebimento do QueryString na mão?

__START__

use CGI;

# instancia da classe CGI
my $cgi = CGI->new;

# imprime o cabeçalho http
print $cgi->header;

# imprime as seus parametros
print qq{
Numero sequencia: }. $cgi->param("id") .qq{<br>
Reino: }. $cgi->param("reino") .qq{ <br>
Especie: }. $cgi->param("especie") .qq{ <br>
sequencia: }. $cgi->param("sequencia");

__END__

Isso deve funcionar!

Forte abraço,






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts