2017-08-17 13 views
0

ウェブサイトからデータを取得したい。私はログイン証明書を持っており、カール経由でログインすることができますが、1つのセキュリティ質問に答える必要があるログインプロセスの第2段階があります。curl phpを使った動的URLの処理

問題は毎回ユーザーID、パスワードを入力して別のURLにリダイレクトされることです。一例として、

: ログインURL:ログイン後https://url.comhttps://url?execution=e4s1&action=caDevicePrint(セキュリティQ /ページ)

ここに実行= e4s1は「e1s1、e1s2、e3s2のようにログインした後、すべての-時間を変更されます。

動的にCURLOPT_URLを設定したいとします。以下は私のコードです:

$this->curl = curl_init();  
    curl_setopt($this->curl, CURLOPT_URL, "https://url?execution=e4s1&action=caDevicePrint"); 
    curl_setopt($this->curl, CURLOPT_FOLLOWLOCATION,1); 
    curl_setopt($this->curl, CURLOPT_RETURNTRANSFER,1); 
    curl_setopt($this->curl, CURLOPT_SSL_VERIFYPEER,0); 
    curl_setopt($this->curl, CURLOPT_USERAGENT,$this->userAgent);  
    curl_setopt($this->curl, CURLOPT_COOKIEJAR,$this->cookieFile); 
    curl_setopt($this->curl, CURLOPT_COOKIEFILE,$this->cookieFile); 

    $results = curl_exec($this->curl); 
    echo $results; 
    if (curl_errno($this->curl)) { 
     echo "Failed loading <br>"; 
     var_dump(curl_error($this->curl)); 
     die(); 
    } 

    curl_close($this->curl); 
+0

あなたはリダイレクトがどのように動作するのかを言わないでください、私たちに教えてください。私たちはもっと助けになるかもしれません。それはhttp 300x 'Location:'リダイレクトですか? ''リフレッシュリダイレクト? JavaScriptのリダイレクト?私たちはこの情報なしで正確にこの質問に答えることはできません... – hanshenrik

答えて

0

ヘッダーを取得する必要があります。これにより、curlに応答にヘッダーを含めるよう指示されます。あなたは、ヘッダーを持っていたら

curl_setopt($this->curl, CURLOPT_HEADER, TRUE); 

、あなたはURLがサイトは、あなたがにリダイレクトされていることであるかを確認するためにそれらを解析することができます。

+0

OPはどのようにリダイレクトの仕事を言っていません。これはリダイレクトがヘッダーに基づいている場合に機能します..標準のHTTP(300x)リダイレクトであれば 'CURLOPT_FOLLOWLOCATION'で十分ですが、curlはhttp 300xリダイレクトを自動的にたどります...しかしOPがリダイレクトの仕組みたとえば、JavaScriptベースのリダイレクトの場合、これはまったく役に立ちません。P – hanshenrik

+0

@hanshenrikこれはJSログインについての良い点です。 –

+0

ありがとう@NickCoons ... –

関連する問題