Foros del Web » Programando para Internet » PHP »

CURL Inicio sesión web

Estas en el tema de CURL Inicio sesión web en el foro de PHP en Foros del Web. Hola Hace unos estoy intentando iniciar sesión en una web mediante CURL pero no consigo hacerlo... me sale siempre que el usuario o contraseña son ...
  #1 (permalink)  
Antiguo 25/11/2013, 06:53
 
Fecha de Ingreso: junio-2013
Ubicación: España
Mensajes: 23
Antigüedad: 10 años, 10 meses
Puntos: 1
CURL Inicio sesión web

Hola
Hace unos estoy intentando iniciar sesión en una web mediante CURL pero no consigo hacerlo... me sale siempre que el usuario o contraseña son incorrectos cuando no lo son
La pagina web en cuestión es series.ly y este es el código que he construido por el momento a ver si me podéis echar una mano

Código:
<?php
	$cookie_file = "/tmp/".time();

	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, 'http://series.ly');
	curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)');
	curl_setopt($ch, CURLOPT_HTTPHEADER, array("Accept-Language: es-es,en"));
	curl_setopt($ch, CURLOPT_TIMEOUT, 10);
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
	curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
	$result = curl_exec($ch);
	$error = curl_error($ch);
	curl_close($ch);

	$url = "http://series.ly/scripts/login/login.php";
	$parametros_post = '&lg_login='.urlencode("USUARIO-CORREO").'&lg_pass='.urlencode("CONTRASEÑA").'&recordar='.urlencode("").'&paso1ok='.urlencode("entrar");
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_POST, true);
	curl_setopt($ch, CURLOPT_POSTFIELDS, $parametros_post);
	curl_setopt($ch, CURLOPT_HEADER, false);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
	curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
	curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
	$result1 = curl_exec($ch);
	$error = curl_error($ch);
	curl_close($ch);

	echo $error;

	echo $result1;

?>
La primera petición carga la web por si acaso me crea una cookie o algo y en la segunda usa la cookie y envía el formulario con los datos de acceso
Gracias de antemano
Saludos
  #2 (permalink)  
Antiguo 25/11/2013, 09:29
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: CURL Inicio sesión web

Desconozco los motivos por los que quieres utilizar la API de series.ly

Lo que sí se es que desde hace meses que están haciendo cambios en la app y el mantenimiento a veces les da error y la app hay veces que no termina de funcionar bien. Si esto es con la app cara a los usuarios como yo, no quiero ni imaginarme el estado de esa API para developers, aunque puedo equivocarme con esta sentencia.

Si finalmente no fuera problema de tu código, recuerda, se paciente hasta que se pongan al día con todo, aunque creo que eso va a ir para largo.

Saludos :)
__________________
Ayúdame a hacerlo por mi mismo.
  #3 (permalink)  
Antiguo 25/11/2013, 10:01
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 13 años, 7 meses
Puntos: 56
Respuesta: CURL Inicio sesión web

No tengo cuenta en ese site pero intenta con estas cabeceras
Código HTML:
Ver original
  1. Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
  2. Accept-Encoding:gzip,deflate,sdch
  3. Accept-Language:es,en;q=0.8
  4. Cache-Control:max-age=0
  5. Connection:keep-alive
  6. Content-Type:application/x-www-form-urlencoded
Aparte de lo mencionado el formulario envia estas variables
Código HTML:
Ver original
  1. lg_login:nombre de usuario
  2. lg_pass:contraseña
  3. recordar:
  4. paso1ok:entrar
quitale el & antes de lg_login
Me pongo a seguir este tema por si tienes mas preguntas o por si no te funciona con eso
  #4 (permalink)  
Antiguo 25/11/2013, 10:23
 
Fecha de Ingreso: junio-2013
Ubicación: España
Mensajes: 23
Antigüedad: 10 años, 10 meses
Puntos: 1
Respuesta: CURL Inicio sesión web

Gracias por responder a los dos
He cambiado las cabeceras pero no estoy del todo seguro de haberlo echo bien, lo he dejado así

Cita:
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "Accept-Encoding:gzip,deflate,sdch", "Accept-Language:es,en;q=0.8", "Cache-Control:max-age=0", "Connection:keep-alive", "Content-Type:application/x-www-form-urlencoded"));
Y he quitado el "&" antes de "lg_login" ya lo había visto antes pero tampoco iva asi que lo deje con el aunque se lo he quitado de nuevo

