Transmission de session en curl

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Transmission de session en curl

Transmission de session en curl

par slaxNASA » 28 févr. 2012, 20:25

Je voudrai récupérer la session JAVA JSESSIONID de la poste entre deux pages.

La première url sert de capture de session et la seconde servirai à effectuer une demande de suivi colissimo grâce à la session interceptée car laposte bloque son système.

Mais cela ne marche pas la retransmission ne se fait pas. Un peu d'aide me ferai plaisir ?

Merci à vous :
<?php
$URL1="http://www.colissimo.fr/portail_colissimo/suivreResultatStubs.do";
$URL2="http://www.colissimo.fr/portail_colissimo/suivreResultat.do";

// open URL1 to get JSESSIONID
$ch = curl_init();
	$agent = "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.12; ips-agent) Gecko/20050922 Fedora/1.0.7-1.1.fc4 Firefox/1.0.7";
	curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // return

curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_URL,$URL1);
$page = curl_exec ($ch);
// get cookies from URL1
preg_match("/Cookie: (.*)\n/iU", $page, $matches);
$cookie = trim(substr($matches[1], strpos($matches[1],
':')));
$cookie = explode(";", $cookie);
echo $cookie[0];
echo '<hr />';
echo $URL2.';'.$cookie[0];
echo '<hr />';
// open URL2, include postdata and JSESSIONID cookie.
curl_setopt($ch, CURLOPT_URL,$URL2.';'.$cookie[0]);

$_COOKIE['JSESSIONID']=$cookie[0];
curl_setopt($ch, CURLOPT_COOKIE, $cookie[0]);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
$fp = fopen(dirname(__FILE__).'/errorlog.txt', 'w'); 
curl_setopt($ch, CURLOPT_STDERR, $fp);
curl_setopt($ch, CURLOPT_POSTFIELDS,
"parcelnumber=cc559986525fr&language=fr_FR");
curl_setopt($ch, CURLOPT_HEADER, 1);
// view output
echo '<base href="http://www.colissimo.fr/portail_colissimo/" />';
echo curl_exec ($ch);
?>