Visualizzazione risultati 1 fino 12 di 12

Discussione: Includere funzioni...

  1. #1
    Ufobm non è connesso Utente attivo
    Data registrazione
    06-12-2004
    Messaggi
    432

    Predefinito Includere funzioni...

    Salve a tutti! La domanda potrà sembrare banale e insensata, ma mi chiedevo se fosse possibile includere un file contenente delle funzioni... Per logica non dovrebbe esserci nessun problema, basta inserire la funzione include("cartella/funzioni.php"); o sbaglio?
    Se inserisco l'include all'inizio avrò anche le funzioni definite prima del loro utilizzo... Il problema è che le stesse funzioni, se scritte nel file stesso funzionano, mentre in un altro file incluso no... E non capisco perché... L'include non è errato, non genera errori, warning o qualsiasi altra cosa...
    Quindi chiedo a voi, come si include un file di funzioni php?

    Grazie mille!

  2. #2
    Guest

    Predefinito

    Bè, postaci qualche esempio di inclusione con relativi errori.


    Ciao!

  3. #3
    Guest

    Predefinito

    Le funzioni lavorano su file con percorsi di riferimento assoluti?

    Cosa fanno le funzioni prese in oggetto?

  4. #4
    Ufobm non è connesso Utente attivo
    Data registrazione
    06-12-2004
    Messaggi
    432

    Predefinito

    Citazione Originalmente inviato da comunitavirtuali Visualizza messaggio
    Le funzioni lavorano su file con percorsi di riferimento assoluti?

    Cosa fanno le funzioni prese in oggetto?
    Per quanto riguarda la prima domanda non lo so ! Chiedo qui apposta!
    Riguardo alla seconda diciamo che ho riscontrato il problema mentre usavo una funzione di hash delle password di phpBB, riciclata per un'altra sezione del mio forum...

    Ora il codice non ce l'ho ma era qualcosa del tipo:

    Codice:
    include("phpBB3/includes/functions.php");
    
    $flag=_check_hash_password($pass, $hash);
    E proprio qui mi si bloccava! Se invece copiavo tutte le funzioni (senza modifiche dal file functions.php e le incollavo nel file di interesse allora tutto funziona... La cosa mi fa sorgere il dubbio che il problema sia proprio relativo all'include...

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da debug Visualizza messaggio
    Bè, postaci qualche esempio di inclusione con relativi errori.



    ciao!

  6. #6
    Ufobm non è connesso Utente attivo
    Data registrazione
    06-12-2004
    Messaggi
    432

    Predefinito

    Citazione Originalmente inviato da Ufobm Visualizza messaggio
    Ora il codice non ce l'ho ma era qualcosa del tipo:

    Codice:
    include("phpBB3/includes/functions.php");
    
    $flag=_check_hash_password($pass, $hash);
    E proprio qui mi si bloccava! Se invece copiavo tutte le funzioni (senza modifiche dal file functions.php e le incollavo nel file di interesse allora tutto funziona... La cosa mi fa sorgere il dubbio che il problema sia proprio relativo all'include...

    Non è che l'inclusione sia stata qualcosa di particolare... Riguardo agli errori diciamo che proprio in quel punto mi si bloccava ovvero se facevo echo prima e dopo la chiamata alla funzione veniva eseguito il primo echo e non il secondo! Errori non sono stati stampati e nemmeno warning...

  7. #7
    L'avatar di matt93
    matt93 non è connesso Utente
    Data registrazione
    01-09-2008
    Messaggi
    241

    Predefinito

    con phpBB non puoi fare qualcosa del genere, in quanto phpBB3/includes/functions.php sottointende che siano già stati inclusi altri file....

    non sono molto esperto di phpbb ma mi pare che tu debba includere phpBB3/includes/common.php definendo prima alcune variabili....

    ES:
    Codice PHP:
    define('IN_PHPBB', true);
    $phpEx = 'php'; // estensione delle pagine del forum
    $phpbb_root_path = 'forum/'; // pagina principale del forum
    include($phpbb_root_path . 'common.' . $phpEx); // includiamo file principale di phpbb

  8. #8
    Ufobm non è connesso Utente attivo
    Data registrazione
    06-12-2004
    Messaggi
    432

    Predefinito

    Ah quindi è una questione di phpbb... Grazie mi sei stato d'aiuto! In effetti avevo sospettato, ma non riuscivo (non riesco ) a capire bene la ragione del perché le funzioni non dovrebbero funzionare da sole... Sarà una questione di variabili...

  9. #9
    L'avatar di matt93
    matt93 non è connesso Utente
    Data registrazione
    01-09-2008
    Messaggi
    241

    Predefinito

    il fatto è semplice, se io ho tre pagine: eseguo.php a.php b.php contenenti:

    eseguo.php
    Codice PHP:
    <?
    $func
    ="no";
    include(
    "a.php");
    include(
    "b.php");
    ?>
    a.php
    Codice PHP:
    <?
    function preparefunc(){
    global
    $func;
    $func="ok";
    }
    ?>
    b.php
    Codice PHP:
    <?
    function myfunc(){
    global
    $func;
    preparefunc();
    if(
    $func=="ok"){
    echo
    "La macchina è partita!";
    }else{
    echo
    "La macchina non parte! scendi e spingi ciccio!";
    }
    }
    ?>
    se te provi ad includere b.php (paragonabile a function.php di PHPBB) in un file, ed esegui myfunc(); la funzione non verrà eseguita o avrà risultato errato....

    Codice PHP:
    $func="";
    include(
    "b.php");
    myfunc();
    ritornerà che la funzione "preparefunc()" non esiste, questo perchè il file che tu vuoi includere richiama delle funzioni specificate in altri file.... è come una rete.... se sciogli un nodo se ne rompono altri pian piano....

    per fare bene devi includere eseguo.php (common.php di PHPBB)

    Codice PHP:
    include("eseguo.php");
    myfunc();
    spero che questa spiegazione ti sia stata utile :D

  10. #10
    Ufobm non è connesso Utente attivo
    Data registrazione
    06-12-2004
    Messaggi
    432

    Predefinito

    Si matt93, mi sei stato molto utile! Però non credo il problema sia stato quello! Infatti ho accuratamente controllato che tutte le funzioni chiamate si trovassero nello stesso file! Tra l'altro nell'arrangiamento che ho fatto in seguito ho copiato tutte le funzioni sul mio file e le ho copiate tutte dal file functions.php (ergo tutte si trovavano nello stesso file)! In ogni caso poco importa, appena avrò tempo proverò ad includere common.php ;) ! Grazie mille per l'aiuto!

  11. #11
    Guest

    Predefinito

    Per questioni di sicurezza, le prime righe della maggior parte dei file inclusi da phpbb recitano una cosa del tipo:
    Codice PHP:
    if (!defined('IN_PHPBB'))
    {
    exit;
    }
    ergo, se non è definita la costante "IN_PHPBB" lo script viene terminato

  12. #12
    Ufobm non è connesso Utente attivo
    Data registrazione
    06-12-2004
    Messaggi
    432

    Predefinito

    Ah ecco! Ora ho capito! Tutto torna ! Grazie!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •