Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Includere file remoto

  1. #1

    Includere file remoto

    un saluto a tutti

    ho bisogno di includere un file php remoto per poi chiamare delle funzioni.

    ho proceduto scrivendo nel file che include quello remoto:

    Codice PHP:
    include ('http://esempio.com/code/fileremoto.php'); 
    ma quando vado a chiamare la funzione che ho dichiarato nel file remoto, mi da errore:

    Fatal error: Call to undefined function ....

    come posso risolvere?

    grazie in anticipo

  2. #2
    Devi abilitare l'include remoto in php.ini, in ogni caso non potresti fare ciò che intendi.
    Prova a pensare se si potesse includere un file in questo modo da un altro sito: basterebbe includere un file che effettua una conessione ad un database per avere accesso a quel database remoto, o per ottenere accesso a qualunque variabile di qualunque sistema, addirittura si potrebbe ricavare l'intero script php.
    L'include remoto scrive smplicemnte l'output del file che, di fatto, viene processato interamente sul server remoto.
    Mi spiace, ma dovrai trovare un altro modo. Al limite ti consiglio di cambiare l'estensione del file remoto da .php a .txt (o altro). Poi, invece di include, usi fopen, per aprire e recuperare il contenuto del file(che è un codice php). A questo punto con la funzione eval, esegui come codice php la stringa del contenuto.
    Puoi fare una cosa del genere:

    file .txt remoto
    Codice PHP:
    <?php
    //funzione di esempio
    function f($var)
    {
    echo 
    'Uso una funzione con un argomento: '.$var.'
    '
    ;
    }
    ?>
    file .php che effettua l'inclusione
    Codice PHP:
    <?php
    //file da includere
    $includi "http://sitoremoto.com/filedaincludere.php";
    //apro il file in modalità lettura
    $collegamento fopen($includi"r");
    //Leggo il contenuto
    $contenuto fread($collegamentofilesize($includi));
    //chiudo il file
    fclose($collegamento);
    //Il contenuto del file è lo script da includere
    $script $contenuto;
    //eseguo lo script
    eval($script);
    //prova:
    f("argomento");
    ?>
    L'unico dietto di qusto sistema è la sicurezza: in quanto file .txt, chiunque può accedere al tuo script mediante un smeplice browser. Potresti però anche proteggere il tuo script richiedendo una passowrd, anch se questo richiederebbe una sorta di file "ponte", che restituisca il file solo se gli venga fornita la password corretta.

    ecco un esempio:

    prova.php(file .php remoto da includere (in quanto .php è inaccessibile in remoto))
    Codice PHP:
    <?php
    //funzione di esempio
    function f($var)
    {
    echo 
    'Uso una funzione con un argomento: '.$var.'
    '
    ;
    }
    ?>
    ponte.php(Il file, che, ricevuta una passoword, invierà lo script richiesto da includere)
    Codice PHP:
    <?php
    //Recupero il nome del file da inviare
    $file $_GET['file'];
    //Recupero la password inviata dal richiedente
    $pwd $_GET['pwd'];
    //Recupero il contenuto del file da inviare
    $includi $file;
    //apro il file in modalità lettura
    $collegamento fopen($includi"r");
    //Leggo il contenuto
    $contenuto fread($collegamentofilesize($includi));
    //chiudo il file
    fclose($collegamento);
    //confronto la password richiesta con quella corretta
    $password "password123";
    if(
    $pwd == $password)
    {
    //Se le password corrispondono scrivo in output lo script richiesto
    echo $contenuto;
    }else{
    //Altrimenti faccio in modo che il file, una volta eseguito dia un messaggio di errore
    $errore "Accesso a questo file riservato! Inserisci la password corretta.";
    echo 
    "echo '{$errore}';";
    }
    ?>
    includo.php(file .php che effettua l'inclusione)
    Codice PHP:
    <?php
    //file ponte, che in caso gli venga fornita la password corretta via get, ritorna lo script del file richiesto, sempre via get
    $daIncludre="prova.php";
    $passoword "password123";
    $includi "http://sitoremoto.com/ponte.php?file={$daIncludere}&pwd={$password}";
    //apro il file in modalità lettura
    $collegamento fopen($includi"r");
    //Leggo il contenuto (se tutto a bene è quello del file richiesto)
    $contenuto fread($collegamentofilesize($includi));
    //chiudo il file
    fclose($collegamento);
    //Il contenuto del file è lo script da includere
    $script $contenuto;
    //eseguo lo script
    eval($script);
    //prova:
    f("argomento");
    ?>
    Spero di esserti stato utile!

    Fammi sapere!

  3. #3
    sei stato utilissimo grazie!

    speravo ci fosse un modo più semplice.. vedrò se fare così o trovare un altro modo

    comunque grazie ancora
    ciao

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 © 2026 vBulletin Solutions, Inc. All rights reserved.