Как я передаю cookie ВИХРЕВОМУ перенаправлению?

Кассини также не поддерживает классические ASP-страницы. Это - только проблема для проектов прежней версии, где старые ASP-страницы все еще существуют (как наше веб-приложение на работе).

22
задан Rimian 3 November 2011 в 04:57
поделиться

3 ответа

Чтобы ответить себе, я сделал это следующим образом:

Возьмите код заголовка-http-статуса. Если это перенаправление, извлеките новое местоположение и перенаправьте вручную. В противном случае удалите заголовок и выведите содержимое:

$response = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);

if($info['http_code'] == 301 || $info['http_code'] == 302) { // redirect manually, cookies must be set, which curl does not itself

    // extract new location
    preg_match_all('|Location: (.*)\n|U', $response, $results);
    $location = implode(';', $results[1]);

    // redirect manually
    header("Location: $location");
    exit;

} else { // no redirect, remove header and output directly

    $response = substr_replace($response, '', 0, strpos($response, '<', 0));

    echo $response;

}
3
ответ дан 29 November 2019 в 04:44
поделиться

, чтобы указать php в сеансе curl использовать файлы cookie, вы должны установить два параметры:

curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');// set where cookies will be stored
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');// from where it will get cookies

, поэтому каждый файл cookie будет добавлен в CURLOPT_COOKIEJAR, и этот файл cookie будет переноситься во все места, установив CURLOPT_COOKIEFILE

6
ответ дан 29 November 2019 в 04:44
поделиться

Вы также можете проверить эту библиотеку: http://github.com/shuber/curl

2
ответ дан 29 November 2019 в 04:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: