elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  FSockOpen Duda!!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: FSockOpen Duda!!  (Leído 2,896 veces)
TrashAmbishion


Desconectado Desconectado

Mensajes: 756


Ver Perfil
FSockOpen Duda!!
« en: 15 Septiembre 2011, 19:06 pm »

Hola estoy probando el uso de FSOCKOPEN como muestro a continuacion me dice 200 OK, la linea como tal esta correcta pero el script me dice que la url esta malformanda.

Esta es la linea que tengo que pasar:

name=usuario@gmail.com&pass=password&message=mensaje+de+Probando&number=53.52653526&ownnum=cheito

Respuesta:

name=usuario@gmail.com&pass=password&message=mensaje+de+Probando&number=53.52653526&ownnum=cheitoHTTP/1.1 200 OK Date: Thu, 15 Sep 2011 16:07:44 GMT Server: Apache X-Powered-By: PHP/5.2.17 Set-Cookie: countmdw=Si; expires=Thu, 15-Sep-2011 16:17:44 GMT Connection: close Transfer-Encoding: chunked Content-Type: text/html 20 result=error^reason=malformedsms 0

Que puede estar pasando, me llama la atencion y es el 20 que esta delante del result=error^reason=malformedsms 0

Le pongo el codigo que estoy usando por si ven algo raro..

$fp = fsockopen("www.hostxxx.com", 80, $errno, $errstr, 30);
fputs($fp, "POST /api.php HTTP/1.1\r\n");
fputs($fp, "Host: www.hostxxx.com\r\n");
fputs($fp, "Content-type: application/x-www-form- urlencoded\r\n");
fputs($fp, "Content-length: " . strlen($vars) . "\r\n");
fputs($fp, "User-agent: Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)\r\n");
fputs($fp, "Connection: close\r\n\r\n");
fputs($fp, $vars);

while (!feof($fp)) {
$buf .= fgets($fp,128);
}
fclose($fp);

Espero por sugerencias..


En línea

дٳŦ٭
GNU/Linux Infrastructure Specialist
Ex-Staff
*
Desconectado Desconectado

Mensajes: 5.110


Ver Perfil WWW
Re: FSockOpen Duda!!
« Respuesta #1 en: 30 Septiembre 2011, 20:12 pm »

mmm se me ocurre utilizar urlencode para pasar el string, no lo sé, igual y así te funque. Prueba enviando cadenas con caracteres simples (1234567890, abce..etc...).

Suerte.


En línea

madpitbull_99
Colaborador
***
Desconectado Desconectado

Mensajes: 1.911



Ver Perfil WWW
Re: FSockOpen Duda!!
« Respuesta #2 en: 30 Septiembre 2011, 20:23 pm »

Tal vez es porque tienes que enviar la cabecera toda de una vez.

Primero guardas la cabecera en una variable y luego haces el fput().

Código
  1. $header = "";
  2. $fp = fsockopen("www.hostxxx.com", 80, $errno, $errstr, 30;
  3. $header .= "POST /api.php HTTP/1.1\r\n";
  4. $header .= "Host: www.hostxxx.com\r\n";
  5. $header .= "Content-type: application/x-www-form- urlencoded\r\n";
  6. $header .=, "Content-length: " . strlen($vars) . "\r\n";
  7. $header .="User-agent: Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)\r\n";
  8. $header .= "Connection: close\r\n\r\n";
  9. fputs($fp, $headers);
  10.  
  11. while (!feof($fp)) {
  12. $buf .= fgets($fp,128);
  13. }
  14. fclose($fp);

Si sigue sin funcionar, intenta hacerlo con cURL, hay varios ejemplos en el foro.
En línea



«Si quieres la paz prepárate para la guerra» Flavius Vegetius

[Taller]Instalación/Configuración y Teoría de Servicios en Red
WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: FSockOpen Duda!!
« Respuesta #3 en: 30 Septiembre 2011, 21:17 pm »

Mira este ejemplo desde php.net, talves te sirva.
Es una petición POST sin usar fsock ni curl:

http://php.net/manual/es/function.file-get-contents.php
Código
  1. <?php
  2. /**
  3. make an http POST request and return the response content and headers
  4. @param string $url    url of the requested script
  5. @param array $data    hash array of request variables
  6. @return returns a hash array with response content and headers in the following form:
  7.     array ('content'=>'<html></html>'
  8.         , 'headers'=>array ('HTTP/1.1 200 OK', 'Connection: close', ...)
  9.         )
  10. */
  11.  
  12. function http_post ($url, $data){
  13.    $data_url = http_build_query($data);
  14.    $data_len = strlen($data_url);
  15.  
  16.    return array(
  17. 'content' => file_get_contents($url, false, stream_context_create(array(
  18. 'http'=> array(
  19. 'method' => 'POST',
  20. 'header' => "Connection: close\r\nContent-Length: $data_len\r\n",
  21. 'content' => $data_url
  22.            )
  23. ))),
  24. 'headers' => $http_response_header
  25. );
  26. }
  27. ?>

Yo para casi todo utilizo el file_get_contents(), además se adapta solo a multiples protocolos sin tener que escribir todo a mano, se adapta a https, ftps, http, ftp, hasta obtener archivos locales, etc.

Es una verdadera navaja suiza de las peticiones simples.

Se usa masomenos así:
Código
  1. <?php print_r(http_post('http://www.host.com/archivo.php', array('var1' => 'val1'))); ?>
« Última modificación: 30 Septiembre 2011, 21:40 pm por WHK » En línea

temexhandsome

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: FSockOpen Duda!!
« Respuesta #4 en: 1 Noviembre 2011, 22:01 pm »

Creo que la division entre la url y los parámetros enviados, debe ser separara por un ? y no por un &.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con fsockopen y un form
PHP
Drakegon 0 1,395 Último mensaje 20 Diciembre 2007, 16:52 pm
por Drakegon
Problema con función fsockopen();
PHP
moz-art 3 1,950 Último mensaje 30 Enero 2008, 14:13 pm
por eLank0
Pequeña duda con un comando batch (NUEVA DUDA RELACIONADA)
Scripting
revenge1252 9 9,736 Último mensaje 13 Febrero 2008, 21:41 pm
por revenge1252
fsockopen y host "maldito" « 1 2 »
PHP
SERBice 14 6,080 Último mensaje 14 Octubre 2008, 16:39 pm
por SERBice
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines