2013-02-20 2 views
0

Мне нужно зайти на сайт, затем он перенаправляет меня на другую страницу, где мне нужно отправлять данные; код, который я уже написал, будет регистрироваться мной на succeffuly, и он перенаправляет меня на страницу, которую я должен опубликовать (отправить $ _POST), но я не знаю, как ее опубликовать (начало другого запроса с использованием некоторого сеанса/cookie, которые уже начались), это код.Войдите и опубликуйте данные, используя curl php

$url = "http://site.com/account.php?s_id=&d=y"; 
    $email = "[email protected]"; 
    $password = "PASS"; 
    $postfields = "email=$email&password=$password&submit=1&do=login&forward=&communicate=&communicate_id=1"; 
    $postfield = "message=doit"; 
    $cookiefile = tempnam("/tmp", "cookies"); 
    $agent  = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"; 
    $ch = curl_init(); 
    $ch2 = curl_init(); 
    curl_setopt($ch, CURLOPT_USERAGENT, $agent); 
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiefile); 
    curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiefile); 
    curl_setopt($ch, CURLOPT_HEADER, 0); // Get the header 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // Allow redirection 
    curl_setopt($ch, CURLOPT_URL,$url); 
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields); 
    curl_exec($ch); 
    curl_close($ch); 
+0

Что вы подразумеваете под публикацией данных? уточните –

+0

, отправляя его как $ _POST – Hamza

+1

Постарайтесь не следить за местоположением и не анализировать ответ на перенаправление и сообщение в последующем вызове. – user993553

ответ

0

Чтобы сделать последующий запрос с той же сессии и куки данных, не называйте curl_exec($ch); слишком рано. Просто работайте с тем же ручкой завитка, меняя параметры, когда вы продолжаете. Ваш код должен выглядеть примерно так:

// do login request 
curl_exec($ch); 
echo '<hr>'; 

// change url 
curl_setopt($ch, CURLOPT_URL,$url_to_post_to); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_to_post); 

// do post request with your data 
curl_exec($ch); 

curl_close($ch); 
Смежные вопросы