2012-05-01 10 views
5

Próbuję zalogować się do zdalnej strony internetowej przy użyciu CURL, ale nie mogę go uruchomić.Używanie PHP CURL do logowania na zdalną stronę internetową

Strona Próbuję się zalogować, to: https://vp1-voiceportal.megapath.com/Login/

Dotychczas próbowałem następujące:

$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

Jakie są wyniki? – bossylobster

+0

mam następującą odpowiedź, która przekierowuje mnie na stronę logowania: 302 Znaleziono

Znaleziono

Dokument został przeniesiony here.


Serwer Apache w vp1-voiceportal.megapath.com Port 443
jeffo

+0

1. Jak uzyskać plik ciasteczka? Może ciasteczka wygasły. 2. Jaki jest wynik? Co dokładnie zwinął powrót? –

Odpowiedz

2

EDIT: URL podałeś jest źle, to powinien być:

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

a nie:

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

Wygląda na to trzeba wykonać przekierowania i określić plik ciasteczka (do czytania), spróbuj:

$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); 

Jest to także dobra praktyka tak określić absolutną (i zapisu) ścieżkę do plik cookie.

+0

Dzięki, wprowadziłem zmiany, które sugerujesz, ale nadal masz ten sam problem. – jeffo

+0

@jeffo: Czy plik 'cookie.txt' jest pusty? I istnieje? –

+0

@jeffo: Wydaje mi się również, że adres URL jest nieprawidłowy ... Nie powinien to być "https: // vp1-voiceportal.megapath.com/servlet/com.broadsoft.clients.oam.servlets.Login' ? –

Powiązane problemy