[Php-avanzado] Http Post
Leonardo Tadei - Pegasus Tech Supply
leonardot en pegasusnet.com.ar
Vie Sep 17 11:07:19 ART 2010
Hola Jésica,
El vie, 17-09-2010 a las 02:16 +0000, Jesica Billia escribió:
> Gracias Leo!! En realidad no lo estoy usando en ningún elemento <a>...
> ¿¿¿???? quizás me expresé mal!!
No te expresaste mal... mencioné un <a> porque imaginé ese escenario,
pero header("Location...) pasa parámetros exactamente igual que un <a>
> lo intento usar cuando voy a crear álbums en la tesis, quiero enviar
> los datos por post a un script para que los guarde y seguir en la
> misma página,
>
> es decir, estyo en la pagina donde creo un nuevo album, lueog click en
> Guardar y voy a otra página que lo valida, si todo sigue bonito lo
> mando por post a un script que al
>
> recibirlo lo guarde.
No entiendo una cosa: por un lado decís que "los guarde y seguir en la
misma página", pero después decís que "voy a ora página que lo valida",
entonces sí estás llamando a otra página (?)
A mi me parece que podés conseguir el mismo resultado sin nada de estas
cosas así:
1) pagina.php tiene un formulario POST y todo eso. Se envía el
formulario a agregar.php
2) agregar.php valida, guarda y esas cosas, sin mostrar ninguna salida,
y en su última línea dice: header("Location: pagina.php"); con lo que el
navegador vuelve a mostrar pagina.php, pero ahora aparecen los datos
agregados o modificados.
2-bis) Si necesitás tener feedback con el usuario y decirle que se
agregó o que falló, podés hacer un header("Location: pagina.php?msg=
$msg"); en donde la variable $msg tiene el mensaje a mostrarle, así
pagina.php, si $_GET['msg'] existe, le muestra un mensajito.
El resultado es que el sitio se queda en la misma página, y además no
se ven en el URL los datos de envío, que si no entiendo mal, es lo que
querés lograr.
Si querés lograr otra cosa, contanos qué es para ver las opciones que
tenés.
PD: en tu uso de la clase POST, no estoy seguro de que funcione hacerle
un set_element() cuyo contenido sea un vector... y puede ser el motivo
del fallo, porque enviás cosas que el protocolo HTTP no soporta.
> Pero no sé qué puede ser el error, ahora voy a revisar el archivo
> que cree. Te paso el script que use de prueba antes de implementar
> nada en la tesis:
>
> agregar.php
> -------------
> <?php
> include("class.http_post.php");
> $a=new http_post;
> $a->set_action("http://www.fotosmdq.com/merrell/n/agregar.php");
>
> $a->set_element(array("Nombre"=>$_POST['Nombre'],"Apellido"=>$_POST['Apellido']));
> $resultado=$a->send(0);
> print($resultado);
> ?>
>
> si no encuentro ningun error de sintaxis en el class.http_post.php, te
> lo puedo enviar?? yo se que es muy engorroso pero bueno.. no se como
> hacer que funcione, igual
>
> por el momento me las estoy rebuscando haciendo un header location y
> chau pichu jaja tengo otra consulta pero voy a generar otro mail,
> gracias leo!!
> > From: leonardot en pegasusnet.com.ar
> > To: php-avanzado en pato2.fi.mdp.edu.ar
> > Date: Thu, 16 Sep 2010 07:33:55 -0300
> > Subject: Re: [Php-avanzado] Http Post
> >
> > Hola Jésica,
> >
> > el "Bad Request - Invalid Verb" aparece como un error de IIS casi
> > siempre.
> > Suele ser porque en la cabecera de la petición hay caracteres que no
> se
> > pueden manejar, como por ejemplo el "?".
> >
> > http://wiki.answers.com/Q/What_is_bad_request_invalid_verb
> >
> > Acá hay varia info al respecto, pero a primera vista toda tiene que
> ver
> > con servidores Microsoft:
> > http://www.google.com/search?aq=f&sourceid=chrome&ie=UTF-8&q=Bad
> +Request
> > +-+Invalid+Verb
> >
> > También es posible que al transcribir la clase, le hayas puesto
> algún
> > espacio de más en las salidas.
> >
> > De curioso: para qué estás convirtiendo enlaces <a> a POST ??? El
> > grueso de la info debe estar en formularios, los cuales van por POST
> o
> > GET según el método usado en la definición...
> >
> > El jue, 16-09-2010 a las 02:56 +0000, Jesica Billia escribió:
> > >
> > > Hola, copié la clase Http_post que está en el apunte e intenté
> > > utilizarla....
> > >
> > > 1ro probé con la config de Localhost pero ni fu... así que subí
> los
> > > archivos a un ftp prestado...
> > >
> > > el tema es que me arroja un error y no sigue adelante con lo que
> tiene
> > > el script.
> > >
> > > Error:
> > > HTTP/1.1 400 Bad Request Content-Type: text/html; charset=us-ascii
> > > Server: Microsoft-HTTPAPI/2.0 Date: Thu, 16 Sep 2010 02:53:14 GMT
> > > Connection: close Content-Length: 326
> > > Bad Request - Invalid Verb
> > >
> > >
> ______________________________________________________________________
> > > HTTP Error 400. The request verb is invalid.
> > >
> > >
> > > Somebody help me??!!! gracias!!
--
Leonardo Tadei
leonardot en pegasusnet.com.ar
http://blog.pegasusnet.com.ar
Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key
Más información sobre la lista de distribución Php-avanzado