Кросс-домен для поддержки сеанса браузера с использованием CURL - PullRequest
0 голосов
/ 03 марта 2012

Я делаю запрос на получение CURL через php в другой домен, чтобы получить значение json, но, как я знаю, curl использует временный сеанс, но как я могу поддерживать весь сеанс браузера в запросе curl? вот мой код

    // create curl resource 
    $ch = curl_init(); 

    // set url 
    curl_setopt($ch, CURLOPT_URL, "http://api.json");  //api.json is displaying value from session 

    //return the transfer as a string 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

    curl_setopt($ch, CURLOPT_COOKIESESSION, true);

    // $output contains the output string 
    $output = curl_exec($ch); 

    // close curl resource to free up system resources 
    curl_close($ch);  

как мне поддерживать сеанс браузера ...

Ответы [ 2 ]

1 голос
/ 03 марта 2012

Вы можете использовать опцию CURLOPT_COOKIEJAR (см. документация ), чтобы сохранить все файлы cookie в файл.Вы можете импортировать этот файл позже, используя параметр CURLOPT_COOKIEFILE, при этом будут отправлены все файлы cookie, хранящиеся в указанном банке.

Пример на основе вашего кода для сохранения постоянного сеанса между выполнениями сценария:

// create curl resource 
$ch = curl_init(); 

// set url 
curl_setopt($ch, CURLOPT_URL, "http://api.json");  //api.json is displaying value from session 

//return the transfer as a string 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

// Set the cookie jar for both importing and exporting
curl_setopt($ch, CURLOPT_COOKIEFILE, "curl-cookie-session.tmp");
curl_setopt($ch, CURLOPT_COOKIEJAR, "curl-cookie-session.tmp");

// $output contains the output string 
$output = curl_exec($ch); 

// close curl resource to free up system resources 
curl_close($ch);  
0 голосов
/ 28 марта 2012
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL,$url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);            
        $cookie_value = $cookie_name.'='.$_SESSION[$cookie_name];
        curl_setopt($ch, CURLOPT_COOKIE, $cookie_value);            
        $xml_contents = curl_exec ($ch);
        curl_close ($ch);
        return $xml_contents;   

Для этого вам необходимо сохранить куки и в следующем запросе прикрепить в работающий заголовок

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...