Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: OssoH en 10 Diciembre 2010, 16:07 pm



Título: Pasar variables POST sin formulario. PHP
Publicado por: OssoH en 10 Diciembre 2010, 16:07 pm
Hola a todos. Os pongo el codigo que tengo que funciona bien pero lo que deseo es que no me aparezca la cabecera 'HTTP/1.1 200 OK Date: Fri, 10 Dec 2010 15:02:51 GMT Server: Apache/2.2.11 (Win32) DAV/2 mod_ssl/2.2.11 OpenSSL/0.9.8i PHP/5.2.9 X-Powered-By: PHP/5.2.9 Content-Length: 63 Connection: close Content-Type: text/html; charset=utf-'  cuando al final pongo ECHO.

Mi idea es llamar a un fichero PHP pasandole variables como POST (sin suar formulario) y que me devuelva un valor que mostraré en pantalla.

Código:
<?
$host = "your.host.com";
$port = 80;
$postdata = "field1=value1&field2=value2&field3=value3";

if ($sp = fsockopen($host,$port)) {

    fputs($sp,"POST /path/to/somescript/php HTTP/1.0 ");
    fputs($sp,"Host: $host ");
    fputs($sp,"Content-type: application/x-www-form-urlencoded ");
    fputs($sp,"Content-length: ".strlen($postdata)." ");
    fputs($sp,"Connection: close ");
    fputs($sp,$postdata);

    // optionally print the response
    while (!feof($sp)) {
        echo fgets($sp,128);
    }

    fclose($sp);

}  ?>

Muchas gracias por vuestros consejos y ayuda!!


Título: Re: Pasar variables POST sin formulario. PHP
Publicado por: OssoH en 10 Diciembre 2010, 16:30 pm
Ya lo he solucionado
en la respuesta del echo pongo
strchr($sp,"\r\n\r\n");
Esto lo que hace es eliminar todo el header


Título: Re: Pasar variables POST sin formulario. PHP
Publicado por: ~ Yoya ~ en 10 Diciembre 2010, 16:51 pm
Citar
HTTP/1.1 200 OK Date: Fri, 10 Dec 2010 15:02:51 GMT Server: Apache/2.2.11 (Win32) DAV/2 mod_ssl/2.2.11 OpenSSL/0.9.8i PHP/5.2.9 X-Powered-By: PHP/5.2.9 Content-Length: 63 Connection: close Content-Type: text/html
Es la respuesta del servidor y te aparece porque estas intentando imprimirlo, nose si el source lo haz hecho pero te puedes fijar en el comentario:

Código
  1. // optionally print the response
  2.    while (!feof($sp)) {
  3.        echo fgets($sp,128);
  4.    }

Solo quitar esa linea nomas.

Nota: Esa linea puede que este para ver el codigo de respuesta que nos responde el servidor, así puedes saber si la petición POST se envió correctamente


Título: Re: Pasar variables POST sin formulario. PHP
Publicado por: bomba1990 en 10 Diciembre 2010, 17:37 pm
estaq bueno el codigo yo no sabia que eso se podia hacer. ;-)


Título: Re: Pasar variables POST sin formulario. PHP
Publicado por: OssoH en 10 Diciembre 2010, 17:46 pm
Otra forma es hacerlo con CURL si dispones de las librerias instaladas.
Ya lo solucione. Gracias