Foros del Web » Programación para mayores de 30 ;) » Programación General »

No funciona CGI

Estas en el tema de No funciona CGI en el foro de Programación General en Foros del Web. Un saludo para todos, escribo porque tengo un proble y no logro solucionarlo, he creado un CGI que pide dos datos al usuario, nombre y ...
  #1 (permalink)  
Antiguo 19/04/2002, 18:23
 
Fecha de Ingreso: abril-2002
Mensajes: 6
Antigüedad: 22 años
Puntos: 0
No funciona CGI

Un saludo para todos, escribo porque tengo un proble y no logro solucionarlo, he creado un CGI que pide dos datos al usuario, nombre y e-mail, el cgi recibe esta informacion y la guarda en un archivo .dat junto con un numero generado al azar, y muestra en pantalla los datos introducidos y el numero al azar, luego el usuario mediante otro formulario introduce su numero y el CGI debe buscar ese numero dentro del archivo .dat y mostrarle en pantalla sus datos, en este caso el nombre y el e-mail introducidos anteriormente, este es el código, espero me colaboren:

#!/usr/local/bin/perl
print "Content-type: text/plain\nPragma: no-cache\nExpires: 0\n\n";
################################################## ##
if ($ENV{'QUERY_STRING'})
{
$buffer = $ENV{'QUERY_STRING'};
}
elsif ($ENV{'CONTENT_LENGTH'})
{
read(STDIN,$buffer,$ENV{'CONTENT_LENGTH'});
}
@cgiPairs = split(/&/, $buffer);
foreach $cgiPairs (@cgiPairs)
{
($name,$value) = split(/=/, $cgiPairs);
$value =~ s/\+/ /g;
$value =~ s/%(..)/pack("c",hex($1))/ge;
$Form{$name} .= "\0" if (defined($Form{$name}));
$Form{$name} .= "$value";
}
undef $name; undef $value;

################################################## ##
if ($Form{'submit'})
{
$nombre = $Form{'nombre'};
$email = $Form{'email'};
$archivo = "/data1/hypermart.net/darkmew/cgi-bin/numeros.dat";
if ($nombre eq ''){
&error ("nombre en blanco.");
}
elsif ($email eq ''){
&error ("E-mail en blanco.");
}
else {
&procesadatos;
}
}
################################################
if ($Form{'submit2'}){
$numero = $Form{'numeusuario'};
$acceso = 0;
if ($numero == ''){
&error ("Numero en blanco.");
}
else
{
open(DATOS,"$archivo") || &error ("No se puede abrir la Base de Datos.");
@lineas = <DATOS>;
close(DATOS);

foreach $linea (@lineas){
chomp($linea);
@datos = split(/:/, $linea);
$acceso = 1 if ($datos[0] eq $numero);
}

Jair A. Bedoya
  #2 (permalink)  
Antiguo 19/04/2002, 18:24
 
Fecha de Ingreso: abril-2002
Mensajes: 6
Antigüedad: 22 años
Puntos: 0
Re: No funciona CGI

if ($acceso == 1){
open(DATA,"$archivo") || &error ("No se puede abrir la Base de Datos.");
@lineas2 = <DATA>;
close(DATA);

foreach $linea2 (@lineas2){
chomp($linea2);
@datos2 = split(/:/, $linea2);
if ($numero eq $datos2[0]){
print "Nombre: $datos2[1]\n";
print "E-Mail : $datos2[2]\n";
print "Numero: $datos2[0]\n";
}
}
}
else{
&error ("El numero que ingreso es incorrecto, por favor intentelo de nuevo.");
}
}
}
################################################
sub procesadatos
{
srand;
$azar = int rand(4000);
$azar++;
open(REG,">>$archivo") || open(REG,">$archivo");
print REG "$azar:$nombre:$email\n";
close(REG);
print "Esta es su informacion:\n\n";
print "Nombre: $nombre\n\n";
print "E-Mail: $emai\n\n";
print "Código: $azar\n\n";
}
##################################################
sub error
{
my $error = $_[0];
$error = "Desconocido" if (!$error);
print "Al parecer ocurrio un error durante el procesamiento\n";
print "de su informacion, el motivo es:\n";
print "$error\n";
exit;
}
################################################## ##

Jair A. Bedoya
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:31.