Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Problema login con CURL

    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;
     
    }

  2. #2
    Utente di HTML.it L'avatar di Salvy95
    Registrato dal
    Jul 2008
    Messaggi
    199
    Attenzione al dominio di appartenenza del cookie! www.ciao.it è diverso da ciao.it, e dato che a quanto ho capito tu lavori su domini diversi potrebbe essere più facile per te incorrere in certi errori!

  3. #3
    il dominio è lo stesso.
    inoltre i cookie li vado a settare manualmente passandoli come variabili.
    Solo che se passo il valore di jsession che prendo da browser è ok mentre quello che mi restituisce quando faccio il login da curl no.

  4. #4
    Non ho capito molto bene il problema. Vediamo.
    Tramite un form, passi dei dati per fare il login su un sito (quale che sia). Questo login lo fai via curl con lo script che hai postato. Lo script effettua correttamente il login. Al termine dello script devi reindirizzare l'utente al sito su cui hai fatto login via Curl, ma non ti riconosce la jsession.

    1) form
    2) invio del form
    3) via CURL effettui login e recuperi la jsession che salvi
    4) reindirizzi al sito su cui hai fatto login al punto 3, ma non ti riconosce loggato

    Corretto?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.