2012-05-01 25 views
5

Estoy intentando iniciar sesión en un sitio web remoto utilizando CURL, pero parece que no puede hacer que funcione.Uso de PHP CURL para iniciar sesión en un sitio web remoto

La página que estoy tratando de acceder a es: https://vp1-voiceportal.megapath.com/Login/

Hasta ahora, he intentado lo siguiente:

$username="username"; 
$password="password"; 
$url="https://vp1-voiceportal.megapath.com/Login/servlet/com.broadsoft.clients.oam.servlets.Login"; 
$cookie="cookie.txt"; 

$postdata = "EnteredUserID=".$username."&password=".$password."&domain=&UserID=&rememberPass="; 

$ch = curl_init(); 
curl_setopt ($ch, CURLOPT_URL, $url); 
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"); 
curl_setopt ($ch, CURLOPT_TIMEOUT, 60); 
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 0); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie); 
curl_setopt ($ch, CURLOPT_REFERER, $url); 

curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata); 
curl_setopt ($ch, CURLOPT_POST, 1); 
$result = curl_exec ($ch); 

echo $result; 
curl_close($ch); 
+3

¿Y cuáles son los resultados? – bossylobster

+0

tengo la siguiente respuesta, lo que me redirige a la página de inicio de sesión: 302 Found

Encontrado

El documento se ha movido here.


servidor Apache en el puerto vp1-voiceportal.megapath.com 443
jeffo

+0

1. ¿Cómo consiguió su archivo de cookies? Tal vez las cookies expiraron. 2. ¿Cuál es el resultado? ¿Qué devolvió exactamente Curl? –

Respuesta

2

EDITAR: La URL que ha especificado que está mal, lo que debería ser:

https://vp1-voiceportal.megapath.com/servlet/com.broadsoft.clients.oam.servlets.Login 

Y no:

https://vp1-voiceportal.megapath.com/Login/servlet/com.broadsoft.clients.oam.servlets.Login 

Parece que es necesario seguir las redirecciones y especificar el archivo de cookies (para lectura), Proveedores:

$ch = curl_init(); 
curl_setopt ($ch, CURLOPT_URL, $url); 
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"); 
curl_setopt ($ch, CURLOPT_TIMEOUT, 60); 
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie); 
curl_setopt ($ch, CURLOPT_COOKIEFILE, $cookie); 
curl_setopt ($ch, CURLOPT_REFERER, $url); 

curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata); 
curl_setopt ($ch, CURLOPT_POST, 1); 
$result = curl_exec ($ch); 

echo $result; 

curl_close($ch); 

También es una buena práctica para especificar una ruta absoluta (y escritura) a la archivo de cookies

+0

Gracias, hice los cambios que sugirió, pero sigo teniendo el mismo problema. – jeffo

+0

@jeffo: ¿Está vacío el archivo 'cookie.txt'? Y existe? –

+0

@jeffo: Además, me parece que la URL es incorrecta ... ¿No debería ser 'https: // vp1-voiceportal.megapath.com/servlet/com.broadsoft.clients.oam.servlets.Login' ? –

Cuestiones relacionadas