Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 19 su 19

Discussione: file_get_conntents

  1. #11
    per fare una prova mi sono registrato qui
    user= prova12345
    psw= prova12345

    ho installato tamper data.

    Come procedo?

  2. #12
    ho provato cosi
    Codice PHP:
    <?php 
    function get_http_response($URL) { 
        
    $handle curl_init(); // apriamo una sessione CURL, il cui identificativo è $handle; 
        // curl_setopt() imposta l'opzione che specifichi come secondo parametro con il valore che specifichi nel terzo: 
        // (il primo parametro è sempre l'identificativo di connessione!) 
        
    curl_setopt($handleCURLOPT_URL$URL); // qui gli diciamo la risorsa da raggiungere 
        
    curl_setopt($handleCURLOPT_HEADERfalse); // qui specifichiamo di non includere nell'output l'intestazione che gli forniamo in input 
        // adesso confezioniamo l'header HTTP: 
        
    $http_header = array( 
            
    "Host=www.lastampa.it",
            
    "User-Agent=Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3",
            
    "Accept=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
            
    "Accept-Language=it-it,it;q=0.8,en-us;q=0.5,en;q=0.3",
            
    "Accept-Encoding=gzip,deflate",
            
    "Accept-Charset=ISO-8859-1,utf-8;q=0.7,*;q=0.7",
            
    "Keep-Alive=300",
            
    "Connection=keep-alive",
            
    "Referer=http://www.lastampa.it/forum/forum1.asp",
            
    "Content-Type=application/x-www-form-urlencoded",
            
    "Content-Length=82",
            
    "POSTDATA=user=prova12345&psw=prova12345&login=LOGIN&link=%252Fforum%252Fforum1%252Easp%253F",

        ); 
        
    // ora gli diamo in pasto l'array di headers per inserirli nella richiesta: 
        
    curl_setopt($handleCURLOPT_HTTPHEADER$http_header); 
        
    curl_setopt($handleCURLOPT_FRESH_CONNECTtrue); // questa istruzione è per evitare di farsi restituire una versione cache della risorsa da richiedere 
        
    curl_setopt($handleCURLOPT_RETURNTRANSFERtrue); // impostando a TRUE questa opzione gli imponiamo di non stamparla, ma di restituirla come output della funzione di esecuzione della chiamata curl_exec(): 
        
    $content curl_exec($handle); // facciamo eseguire la richiesta da curl_exec() e ne intercettiamo il responso restituito nella variabile $content; 
        
    curl_close($handle); // ricordarsi di chiudere le connessioni aperte... SEMPRE! (O ti giochi la memoria) 
        
    return $content

    get_http_response("http://www.lastampa.it/mypage/inc/controlli.asp");
    ?>
    ma non funzia......dove sbaglio?

    e per di più, il sito al quale dovrò accedere con CURL, usa come action del form j_security_check.

    Sempre + difficile

  3. #13
    Utente di HTML.it L'avatar di Marcolino's
    Registrato dal
    May 2003
    residenza
    Udine
    Messaggi
    3,606
    e usare
    codice:
    $stringa = file_get_contents('http://account:password@www.sito.com');

  4. #14
    Originariamente inviato da rickystra
    ho provato cosi
    Codice PHP:
    ... 
    ma non funzia......dove sbaglio?

    e per di più, il sito al quale dovrò accedere con CURL, usa come action del form j_security_check.

    Sempre + difficile
    Ciao,
    a occhio il primo errore che vedo è che non stampi nulla, ti manca l'echo:

    Codice PHP:
    echo get_http_response($URL); 
    Poi per quanto riguarda i dati da postare, non metterli nell'array contenente i dati del client per la richiesta http, usa le opzioni apposite di CURL:

    Codice PHP:
    // specifica che vuoi inviare dei dati di tipo post
    curl_setopt($handleCURLOPT_POSTtrue);
    // confeziona i dati:
    $postData = array("user_id" => "myUser""user_password" => "myPass");
    // inseriscili nella richiesta CURL
    curl_setopt($handleCURLOPT_POSTFIELDS$postData); 
    (Togli i dati custom che hai messo nell'array http_headers).
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

  5. #15
    Originariamente inviato da Marcolino's
    e usare
    codice:
    $stringa = file_get_contents('http://account:password@www.sito.com');
    La concatenazione dei dati nell'URL in quel modo, se non sbaglio serve per inviarli ad una richiesta di autenticazione HTTP del tipo:

    WWW-Authenticate: Basic realm="nome area"

    Nel caso di rickystra invece l'autenticazione è tramite script PHP che riceve i dati via vettore POST.
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

  6. #16
    Codice PHP:
    <?php 
    function get_http_response($URL) { 
        
    $handle curl_init(); // apriamo una sessione CURL, il cui identificativo è $handle; 
        // curl_setopt() imposta l'opzione che specifichi come secondo parametro con il valore che specifichi nel terzo: 
        // (il primo parametro è sempre l'identificativo di connessione!) 
        
    curl_setopt($handleCURLOPT_URL$URL); // qui gli diciamo la risorsa da raggiungere 
        
    curl_setopt($handleCURLOPT_HEADERfalse); // qui specifichiamo di non includere nell'output l'intestazione che gli forniamo in input 
        // specifica che vuoi inviare dei dati di tipo post 
        
    curl_setopt($handleCURLOPT_POSTtrue); 
        
    // confeziona i dati: 
        
    $postData = array("user" => "prova12345""psw" => "prova12345""login" => "LOGIN""link" => "%252Fforum%252Fforum1%252Easp%253F"); 
        
    // inseriscili nella richiesta CURL 
        
    curl_setopt($handleCURLOPT_POSTFIELDS$postData);
        
    // adesso confezioniamo l'header HTTP: 
        
    $http_header = array( 
            
    "User-Agent=Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3",
            
    "Accept=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
            
    "Accept-Language=it-it,it;q=0.8,en-us;q=0.5,en;q=0.3",
            
    "Accept-Encoding=gzip,deflate",
            
    "Accept-Charset=ISO-8859-1,utf-8;q=0.7,*;q=0.7",
            
    "Keep-Alive=300",
            
    "Connection=keep-alive",
            
    "Content-Type=application/x-www-form-urlencoded",
            
    "Content-Length=82",

        ); 
        
    // ora gli diamo in pasto l'array di headers per inserirli nella richiesta: 
        
    curl_setopt($handleCURLOPT_HTTPHEADER$http_header); 
        
    curl_setopt($handleCURLOPT_FRESH_CONNECTtrue); // questa istruzione è per evitare di farsi restituire una versione cache della risorsa da richiedere 
        
    curl_setopt($handleCURLOPT_RETURNTRANSFERtrue); // impostando a TRUE questa opzione gli imponiamo di non stamparla, ma di restituirla come output della funzione di esecuzione della chiamata curl_exec(): 
        
    $content curl_exec($handle); // facciamo eseguire la richiesta da curl_exec() e ne intercettiamo il responso restituito nella variabile $content; 
        
    curl_close($handle); // ricordarsi di chiudere le connessioni aperte... SEMPRE! (O ti giochi la memoria) 
        
    return $content

    echo 
    get_http_response("http://www.lastampa.it/mypage/inc/controlli.asp");
    ?>
    in questa variabile ho aggiunto login e link, cosi come mi visualizza tamper data nel POSTDATA
    Codice PHP:
    $postData = array("user" => "prova12345""psw" => "prova12345""login" => "LOGIN""link" => "%252Fforum%252Fforum1%252Easp%253F"); 
    ma ancora niente, ora mi dice:
    Bad Request (Invalid Header Name)

  7. #17
    Originariamente inviato da rickystra

    ma ancora niente, ora mi dice:
    Bad Request (Invalid Header Name)
    Eh sì, perché con le righe:

    codice:
    "Content-Length=82",
    "Content-Type=application/x-www-form-urlencoded",
    gli dici che la richiesta è di 82 bytes, ma nella realtà non lo è, poi il MIME che specifichi con Content-Type è ridondante perché una riga simile con il MIME la genera già CURL, per questo ti dicevo di togliere quelle righe dall'array.

    Con Tamper Data puoi visualizzare anche l'header della tua richiesta, se lo fai vedi l'errore.
    Il server fa un controllo formale della correttezza dell'header, che, nel caso fallisca, genera un responso con HTTP status 500
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

  8. #18
    ho tolto anche quelle 2 righe ma non funziona.
    Ti chiedo troppo se provi lo script usando la user e la psw che ho scritto in un post precedente?

    Grazie!!!

  9. #19
    Utente di HTML.it L'avatar di Marcolino's
    Registrato dal
    May 2003
    residenza
    Udine
    Messaggi
    3,606
    Originariamente inviato da emanueledg
    La concatenazione dei dati nell'URL in quel modo, se non sbaglio serve per inviarli ad una richiesta di autenticazione HTTP del tipo:

    WWW-Authenticate: Basic realm="nome area"

    Nel caso di rickystra invece l'autenticazione è tramite script PHP che riceve i dati via vettore POST.
    Uhm dovrebbe sì, ma provare non costa nulla, mi pare che la modifica avviene in modo trasparente, via GET o via POST non dovrebbe avere differenza in quel caso.

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.