Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-12-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
POST indirecto

Hola, tengo esta situación:

Un usuario entra a una página y manda cierta información que recibo en un script, la proceso haciendo unas consultas y con ello obtengo unos datos que debo enviar a un sitio externo para su verificación. Estos datos deben enviarse forzosamente via POST.

¿Cómo lo hago?

Hasta ahora se me ocurre que en el formulario donde el usuario mete su información, en lugar de mandarlo como siempre, use ajax para hacer las consultas, obtener los datos y colocarlos en un segundo formulario con campos ocultos y hacer el submit de ese formulario con javascript.

Pero me gustaría saber si hay alguna manera de hacer un POST directamente con PHP para no depender de ajax ni javascript o si se les ocurre otra forma de hacer esto.

// Saludos
Responder Con Cita
  #2  
Antiguo 15-12-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Tal vez una posible solución pasara por utilizar un cliente HTTP. Existen varios, como sabrás. Uno muy utilizado (WordPress hace uso de él) es Snoopy. Personalmente hago uso del HttpClient de Incutio. Seguro que hay más, pero, para empezar ya está bien.

Cita:
Empezado por HttpClient de Incutio
HttpClient is a client class for the HTTP protocol. It can be used to interact with another web server from within a PHP script. As well as retrieving information from a server, HttpClient can interact with a server via POST or GET. It can therefore be used as part of any script that needs to communicate with an application running on another site.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 15-12-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Gracias. Pensé que sería una de esas clases gigantezcas pero ya veo que esta bastante decente el código. Voy a ver si puedo hacerme uso de él.

// Saludos
Responder Con Cita
  #4  
Antiguo 15-12-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Sí; ciertamente, son relativamente sencillas de utilizar ambas clases que te he propuesto. No sé en qué se diferenciarán una de otra, esa es la verdad. De hecho uso la clase de Incutio porque también hago uso de otra de sus clases con buenos resultados. En ambos casos, la verdad, obtengo buenos resultados. De todos modos, al tratarse de código abierto... ya sabes que siempre puedes echarle un vistazo y adaptarlo a tus necesidades.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 15-12-2006
Mick Mick is offline
Miembro
 
Registrado: may 2003
Posts: 405
Poder: 21
Mick Va por buen camino
Realmente no es necesario usar clases externas para hacer posts y cosas de ese estilo, php ya incluye una libreria "de serie" para ello bastate facil de usar:

Ejemplo que aparece en la ayuda de php sobre la libreria curl:

Código:
TO POST TO A PAGE USING values and fields:
$url="http://anything";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, "fieldname=fieldvalue&fieldname=fieldvalue&");
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$content = curl_exec ($ch); # This returns HTML
curl_close ($ch);
Saludos
Responder Con Cita
  #6  
Antiguo 15-12-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Lo que dices está muy bien Mick, empero, la librería a que te refieres no parece estar disponible "de serie". Yo, por ejemplo, en mi servidor local de pruebas no cuento con dicha librería. Más información en el manual de PHP: XVIII. Funciones CURL (Client URL Library).

PD. Acabo de probar en el Servidor que alberga cierta página Web que me traigo entre manos y tampoco parece estar disponible la librería que nos ocupa.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 15-12-2006 a las 21:41:16.
Responder Con Cita
  #7  
Antiguo 15-12-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cierto, había olvidado que existía curl hasta que lo mencionó Mick. Pero tiene el "problema" que menciona dec. La clase de incutio usa sockets que son intrínsecos a PHP. Por el momento usaré esta, que es para algo muy sencillo y es bastante decente.

Gracias a ambos

// Saludos
Responder Con Cita
  #8  
Antiguo 21-12-2006
halizia halizia is offline
Miembro
 
Registrado: abr 2006
Posts: 116
Poder: 19
halizia Va por buen camino
Para variar estoy bastante perdida, Mick ha dicho cómo se usa la librería pero ¿cual es el archivo que tengo que incluir en mi código? me he bajado el paquete pero sólo hay archivos .h y .c, no se si es que me he bajado el paquete erróneo.


mmm, me he bajado ahora otro paquete, en este caso es un instalador, no sé si con eso ya basta :S

Saludos.

Última edición por halizia fecha: 21-12-2006 a las 09:32:13.
Responder Con Cita
  #9  
Antiguo 21-12-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

En mi opinión acaso te conviniera centrarte más en las clases que se han mencionado en este Hilo y que permiten hacer peticiones "HTTP POST" que no en cómo utilizar la librería CURL. Ojo, que siempre puedes echar un vistazo a lo que dice el manual de PHP sobre la librería CURL.

Pero, ya digo, no olvides que cuentas con Incutio HttpClient y que en su página Web encuentras ejemplos de uso, "demos", su manual, etc.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #10  
Antiguo 21-12-2006
halizia halizia is offline
Miembro
 
Registrado: abr 2006
Posts: 116
Poder: 19
halizia Va por buen camino
^^ No habia visto lo de Incutio por lo visto sólo tengo que copiar esta librería (http://scripts.incutio.com/httpclien...ient.class.php), añadirla en mis includes y ya ta, no?
Bueno pues me da el siguiente error:
Notice: Undefined index: host in C:\Archivos de programa....\incutio.php on line 314

tengo que darle yo el valor a $host?? he puesto $host='localhost' al principio de la clase, pero me da error en la linea en la que pone: $host = $bits['host'];

Muchas Gracias!!!

Última edición por halizia fecha: 21-12-2006 a las 10:22:50.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cancelar Post Acker Conexión con bases de datos 4 22-05-2006 13:18:20
IBDatase Insert Post Edit Post ariefez Firebird e Interbase 4 12-10-2005 01:53:04
After Post en interbase jgutti Firebird e Interbase 2 09-03-2005 06:00:12
Post con ODBC urush30 Oracle 0 20-09-2004 12:28:06
cancelar post?? ebeltete SQL 9 17-06-2004 22:46:19


La franja horaria es GMT +2. Ahora son las 08:21:24.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi