Ciao,
ho la necessità di estrarre alcune informazioni da una pagina che necessità di login ma non riesco. Credo che il problema sia la gestione della sessione.
Infatti io ho due pagine php una che gestisce il login e una che dovrebbe catturare le informazioni.
La pagina login fa correttamente il login inviando nick e password tramite post, e mi ritorna la pagina html giusta dopo il login. Da questa pagina prendo il cookie JSESSION.
Se passo questo valore alla pagina che cattura le informazioni il sistema mi riconosce come accesso non autorizzato.
Se invece faccio il login io da browser e prendo il valore jsession a mano e lo passo a questa pagina tutto funziona perfettamente.
Da ciò appunto o dedotto che il problema e che non so gestire le sessioni.
Mi date una mano?
la funzione che uso per le richieste:
codice:
function getContent ($url, $cookie, $post) {
$someUA = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.124 Safari/534.30";
$ch = curl_init();
curl_setopt($ch, CURLOPT_AUTOREFERER,true);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $someUA);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
if($post!=''){
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
}
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 0);
if($cookie!=''){
curl_setopt($ch,CURLOPT_COOKIE,"$cookie");
}
// Scarica l'URL e lo passa al browser
$output = curl_exec($ch);
$info = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$err=curl_error($ch);
$content= $output;
// Chiude la risorsa curl
if ($output === false || $info != 200) {
echo "[b]errore $info - errore: $err";
}
curl_close($ch);
return $output;
}