Ver Mensaje Individual
  #3 (permalink)  
Antiguo 15/10/2009, 02:10
jferrero
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 524
Antigüedad: 18 años
Puntos: 11
Respuesta: Procesar variables de un formulario con multipart

Obtener los parámetros enviados por POST es muy fácil: llegan por la entrada estándar. Solo tienes que ir leyéndola e interpretar los diversos pares de parámetro/valor, separados por '&', algo que también es fácil de hacer con strtok().

Aquí tienes un resumen:

Código:
int main()
{
     void destripa(char *lin);
     char linea[MAX];
     
     strcpy(linea,"");
     fgets(linea, MAX, stdin);
     destripa(linea);
}

void destripa(char *lin)
{
     int tam;
     char *txt;
     char *p;

     tam=strlen(lin);
     txt=(char *)malloc(tam);

     strcpy(txt,lin);

     printf ("Content-Type: text/html\n\n");
     printf("<html><body><h3>Analisis de los datos enviados mediante POST<h3>\n");
     p = strtok(txt, "&");
     while (p)
     {
       printf("<b>Pareja Nombre/Valor :<b> <font color=\"RED\">%s<font><br>\n", p);
       p = strtok(NULL, "&");
     }
     printf ("<body><html>\n");

}
El main() se encarga de declarar las variables que vamos a usar, y de leer de la entrada estándar (stdin).

Luego, la función destripa(), con la ayuda de strtok() y un puntero, va leyendo lo leído y sacando los pares parámetro/valor. En este ejemplo salen a la salida estándar, pero podrían ser almacenados para ser usados en otras partes del programa.

Código completo

Con Perl es un poco más corto.
__________________
JF^D Perl Programming en Español