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

Llamada a un cgi

Estas en el tema de Llamada a un cgi en el foro de Programación General en Foros del Web. Hola a todos, tengo una duda respecto a cuáles son los caracteres que son modificados cuando hacemos una llamada a un CGI. Tengo claro que ...
  #1 (permalink)  
Antiguo 22/03/2005, 04:35
 
Fecha de Ingreso: febrero-2005
Mensajes: 39
Antigüedad: 19 años, 3 meses
Puntos: 0
Llamada a un cgi

Hola a todos,
tengo una duda respecto a cuáles son los caracteres que son modificados cuando hacemos una llamada a un CGI. Tengo claro que los espacios en blando se sustituyen por mas (+) pero necesito saber si hay más sustituciones cuando hacemos la llamada.

Gracias de antemano por la ayuda.
  #2 (permalink)  
Antiguo 22/03/2005, 07:03
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 3 meses
Puntos: 90
No se a que te refieres con la sustitución de caracteres, cuando lo llamas por link se sustituyen como cualquier link...Los espacios se colocan como %20...

Por eso es bueno tener en cuanta las minusculas y las mayusculas y no colocar espacios ni caracteres raros...

Danos un ejemplo así te entenderíamos mejor...

Saludos
__________________
Esteban Quintana
  #3 (permalink)  
Antiguo 22/03/2005, 07:45
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 3 meses
Puntos: 90
Disculpa, pero me quedó dando vueltas tu problema y creo saber a que te refieres...la entrada de datos la haces ahí ?

Código:
sub input_data {

   my (@pairs,$buffer,%input_data);

        if ($ENV{'REQUEST_METHOD'} eq 'GET') {

                @pairs = split(/&/, $ENV{'QUERY_STRING'});

        }elsif ($ENV{'REQUEST_METHOD'} eq 'POST') {

                read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
                @pairs = split(/&/, $buffer);

        }else {

                &error('leer','datos');

        }

        foreach my $pair (@pairs) {
                my ($name, $value) = split(/=/, $pair);

                $name =~ tr/+/ /;
                $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
                $name =~ tr/\0//d;

                $value =~ tr/+/ /;
                $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
                $value =~ tr/\0//d;

                $input_data{$name} = $value;
        }
        return(%input_data);
}
Cuando haces eso el $value =~ tr/+/ /; te reemplaza todos los + por un espacio y los

$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ tr/\0//d;

te elimina todo el resto y te lo deja perfecto para usar como un texto común...

Espero que sea esto

Saludos
__________________
Esteban Quintana
  #4 (permalink)  
Antiguo 22/03/2005, 08:18
 
Fecha de Ingreso: febrero-2005
Mensajes: 39
Antigüedad: 19 años, 3 meses
Puntos: 0
Llamada a CGI

Perdona por no haber contestado antes y por no ser muy claro a la hora de preguntar.

Efectivamente es lo que estaba buscando cuando me refería a lo de sustituir los caracteres en una llamada a un script cgi.

Gracias por la ayuda.
Salu2
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 09:38.