Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: satan69 en 23 Abril 2008, 07:02 am



Título: envio de datos GET y POST (finales)
Publicado por: satan69 en 23 Abril 2008, 07:02 am
bueno en teoria lo dije en este tema http://foro.elhacker.net/index.php/topic,206863.0.html pero ahora me gustaria que comenzaramos analizarlo bien, que cambia, que hay que agregarle, que esta de mas  para enviar los datos perfectos



Ejemplos:

login.php por ejemplo
Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>localhost</title>
</head>

<body>
<form id="datos" name="datos" method="post" action="">
  <label>
  <div align="center"> <?php
 
 $user=trim($_POST["user"]);
 $pass=trim($_POST["pass"]);
 
 //aqui el script ya sea de un foro o cualquier sitio
 //para loguiarse con las variables user y pass
 
 
 
  ?> <br />
  <table width="237" height="94" border="1">
      <tr>
        <td width="43">&nbsp;</td>
        <td width="132"><div align="center">user
          <input name="user" type="text" id="user" size="10" />
            <br />
          pass
          <input name="pass" type="text" id="pass" size="10" />
          <br />
          <input type="submit" name="enviar" id="enviar" value="Enviar" />
          </div></td>
        <td width="40">&nbsp;</td>
      </tr>
    </table>
    <br />
</div></label>
</form>
</body>
</html>




ahora los el envio de datos seria asi:


Código:
<?php
$da = fsockopen("www.example.com", 80);

    $salida = "GET /login.php?user=satan69&pass=satan69 HTTP/1.1\r\n";
    $salida .= "Host: www.example.com\r\n";
    $salida .= "Connection: Close\r\n\r\n";

    fwrite($da, $salida);
    fclose($da);

?>


ese seria con metodo GET... ahora mi pregunta seria con metodo POST.. como seria..? poniendo el ejemplo del formulario de arriba


ojo: no quiero hacer daño... simplemente saber como trabajan....


Título: Re: envio de datos GET y POST (finales)
Publicado por: LuffyFF en 24 Abril 2008, 13:10 pm
nas, supongo que asi deberia ir bien.

Citar
<?php
//Definimos un array parametros para cada nombre de campo
$parametros[user] = "Pepe123"; //Nombre de usuario
$parametros[pass] = "contra123aa2"; //contraseña

$fp = fsockopen("www.ejemplo.com", 80);
fputs($fp, "POST /login.php HTTP/1.1\r\n");
fputs($fp, "Host: www.ejemplo.com\r\n");
fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");
fputs($fp, "Content-length: " . strlen($parametros) . "\r\n");
fputs($fp, "Connection: close\r\n\r\n");
fputs($fp, $parametros);
fclose($fp);
?>

Ahi como verás el array $parametros, ahi tienes q poner el nombre del campo y luego el valor que vas a enviar.

También, otra alternativa es usar cURL o la clase Snoopy que te facilitan las tareas.

salu2


Título: Re: envio de datos GET y POST (finales)
Publicado por: satan69 en 24 Abril 2008, 19:52 pm
un ejemplo con cURL o la clase Snoopy....  por favor...


pero mi pregunta es de donde sacaste

Código:
fputs($fp, "POST /login.php HTTP/1.1\r\n");
fputs($fp, "Host: www.ejemplo.com\r\n");
fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");
fputs($fp, "Content-length: " . strlen($parametros) . "\r\n");
fputs($fp, "Connection: close\r\n\r\n");

una explicadita para saber como es..


Título: Re: envio de datos GET y POST (finales)
Publicado por: Azielito en 24 Abril 2008, 21:41 pm
lo que tu necesitas es estudiar el protocolo HTTP para saber de donde salio la respuesta del señor mugiwara

Código:
http://www.cibernetia.com/manuales/introduccion_aplicaciones_web/2_1_fundamentos_web.php

mejor explicado no encontre ;D


Título: Re: envio de datos GET y POST (finales)
Publicado por: satan69 en 24 Abril 2008, 22:12 pm
ya le entendi.. pero para enviar los datos como lo puso Mugiwara

Código:
fputs($fp, "Content-length: " . strlen($parametros) . "\r\n");
es parte no le entiendo


Título: Re: envio de datos GET y POST (finales)
Publicado por: LuffyFF en 25 Abril 2008, 05:02 am
ya le entendi.. pero para enviar los datos como lo puso Mugiwara

Código:
fputs($fp, "Content-length: " . strlen($parametros) . "\r\n");
es parte no le entiendo
Eso es una cabecera para indicar el tamaño de los datos que estamos mandando.

Calcula el tamaño de los valores que estamos pasando y lo pone como cabecera. No se si sea necesario, pero algunos host pueden no funcionar si no pones el tamaño del contenido.


Citar
un ejemplo con cURL o la clase Snoopy....  por favor...

Con la clase Snoopy, simplemente te bajas la clase Snoopy, la incluyes en tu codigo y el codigo de esa clase está bastante simple.

Citar
<?
include("snoopy.class.php");

//URL a mandar el post
$url = "http://www.ejemplo.com/login.php";

//Parametros de de los campos, con el nombre del campo y su valor a postear
$parametros[user] = "Pepe";
$parametros[pass] = "alfredinho291";

//Iniciamos una instancia de la clase snoopy
$snoop=new Snoopy;
//Enviamos los datos $parametros a $url
$snoop->submit($url, $parametros);
//Opcional, si quieres mostrar el resultado o la pagina final al hacer el post descomenta la siguiente linea
#$snoop->results;
?>

Snoopy Class: http://sourceforge.net/projects/snoopy/

Salu2


Título: Re: envio de datos GET y POST (finales)
Publicado por: satan69 en 25 Abril 2008, 19:48 pm
fijate que lo hice con Snoopy, y no me funciono..


Título: Re: envio de datos GET y POST (finales)
Publicado por: rulodlb en 16 Mayo 2008, 21:02 pm
Es post por ahora me vino sirviendo un monto. Ahora necesitaria hacer algo similar. En vez de mandar los datos para un texto en la página que recive, lo que necesito es enviar un archivo utilizando el snoopy. Alguna idea?

Desde ya mil gracias.

Rulo