2011-01-14 1 views
5

Je souhaite effectuer une requête http et transmettre tous les cookies reçus par le script en cours (en particulier les cookies d'identification de session) à cette requête. Ensuite, je voudrais enregistrer le résultat dans une chaîne pour une manipulation ultérieure. Quelle est la meilleure façon de le faire en PHP?PHP Comment effectuer une requête http en passant des cookies et enregistrez le résultat dans une chaîne

+0

double possible de [PHP - Envoyer cookie avec file_get_contents] (http://stackoverflow.com/questions/3431160/php-send-cookie -with-file-get-contents) – Gordon

+0

copie possible de [Copier les cookies de la première réponse à la prochaine demande] (http://stackoverflow.com/questions/4212442/copying-cookies-from-first-response-to-next- demande) – Gordon

+0

Gordon - un de plus tel exemple et vous pouvez me convaincre de fermer cette question;) – agsamek

Répondre

6

cURL? - C'est simple et suppot les cookies.

Modifier 19,1 - Voici par exemple

 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

curl_setopt($ch, CURLOPT_COOKIEJAR, '/tmp/cookies.txt'); 
curl_setopt($ch, CURLOPT_COOKIEFILE, '/tmp/cookies.txt'); 

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

CURLOPT_COOKIEJAR est un fichier où CURL mis les cookies envoyés par le serveur et CURLOPT_COOKIEFILE est un fichier avec les cookies pour l'envoi par cURL (réglage à même le fera fichier cookies). Une autre option est de lire manuellement les cookies du résultat (mettre CURLOPT_HEADER à '1' - il placera l'en-tête du résultat dans $ output) et envoyer des cookies via CURLOPT_COOKIE (le mettre à la liste des cookies au format 'foo = bar; foo; »)

Remarque - libcurl doit être activé dans php.ini

+0

Pourriez-vous fournir un code source ici qui passe les cookies et les paramètres du script currenct et cette bibliothèque est-elle disponible sur un hébergement PHP standard? – agsamek

+0

exemple ajouté :-) – SergeS

+0

Merci- semble bon, btw- est-il possible de le faire sans libcurl? – agsamek

Questions connexes