Prečo ťa zaujíma, ako zistiť, či si bol presmerovaný alebo nie? Veď nastavuješ CURLOPT_FOLLOWLOCATION na true, takže o všetky presmerovania sa stará cURL. Ak chceš zistiť, či si bol presmerovaný, tak to sa dá len rozparsovaním hlavičiek. Pozrieš sa na kód stavu (status code), ktorý musí byť 3xx a na hlavičku Location.
Cookie môžeš vložiť pomocou možnosti CURLOPT_COOKIE (viď. curl_setopt).
Pri viacerých Set-Cookie hlavičkách v jednej odpovedi bude platiť zrejme tá posledná. Keďže máš ale 3 odpovede a v tých ďalších máš len jednu Set-Cookie hlavičku, tak platí tá z poslednej odpovede.
Z tých hlavičiek odpovedí vidno, že server vytvára pri každej požiadavke vždy novú session. To je kvôli tomu, že keď nie je nastavené načítanie hlavičiek zo súboru pomocou CURLOPT_COOKIEFILE, tak cookies sa ani neparsujú z odpovede. Takže zrejme budeš chcieť nastaviť CURLOPT_COOKIEFILE a aj CURLOPT_COOKIEJAR na nejaký dočasný súbor. Ďalšia možnosť je nastaviť CURLOPT_FOLLOWLOCATION na false, parsovať hlavičky a spracovávať ich u teba. Potom už vlastne rozumiem, prečo ťa zaujíma ako zistiť, či si bol presmerovaný.
Formát súboru s cookies je buď netscape-ový alebo priamo v podobe HTTP hlavičiek. Netscape-ový formát je tabelátormi oddelená doména, nejaký TRUE/FALSE flag, cesta obmedzujúca platnosť cookie, TRUE/FALSE pre použitie HTTPS a expirácia v podobe UNIX timestampu. Keď ale budeš používať CURLOPT_COOKIEJAR, tak ťa presný formát nemusí zaujímať.