Как остановить php curl от переписывания куки - PullRequest
0 голосов
/ 29 апреля 2020

Мой код:

<?php

function access_page($url,$data){
    $fp = fopen("cookie.txt", "w");
    fclose($fp);
    $login = curl_init();
    curl_setopt($login, CURLOPT_COOKIEJAR, "cookie.txt");
    curl_setopt($login, CURLOPT_COOKIEFILE, "cookie.txt");
    curl_setopt($login, CURLOPT_TIMEOUT, 40000);
    curl_setopt($login, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($login, CURLOPT_URL, $url);
    curl_setopt($login, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
    curl_setopt($login, CURLOPT_FOLLOWLOCATION, TRUE);
    curl_setopt($login, CURLOPT_POST, TRUE);
    curl_setopt($login, CURLOPT_POSTFIELDS, $data);
    curl_setopt($login, CURLOPT_ENCODING ,"");
    ob_start();
    return curl_exec ($login);
    ob_end_clean();
    curl_close ($login);
    unset($login);    
}                  

?>

Каждый раз, когда я запускаю эту функцию, мой файл cook ie .txt удаляется и перезаписывается новыми файлами cookie, даже если файлы cookie не совпадают.
Для пример:

access_page("http://examplepage.com/session","");
access_page("http://examplepage.com/login","username=123&password=123");

Я хочу, чтобы это записало файлы cookie сеанса и входа в мой файл cook ie .txt, однако первый запрос перезаписывается вторым, даже если файлы cookie отличаются. Как я могу хранить оба этих печенья в готовке ie банка?

1 Ответ

1 голос
/ 29 апреля 2020

со страницы руководства fopen

'w' Открыто только для записи; поместите указатель файла в начало файла и обрежьте файл до нулевой длины . Если файл не существует, попытайтесь его создать.

(выделение жирным шрифтом).

Таким образом, эти строки фактически удаляют весь контент, поэтому удалите эти строки .. .

$fp = fopen("cookie.txt", "w");
fclose($fp);
...