2012-05-01 44 views
5

Tôi đang cố gắng đăng nhập vào một trang web từ xa bằng CURL, nhưng dường như không làm cho nó hoạt động.Sử dụng PHP CURL để đăng nhập vào một trang web từ xa

Trang Tôi đang cố gắng để đăng nhập vào là: https://vp1-voiceportal.megapath.com/Login/

Cho đến nay, tôi đã thử như sau:

$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

Và kết quả là gì? – bossylobster

+0

tôi nhận được câu trả lời sau đây, mà lại đường tôi đến trang đăng nhập: 302 Tìm thấy

Đã tìm thấy

Tài liệu đã di chuyển here.


Apache Server tại vp1-voiceportal.megapath.com Cảng 443
jeffo

+0

1. Làm sao bạn có được file cookie của bạn? Có thể cookie đã hết hạn. 2. Kết quả là gì? Những gì đã làm chính xác curl trở lại? –

Trả lời

2

EDIT: URL mà bạn chỉ định là sai, nó nên là:

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

Và không:

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

Dường như bạn cần phải làm theo chuyển hướng và xác định các tập tin cookie (để đọc), hãy thử:

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

Nó cũng là một thực hành tốt để xác định một đường dẫn tuyệt đối (và ghi) đến tệp cookie.

+0

Cảm ơn, tôi đã thực hiện các thay đổi bạn đề xuất nhưng vẫn gặp sự cố tương tự. – jeffo

+0

@jeffo: Tệp 'cookie.txt' có trống không? Và nó tồn tại? –

+0

@jeffo: Ngoài ra, có vẻ như với tôi rằng URL sai ... Không nên là 'https: // vp1-voiceportal.megapath.com/servlet/com.broadsoft.clients.oam.servlets.Login' ? –

Các vấn đề liên quan