Foros del Web » Programando para Internet » PHP »

login con curl problema de cookies

Estas en el tema de login con curl problema de cookies en el foro de PHP en Foros del Web. vereis me esoy volviendo loco... espero que me podais ayudar! :) estoy tratando de loguearme en una web mediante curl, pero no hay manera!! todo ...
  #1 (permalink)  
Antiguo 19/02/2012, 15:49
 
Fecha de Ingreso: enero-2011
Mensajes: 10
Antigüedad: 10 años, 3 meses
Puntos: 0
login con curl problema de cookies

vereis me esoy volviendo loco... espero que me podais ayudar! :)


estoy tratando de loguearme en una web mediante curl, pero no hay manera!! todo el rato me indica que mi sesion ha caducado... despues de mirarme un monton de post en el foro

http://www.forosdelweb.com/f18/aporte-file_get_contents-curl-http_request-724214/
http://www.forosdelweb.com/f18/hacer-login-con-curl-767887/
http://www.forosdelweb.com/f18/curl-php-928140/
http://www.forosdelweb.com/f18/ayu-mantener-sesion-curl-812970/

etc etc...

se un poco mas sobre curl, y he deducido que el problema esta en las cookies, pero sigo sin poder solucionarlo....

como he visto un ejemplo claro para loguearse en facebook mediante curl, he pensado en intentarlo y esto es lo que me ha pasado:

cookies required
Cookies are not enabled in your browser. Please change this in your security settings before continuing.


asi que sin duda es un problema de cookies... pero no se que debo hacer, ya que el archivo me lo crea donde le digo (eso si!, no se si correctamente...)


mi codigo:

$cookies= getcwd() .'/tmp/cookie.txt'.time();
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://login.facebook.com/login.php');
curl_setopt($curl, CURLOPT_POSTFIELDS, 'email=' . urlencode('xxxxxxx') . '&pass=' . urlencode('xxxxxxxx') . '&login=' . urlencode("Log in"));
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_COOKIEJAR, $cookies);
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookies);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.12) Gecko/2009070611 Firefox/3.0.12");
echo curl_exec($curl);
curl_close($curl);


cookie generada:

# Netscape HTTP Cookie File
# http://curl.haxx.se/rfc/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.

#HttpOnly_.facebook.com TRUE / FALSE 1392756902 datr pmFBT5hVJbzF3re3ZfLJ3n-
#HttpOnly_.facebook.com TRUE / FALSE 0 L 2
.facebook.com TRUE / FALSE 1 reg_ext_ref deleted
.facebook.com TRUE / FALSE 0 reg_fb_gate https%3A%2F%2Flogin.facebook.com%2Flogin.php
.facebook.com TRUE / FALSE 0 reg_fb_ref https%3A%2F%2Flogin.facebook.com%2Flogin.php
.facebook.com TRUE / FALSE 0 W 1329674902


he leido por ahi que tengo que capturar el id de sesion y guardarlo en una cookie o algo asi, pero no explican como y ando un poco perdido en el tema...


si alguien me puede ayudar, le estaria muy agradecido!
  #2 (permalink)  
Antiguo 19/02/2012, 16:04
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 9 años, 9 meses
Puntos: 793
Respuesta: login con curl problema de cookies

Aquí no sé para que usas time():

Código PHP:
Ver original
  1. $cookies= getcwd() .'/tmp/cookie.txt'.time();

Primero creas el archivo de cookie y luego envias por POST, algo así:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $data = array('email' => 'tu_email', 'pass' => 'tu_password', 'login' => 'Log in');
  4.  
  5. $cookies = 'cookie.txt';
  6.  
  7. $curl = curl_init('https://login.facebook.com/login.php');
  8. curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
  9. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
  10. curl_setopt($curl, CURLOPT_COOKIEJAR, $cookies);
  11. curl_setopt($curl, CURLOPT_COOKIEFILE, $cookies);
  12. curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  13. curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.12) Gecko/2009070611 Firefox/3.0.12");
  14. curl_exec($curl);
  15. curl_close($curl);
  16.  
  17. $curl = curl_init('https://login.facebook.com/login.php');
  18. curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data));
  19. curl_setopt($curl, CURLOPT_POST, true);
  20. curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
  21. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
  22. curl_setopt($curl, CURLOPT_COOKIEJAR, $cookies);
  23. curl_setopt($curl, CURLOPT_COOKIEFILE, $cookies);
  24. curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  25. curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.12) Gecko/2009070611 Firefox/3.0.12");
  26. echo curl_exec($curl);
  27. curl_close($curl);

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 19/02/2012, 16:50
 
Fecha de Ingreso: enero-2011
Mensajes: 10
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: login con curl problema de cookies

muchisimas gracias andres! la verdad es que ahora me parece tan obvio!! ejeje

pero tan solo me funciona para facebook... en la otra aplicacion que es en la que realmente me interesa loguearme me sigue denegando... pero esta vez por todo lo contrario!!

me dice que ya tengo una sesion iniciada!


There is still a valid login for your browser.
Please use this link >>> Logout <<< at first if you would like to renew your session.


sabes a que se puede deber??
muchisimas gracias! otra vez
  #4 (permalink)  
Antiguo 21/02/2012, 16:14
 
Fecha de Ingreso: enero-2011
Mensajes: 10
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: login con curl problema de cookies

bueno antes de que me olvide, pongo la solución por si a alguien mas le pasa!

la pagina que estoy obteniendo vía curl, trabaja con dos etiquetas <frame>, es decir despues del loguin, me estaba redireccionando a un archivo que a su vez cargaba en la platinlla dos url distintas...
  #5 (permalink)  
Antiguo 25/06/2012, 04:48
 
Fecha de Ingreso: junio-2012
Mensajes: 4
Antigüedad: 8 años, 11 meses
Puntos: 0
Respuesta: login con curl problema de cookies

Pues yo no lo veo, pq a mi en el ejemplo de arriba no me escribe nada en le archivo de texto, necesito mas explicacion del como pasarle las cookies despues de haberte logeado , en mi proyectito me tira en cuanto le doy a cualquier link....

Gracias

Etiquetas: cookies, curl, html, login
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 10:49.