Foros del Web » Programando para Internet » PHP »

Algo falta en curl

Estas en el tema de Algo falta en curl en el foro de PHP en Foros del Web. Buenas, intento loguearme en una web usando curl y parece que los datos del post se los paso bien, pero que falta algo o alguna ...
  #1 (permalink)  
Antiguo 12/07/2009, 09:15
 
Fecha de Ingreso: enero-2008
Mensajes: 97
Antigüedad: 12 años, 1 mes
Puntos: 3
Algo falta en curl

Buenas, intento loguearme en una web usando curl y parece que los datos del post se los paso bien, pero que falta algo o alguna opción, ya que me devuelve el siguiente mensaje:

Cita:
HTTP/1.1 200 OK Date: Fri, 10 Jul 2009 09:15:53 GMT Server: Apache/2.2.4 (Unix) mod_ssl/2.2.4 OpenSSL/0.9.8b PHP/5.1.6 X-Powered-By: PHP/5.1.6 Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Transfer-Encoding: chunked Content-Type: text/html
El codigo php es:

Código PHP:
<?php

$enlace 
$_GET['enlace'];

function 
curl($link$postfields ''$cookie '')
{
    
$ch curl_init($link);
    
curl_setopt($chCURLOPT_RETURNTRANSFER1);
    
curl_setopt($chCURLOPT_HEADER1);
    
curl_setopt($chCURLOPT_FOLLOWLOCATION1);
    if(
$postfields)
    {
        
curl_setopt($chCURLOPT_POST1);
        
curl_setopt($chCURLOPT_POSTFIELDS$postfields);
    }
    if(
$cookie)
    {
        
curl_setopt($chCURLOPT_COOKIEJAR$cookie);
        
curl_setopt($chCURLOPT_COOKIEFILE$cookie);
    }
    
$page curl_exec($ch);
    return(
$page);
    
curl_close($ch);
}

$postfields = array();
$postfields['uname'] = 'usuario';
$postfields['passwd'] = 'password';
//$postfields['d'] = 'Login'; Esto he probado a ponerlo y a no ponerlo. Es el valor del submit, pero no se si hay que ponerlo o no.
$postfields http_build_query($postfields);
$cookie 'php/cookie.txt'//Create a random named cookie file
$page curl('http://www.webjeemplo.com/login.php'$postfields$cookie); //Call the curl function with our arguments
$page curl($enlace''$cookie); //Go to the download page, with no postfields and premium cookie!

echo $page;

?>
  #2 (permalink)  
Antiguo 12/07/2009, 13:23
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 9 meses
Puntos: 2135
Respuesta: Algo falta en curl

Pues el script PHP es correcto pero el problema es al logearte en el sitio externo, no es un problema de PHP, tienes que estudiar como realiza el navegador el login en el otro sitio y tratar de replicarlo con PHP.

Saludos.
  #3 (permalink)  
Antiguo 13/07/2009, 05:13
 
Fecha de Ingreso: enero-2008
Mensajes: 97
Antigüedad: 12 años, 1 mes
Puntos: 3
Respuesta: Algo falta en curl

Es para loguearme en gigasize. Viendo el código fuente, parece que los datos post que le envío son los correctos, pero igual se me ha escapado algo...
  #4 (permalink)  
Antiguo 13/07/2009, 05:39
 
Fecha de Ingreso: mayo-2005
Mensajes: 188
Antigüedad: 14 años, 9 meses
Puntos: 6
Respuesta: Algo falta en curl

Mirando el código del formulario de gigasize, falta otro parámetro oculto:
Código html:
Ver original
  1. <input name="login" type="hidden" value="1"/>
  #5 (permalink)  
Antiguo 13/07/2009, 06:28
 
Fecha de Ingreso: enero-2008
Mensajes: 97
Antigüedad: 12 años, 1 mes
Puntos: 3
Respuesta: Algo falta en curl

Gracias. Ahora ya me funciona. Aunque gigasize tiene más complicado extraer el link final de descarga que megaupload.

Despues del login hay que pasar por form.php y de ahí no he pasado.

Al final extraigo un enlace del tipo:
Se ve que el getcgi.php hace algo para descubrir si el que lo descarga es el usuario premium o si es otro (como intento hacer yo).

He probado a pasarle la cookie, pero no me devuelve nada.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:58.