Sigue sin ir... algo mal en lo de las cabeceras?
Saludos
PD: Si me envías tu correo te paso invitación para esa web
  #5 (permalink)  
Antiguo 25/11/2013, 10:59
 
Fecha de Ingreso: noviembre-2011
Mensajes: 17
Antigüedad: 12 años, 4 meses
Puntos: 3
Respuesta: CURL Inicio sesión web

Cita:
Iniciado por guardarmicorreo Ver Mensaje
Desconozco los motivos por los que quieres utilizar la API de series.ly

Lo que sí se es que desde hace meses que están haciendo cambios en la app y el mantenimiento a veces les da error y la app hay veces que no termina de funcionar bien. Si esto es con la app cara a los usuarios como yo, no quiero ni imaginarme el estado de esa API para developers, aunque puedo equivocarme con esta sentencia.

Si finalmente no fuera problema de tu código, recuerda, se paciente hasta que se pongan al día con todo, aunque creo que eso va a ir para largo.

Saludos :)


Sangoku no esta utilizando la api, solo esta intentando iniciar sesion mediante curl.

PD: Sigo el tema que me interesa!
  #6 (permalink)  
Antiguo 25/11/2013, 12:06
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: CURL Inicio sesión web

Cita:
Iniciado por hseriefilmd Ver Mensaje
Sangoku no esta utilizando la api, solo esta intentando iniciar sesion mediante curl.

PD: Sigo el tema que me interesa!
Pero él mismo dijo que

Cita:
estoy intentando iniciar sesión en una web mediante CURL[...]
La pagina web en cuestión es series.ly[...]
¿Eso no es hacer login con una API?
__________________
Ayúdame a hacerlo por mi mismo.
  #7 (permalink)  
Antiguo 25/11/2013, 12:19
 
Fecha de Ingreso: junio-2013
Ubicación: España
Mensajes: 23
Antigüedad: 10 años, 10 meses
Puntos: 1
Respuesta: CURL Inicio sesión web

hseriefilmd tiene razón no estoy utilizando la API, solo PHP (CURL)
  #8 (permalink)  
Antiguo 25/11/2013, 12:23
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 13 años, 7 meses
Puntos: 56
Respuesta: CURL Inicio sesión web

guardarmicorreo, al usar CURL es como si estubieras accediendo a la web con un navegador.
CURL es un navegador web por linea de comandos que se suele usar para automatizar tareas repetitivas.
Definicion de API segun la wikipedia:
Cita:
Interfaz de programación de aplicaciones (IPA) o API (del inglés Application Programming Interface) es el conjunto de funciones y procedimientos (o métodos, en la programación orientada a objetos) que ofrece cierta biblioteca para ser utilizado por otro software como una capa de abstracción. Son usadas generalmente en las bibliotecas
Definicion de CURL segun la wikipedia:
Cita:
CURL es una herramienta para usar en un intérprete de comandos para transferir archivos con sintaxis URL, soporta FTP, FTPS, HTTP, HTTPS, TFTP, SCP, SFTP, Telnet, DICT, FILE y LDAP. cURL soporta certificados HTTPS, HTTP POST, HTTP PUT, subidas FTP, Kerberos, subidas mediante formulario HTTP, proxies, cookies, autenticación mediante usuario+contraseña (Basic, DIgest, NTLM y Negotiate para HTTP y kerberos4 para FTP), continuación de transferencia de archivos, tunneling de proxy http y muchas otras prestaciones. cURL es open source/software libre distribuido bajo la Licencia MIT.
El principal propósito y uso para cURL es automatizar transferencias de archivos o secuencias de operaciones no supervisadas. Es por ejemplo una buena herramienta para simular las acciones de un usuario en un navegador web. Libcurl es la biblioteca/API correspondiente que los usuarios pueden incorporar en sus programas; cURL actúa como un envoltorio (wrapper) aislado para la biblioteca libcurl. libcurl se usa para proveer capacidades de transferencia de URL a numerosas aplicaciones, tanto libres y open source como así también privativas. La biblioteca "libcurl" se puede usar desde más de 30 lenguajes distintos.
  #9 (permalink)  
Antiguo 25/11/2013, 13:48
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: CURL Inicio sesión web

ahhh ok :D
__________________
Ayúdame a hacerlo por mi mismo.

Etiquetas: curl, 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 14:34.