2012-05-01 22 views
5

CURLを使用してリモートWebサイトにログインしようとしていますが、動作させられないようです。PHP CURLを使用してリモートWebサイトにログインする

私がログインしているしようとしているページ:https://vp1-voiceportal.megapath.com/Login/

これまでのところ、私は次のことを試してみた:

$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

結果は何ですか? – bossylobster

+0

私は、ログインページに私を再ルーティング次の応答を取得: 302は

を発見見つかった

文書はhereに移動しました。


vp1-voiceportal.megapath.comポート443
jeffo

+0

1.どのようにあなたのクッキーファイルを手に入れた時にApacheサーバー?多分、クッキーは失効したでしょう。 2.結果は何ですか?何が戻ってきたのか? –

答えて

2

EDIT:あなたが指定したURLが間違っている、それが必要:

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

そしてません:

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

あなたがリダイレクトに従うと(読書用)クッキーファイルを指定し、試してみる必要があるように見えます:

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

それはまた良い習慣だそう絶対(および書き込み可能)のパスを指定しますクッキーファイル。

+0

ありがとう、私はあなたの提案を変更しましたが、それでも同じ問題が発生します。 – jeffo

+0

@jeffo: 'cookie.txt'ファイルは空ですか?それは存在する? –

+0

@jeffo:また、URLが間違っているようです...「https:// vp1-voiceportal.megapath.com/servlet/com.broadsoft.clients.oam.servlets.Login' ? –

関連する問題