• Publicidad

Problema con Post

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Problema con Post

Notapor danimera » 2006-08-26 13:05 @587

Resulta que envio datos por GET y me funciona bien, pero cuando uso el method POST me sale error que las variables no me llegan o me pasan vacía,

También uso el módulo CGI, pero mi problema es que, hay un formulario que usa Post y funciona bien, pero los otros formularios no.

ejemplo
Sintáxis: [ Descargar ] [ Ocultar ]
  1. <form name="fomulario" action="recipiente.pl" method="get"> Funciona 
  2. <form name="fomulario" action="recipiente.pl" method="POST"> NO 


Instalë de nuevo el Windows y nada sigue igual. ¿Será que hay algo especial que no he hecho?
100% Telch - Perl Web Programming
Cali PerlMongers: http://cali.pm.org
Avatar de Usuario
danimera
Perlero frecuente
Perlero frecuente
 
Mensajes: 871
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia

Publicidad

Notapor explorer » 2006-08-26 13:23 @599

Está descrito en el manual de CGI.pm:
HANDLING NON-URLENCODED ARGUMENTS

If POSTed data is not of type application/x-www-form-urlencoded or multipart/form-data, then the POSTed data will not be processed, but instead be returned as-is in a parameter named POSTDATA. To retrieve it, use code like this:

my $data = $query->param('POSTDATA');
que quiere decir que en tu <form> debes agregar el tipo de codificación por el que se van a enviar los datos. Algo así:
Código: Seleccionar todo
<form name="fomulario" action="recipiente.pl" method="POST" enctype="application/x-www-form-urlencoded">
(también en el manual de CGI.pm).

O de lo contrario, recibirás la entrada del formulario en un único parámetro llamado POSTDATA, que es lo que te está pasando ahora.
Última edición por explorer el 2006-09-25 17:24 @766, editado 1 vez en total
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor danimera » 2006-08-26 16:50 @743

Yo sabia que era eso, lo sabia, lo sabia que era el encode type algo me lo decia,,

Gracias Explorer, cada dia se aprende mas
100% Telch - Perl Web Programming
Cali PerlMongers: http://cali.pm.org
Avatar de Usuario
danimera
Perlero frecuente
Perlero frecuente
 
Mensajes: 871
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia

Notapor AkonD » 2006-09-23 22:35 @982

Tengo un problema parecido, si me pueden echar una mano

Sintáxis: [ Descargar ] [ Ocultar ]
  1. <form name='crear-perfil' method='POST' action="?cmd=crear_perfil" enctype='application/x-www-form-urlencoded'><fieldset> 


El problema que tengo es que no consigo recibir los datos del formulario. Para recojer los datos utilizo
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my %form = $cgi->Vars;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Si os fijais en el action del form envío un parámetro a la url junto con el formulario. Para recojerlo uso
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $cmd = url_param('cmd');
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Salu2
AkonD
Perlero nuevo
Perlero nuevo
 
Mensajes: 50
Registrado: 2005-10-06 06:36 @316
Ubicación: España

Notapor explorer » 2006-09-24 08:57 @415

Prueba a colocar ese parámetro como un elemento invisible del formulario, un
Sintáxis: [ Descargar ] [ Ocultar ]
  1. <input type="hidden" name="cmd" value="crear_perfil"> 
Última edición por explorer el 2006-10-12 09:39 @443, editado 1 vez en total
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor AkonD » 2006-09-24 09:15 @427

He probado con el input hidden y nada.. incluso peor porque no carga la página de respuesta del formulario.

Voy a pegar el código del script. Os dejo la url
http://rafb.net/paste/results/ORcwzq83.html

Una duda.

Lo que recibo del formulario se junta con lo que recibo en la url, ¿no?

Me refiero a que con
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
%hash = $cgi->Vars
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
recibiré el formulario y lo del cmd o al usar $cgi->url_param coje lo de cmd por un lado y el formulario por Vars... no sé si me explico.
AkonD
Perlero nuevo
Perlero nuevo
 
Mensajes: 50
Registrado: 2005-10-06 06:36 @316
Ubicación: España

Notapor explorer » 2006-09-26 11:20 @514

Pueden mezclarse tanto lo recibido por POST como lo indicado como parámetro en el URL. El módulo CGI se encarga de eso. PERO: en la función param() sólo devolverá lo enviado por POST. Para recuperar los parámetros que están en el URL debes usar la función url_param().

Lee el manual del CGI, buscando por 'mixing post and url'.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 17 invitados