envio de datos GET y POST (finales)

Iniciado por satan69, 23 Abril 2008, 07:02 AM

0 Miembros y 2 Visitantes están viendo este tema.

satan69

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
<!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:


<?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....

LuffyFF

#1
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

satan69

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


pero mi pregunta es de donde sacaste

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..

Azielito

lo que tu necesitas es estudiar el protocolo HTTP para saber de donde salio la respuesta del señor mugiwara

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

mejor explicado no encontre ;D

satan69

ya le entendi.. pero para enviar los datos como lo puso Mugiwara

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

LuffyFF

#5
Cita de: satan69 en 24 Abril 2008, 22:12 PM
ya le entendi.. pero para enviar los datos como lo puso Mugiwara

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.


Citarun 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

satan69

fijate que lo hice con Snoopy, y no me funciono..

rulodlb

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