Visualizzazione dei risultati da 1 a 9 su 9

Discussione: gestire curl

  1. #1
    Utente di HTML.it L'avatar di torrone
    Registrato dal
    Apr 2006
    residenza
    Padova
    Messaggi
    1,128

    gestire curl

    ho il seguente codice.. dove accedo ad un determinato sito e dopo scarico dei xml...

    Codice PHP:
        $ch curl_init();

        
    $cookiefile tempnam("tmp""cookies");

        
    $_SESSION['test_cookie'] = $cookiefile;

        
    curl_setopt($chCURLOPT_URL,"http://www.sito.com/maxi-xml/login.php?user=$user_controllato&scode=$scode_controllato");

        
    curl_setopt($chCURLOPT_COOKIEJAR$cookiefile);

        
    curl_exec($ch);

        
    curl_close($ch); 
    come output mi mostra una pagina xml di questo tipo:

    se il login è corretto
    codice:
    <?xml version="1.0" encoding="utf-8"?>
    <maxi-xml>
      <login>Login successful</login>
    </maxi-xml>
    se il login è errato

    codice:
    <?xml version="1.0" encoding="utf-8"?>
    <maxi-xml>
      <error>Login failed</error>
    </maxi-xml>
    se io non voelssi visualizzare la pagina ma saper solo se il login è andato a buon fine o no e in caso positivo andare nella pagina per scaricare gli xml e in caso negativo rifare il login, come posso fare?

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    719
    Io consiglio sempre di usare i file_get_contents con stream_context_create.
    Comunque puoi mettere questo per sbrigarti:

    Codice PHP:
    $ch curl_init();

        
    $cookiefile tempnam("tmp""cookies");

        
    $_SESSION['test_cookie'] = $cookiefile;

        
    curl_setopt($chCURLOPT_URL,"http://www.sito.com/maxi-xml/login.php?user=$user_controllato&scode=$scode_controllato");

        
    curl_setopt($chCURLOPT_COOKIEJAR$cookiefile);

        
    $xml curl_exec($ch);

        if(
    strpos($xml,"Login successful") !== false {
            
    //login a buon fine
        
    }
     
        
    curl_close($ch); 

  3. #3
    Utente di HTML.it L'avatar di torrone
    Registrato dal
    Apr 2006
    residenza
    Padova
    Messaggi
    1,128
    Originariamente inviato da simo22
    Io consiglio sempre di usare i file_get_contents con stream_context_create.
    cioè??

    Comunque puoi mettere questo per sbrigarti:

    Codice PHP:
    $ch curl_init();

        
    $cookiefile tempnam("tmp""cookies");

        
    $_SESSION['test_cookie'] = $cookiefile;

        
    curl_setopt($chCURLOPT_URL,"http://www.sito.com/maxi-xml/login.php?user=$user_controllato&scode=$scode_controllato");

        
    curl_setopt($chCURLOPT_COOKIEJAR$cookiefile);

        
    $xml curl_exec($ch);

        if(
    strpos($xml,"Login successful") !== false {
            
    //login a buon fine
        
    }
     
        
    curl_close($ch); 
    grazie ho provato così.. ma a me non cambia nulla.. mi stampa a video sempre la pagina xml

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    719
    Ah, si scusa.
    Ti manca questo:

    curl_setopt($ch,_CURLOPT_RETURNTRANSFER,_1);

  5. #5
    Utente di HTML.it L'avatar di torrone
    Registrato dal
    Apr 2006
    residenza
    Padova
    Messaggi
    1,128
    Originariamente inviato da simo22
    Ah, si scusa.
    Ti manca questo:

    curl_setopt($ch,_CURLOPT_RETURNTRANSFER,_1);
    grasias

  6. #6
    Utente di HTML.it L'avatar di torrone
    Registrato dal
    Apr 2006
    residenza
    Padova
    Messaggi
    1,128
    Codice PHP:


    $ch_
    =_curl_init(); 

    ____$cookiefile_=_tempnam("tmp",_"cookies"); 

    ____$_SESSION['test_cookie']_=_$cookiefile

    ____curl_setopt($ch,_CURLOPT_URL,"http://www.sito.com/maxi-xml/login.php?user=$user_controllato&scode=$scode_controllato"); 

    ____curl_setopt($ch,_CURLOPT_COOKIEJAR,_$cookiefile); 

    ____curl_exec($ch); 

    ____curl_close($ch); 
    Qui viene creato un file temporaneo per la chiamata.. Ma come si fa a cancellarlo dopo ? Cioe o Metto unlink ma se voglio tracciare la chiamata in altre pagine come posso fare ?! Cioe se io non lo cancello e poi chiudo la pagina rimane il file temporaneo
    Nella cartella temp. Ce qualche altro modo ?! Con le sessioni? Se si come ?! Grazie

  7. #7

  8. #8

  9. #9
    Utente di HTML.it L'avatar di torrone
    Registrato dal
    Apr 2006
    residenza
    Padova
    Messaggi
    1,128
    provo a buttare giu un idea... e se sostituisco

    Codice PHP:
    $cookiefile tempnam("tmp""cookies"); 
    con

    Codice PHP:
    $cookiefile setcookie("login_maxi""bla"time()+3600); 
    potrebbe andar bene?

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.