2016-11-02 14 views
1

私はあなたのために質問があります。私はあなたのために質問があります。

 $postData2 = array( 
     'From'=>'20/10/2016', 
     'To' =>'30/10/2016' 
    ); 

     $postData = array( 
     'User' =>'Sebastian', 
     'Password' =>'12345' 
    ); 

//1.- login... 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, 'https://web.com/login.php'); 
    curl_setopt($ch, CURLOPT_COOKIESESSION, true); 
    curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); 
    curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); 
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postData); 
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; es-CL; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3"); 
    curl_exec ($ch); 

    //2.- send dates... 
    curl_setopt($ch, CURLOPT_URL, 'https://web.com/askdates.php'); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postData2); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_exec ($ch); 

    //3.- answer... 
    curl_setopt($ch, CURLOPT_URL, 'https://web.com/answer.php'); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; es-CL; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3"); 
    $page=curl_exec($ch); 

    curl_close($ch); 
    echo $page; 

最初のステップはログインが右..ですokです: 私はこのコードを持っています。 私は2番目のステップはOKだと思いますが、この2番目のフォームの回答はhttps://web.com/answer.phpに表示されていますので、3ステップを書きました...しかし、私は投稿情報なしでhttps://web.com/answer.phpを参照してください。

これを修正するにはどうすればよいですか?

PS:最初に、私は2つの最初のステップを書いたが、答えは否定的だった。 ありがとう!

答えて

0

私は正確にあなたの質問を理解してかはわからないが、あなたは、同時に複数のカール要求を送信しようとした場合、これはどのようにある:

<?php 
// create both cURL resources 
$ch1 = curl_init(); 
$ch2 = curl_init(); 

// set URL and other appropriate options 
curl_setopt($ch1, CURLOPT_URL, "http://lxr.php.net/"); 
curl_setopt($ch1, CURLOPT_HEADER, 0); 
curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/"); 
curl_setopt($ch2, CURLOPT_HEADER, 0); 

//create the multiple cURL handle 
$mh = curl_multi_init(); 

//add the two handles 
curl_multi_add_handle($mh,$ch1); 
curl_multi_add_handle($mh,$ch2); 

$active = null; 
//execute the handles 
do { 
    $mrc = curl_multi_exec($mh, $active); 
} while ($mrc == CURLM_CALL_MULTI_PERFORM); 

while ($active && $mrc == CURLM_OK) { 
    if (curl_multi_select($mh) != -1) { 
     do { 
      $mrc = curl_multi_exec($mh, $active); 
     } while ($mrc == CURLM_CALL_MULTI_PERFORM); 
    } 
} 

//close the handles 
curl_multi_remove_handle($mh, $ch1); 
curl_multi_remove_handle($mh, $ch2); 
curl_multi_close($mh); 

?> 

だから基本的には、個々の要求を作成するが実行しませんcurl_multi_init()を使用して要求を1つにまとめてから実行します。

あなたがここに読み取りを持っている方法についての詳細たい場合:http://php.net/curl_multi_init

+0

を私はこれを試してみましたが、私は私が最初にログインした後、私が見ることができる必要があるため、一つにまとめてリクエストに参加するために持っていけないと思います特定の日付の映画。お返事をありがとうございます!誰かが最初にログインしてから映画を検索してその情報を入手する方法を知っていますか? – Sebastian

+0

2つの関数を作成する(ログイン用に1つ)$ login = curl_init(); $ grabing = curl_init()をつかむためのもの – EaBangalore

+0

EaBangaloreのようなビットは、ログインするための関数と取得する関数の2つを作成し、ログイン関数からの応答を取得して、テストをパスしたかどうかを確認します関数、私はプロのPHP男ではないがthatsどのように私はそれをやるだろう。 – jtsalva

関連する問題