imagine la situación siguiente: abro una conexión CURL y paso algunos XML-Logindata vía POST. El servidor responde con un redireccionamiento 302, donde se establecen las cookies de sesión y me redirige a la siguiente página de "bienvenida". Si habilito FOLLOWLOCATION, las cookies establecidas en la página de redirección se pierden y la página de bienvenida falla con un mensaje de "sesión expirada". Si deshabilito FOLLOWLOCATION, no me redirigen (obviamente) y obtengo una página HTML con "la página se ha movido a otra ubicación" con un enlace que me lleva a la página de bienvenida. Esto funciona cuando las cookies están configuradas, pero necesito seguir el redireccionamiento e ir directamente a la página de bienvenida.¿Cómo paso las cookies en un redireccionamiento de CURL?
Entonces, ¿cómo mantengo las cookies para que estén configuradas correctamente?
Este es mi código hasta ahora:
$ch = curl_init('https://www.example.com/login');
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, '<some xml data>');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: text/xml; charset=UTF-8"));
curl_exec($ch);
curl_close($ch)
Gracias por cualquier ayuda! ;
Así que para ser claros, estás ya no se configura CURLOPT_FOLLOWLOCATION? – bhollis
Derecha: lo compruebo manualmente, si es un redireccionamiento o no. – acme