Risultati da 1 a 8 di 8

Discussione: Chiamo ma non risponde!.

  1. #1
    Jus_eppe è offline Nuovo Iscritto
    Data Registrazione
    Feb 2012
    Messaggi
    4

    Red face Chiamo ma non risponde!.

    Buona sera a tutti, sono nuovo del Forum, ma lettore assiduo e pertanto motivato ed autorizzato a farvi i complimenti.
    Ho cercato invano di capire il modo corretto di scrivere le chiamate di funzioni contenute in altri files.
    Ho già inutilmente provato i vari include e require; forse sono validi, ma quando li uso (sarà perchè non riesco a ben descrivere il percorso completo - sarà che le funzioni di wordpress e dei vari plugins non sono mai da sole ma spesso ne richiamano altre) mai e dico mai che mi riuscisse di veder qualcosa girare se non ... E mi avete capito!.
    Potrei avere disponibile un'anima gentile, che ha voglia di spiegarmi passo passo cosa e come fare?.
    Grazie mille!.
    Jus

    PS. Ma proprio passo passo, in modo molto elementare, tipo apri il file pippo.php, scrivici "ta...ta...ta...", apri un altro file peppa.php e scrivi "to...to...to..."
    Insomma, spero di essermi spiegato, altrimenti sarei al punto di partenza.

  2. #2
    L'avatar di borgo italia
    borgo italia è offline Super Moderatore
    Data Registrazione
    Feb 2008
    Località
    PR
    Messaggi
    11,227
    ciao
    benvenuto nel forum
    non è una cosa difficile.
    apri un file e lo chiami (es) funzioni.php e al suo interno costrisci le varie funioni che ti servono.

    funzioni.php
    Codice PHP:
    <?php
    function solo_stampa(){
        echo 
    "questa è la prima funzione<br>";
    }
    function 
    questa_somma($a,$b){
        return 
    $a+$b;
    }
    //eccetera.........
    ?>
    poi fai un altro file (es) esegui.php dove per prima includi il file funzioni.php che poi potrai usare dove ti servono
    esegui.php
    Codice PHP:
    <?php
    //.....
    //puoi usare require require_once include o include_once
    //l'uso di uno o dell'altra è simile
    //quindi includi
    require_once "funzioni.php";
    /*
    se il file funzioni.php si trova in una carella diversa
    devi indicare anche il percorso es.i
    require_once "cartella/funzioni.php";
    require_once "../cartella/funzioni.php";
    */
    //......
    //e dove ti serve richiami le funzioni, anche più volte
    solo_stampa();//avrai solo un output con scritto: questa è la prima funzione
    //....
    $uno=7;
    $due=3;
    $somma=questa_somma($uno,$due);
    echo 
    "$somma<br>";//output 10
    //....
    echo questa_somma(99,1);//output 100
    //...
    ?>
    spero di essere stato chiaro, casomai siamo qui

  3. #3
    L'avatar di borgo italia
    borgo italia è offline Super Moderatore
    Data Registrazione
    Feb 2008
    Località
    PR
    Messaggi
    11,227
    ciao
    scusa, dimenticavo una cosa importante per i percorsi.
    devi tenere presente che quando includi è come se facessi un copy/paste del codice del file incluso dentro il file che chiama.
    quindi se il file incluso richiama a sua volta un file il percorso della chiamata NON è il percorso tra i due file inclusi ma relativo al principale.
    esempio
    nella root hai il file che include funzioni.php
    in carlella "prima" hai il file funzioni.php che a sia volta include funzioni_due.php che è in un'altra cartella "seconda", es

    Codice:
    root
       esegui.php
       /prima
            funzioni.php
       /seconda
            funzioni_due.php
    in esegui includi funzioni.php con
    include_once "prima/funzioni.php";

    dentro funzioni.php, l'inclusione NON deve essere
    include_once "../seconda/funzioni.php";
    cioè il percorso tra funzioni.php e funzioni_due.php perchè il codice di funzioni.php è stato "incollato" in esegui quindi in funzioni.php l'inclusione deve essere
    include_once "seconda/funzioni_due.php";
    cioe sempre il percorso relativo a esegui.php

  4. #4
    Jus_eppe è offline Nuovo Iscritto
    Data Registrazione
    Feb 2012
    Messaggi
    4
    Grazie "Borgo" sei stato gentilissimo a rispondere, buon giorno!.
    La spiegazione del tuo codice è davvero chiara, inclusa quindi anche la procedura descritta.
    Mio e tuo malgrado (suppongo), la dettagliata descrizione non elimina l'errore.
    Forse è più chiaro (almeno per te, perchè per me resta mistero) se posto corposamente la questione.
    Tutto nasce dalla voglia di veder aggiornato a tempo il numero dei visitatori al sito. Il conteggio lo effettua un Plugin di nome Stapress. Stò usando wordpress versione 2.9.2 (quando sarà mi deciderò ad aggiornarlo, per il momento mi trovo bene con questa versione).

    Il codice seguente è contenuto in un widget di testo che accetta php e serve a creare il refresh del Div "loaddiv", che a sua volta contiene il numero di visitatori attualmente online:

    Codice:
    <script src="http://ajax.googleapis.com/ajax/
    libs/jquery/1.3.0/jquery.min.js"></script>
    <script>
    var auto_refresh = setInterval(
    function()
    {
    $('#loaddiv').fadeOut('slow').load('/wp-content/plugins/statpress/reload.php').fadeIn("slow");
    }, 10000);
    $(document).ready(function(){
    $('#loaddiv').load('/wp-content/plugins/statpress/reload.php')
    })
    </script>
    <div id="loaddiv"></div>
    -------------------------------
    Codice del file reload.php nella cartella wp-content/plugins/statpress/

    Codice:
    <center><font size=2>Attualmente siamo in &nbsp;</font><font color=#000 size=3>
    <?php
    include_once "statpress.php";
    StatPress_Print("%totalvisits%");
    ?>
    </font>
    </center>
    Da tener presente che il file statpress.php si trova nella stessa root del file reload.php
    -------------------------------
    E qui nasce l'inghippo, poichè il codice di statpress.php appena richiamato visualizza il seguente errore:
    Attualmente siamo in
    Fatal error: Call to undefined function plugin_basename() in /web/htdocs/nome del sito/home/wp-content/plugins/statpress/statpress.php on line 14

    la riga 14 contiene il seguente codice:

    Codice:
    include ABSPATH.'wp-content/plugins/'.dirname(plugin_basename(__FILE__)).'/includes/charts.php';
    --------------------------------
    e qui finisce la mia avventura ed inizia la mia sventura!.

    Mi aiuti a mitigarla, per favore?.
    Ultima modifica di Jus_eppe; 03-02-2012 alle 11:09

  5. #5
    L'avatar di borgo italia
    borgo italia è offline Super Moderatore
    Data Registrazione
    Feb 2008
    Località
    PR
    Messaggi
    11,227
    ciao
    cercherò di darti alcune indicazioni, anche perchè non utilizzo i "precotti" (con precotti intendo wordpress, joomilia, ecc.. e che mi sembra tu utilizzi) gli unici sono dei script js linguaggio di cui non sono molto ferrato, ma faccio tutto manina-manina.
    questo perchè i precotti sono fatti per soddisfare (o almeno in parte) le esigenze di tutti (che servano o no) quindi composti di files su files.
    quindi, come detto, posso darti solo alcune indicazioni.

    considerato l'errore che ti da:
    Fatal error: Call to undefined function plugin_basename() in /web/htdocs/nome del sito/home/wp-content/plugins/statpress/statpress.php on line 14
    significa che non trova la function plugin_basename(), quindi devi cercare, in mezzo agli innumerevoli file che penso tu abbia, dove tale function è definita.
    in qualche script dovrebbe esserci qualcosa del genere
    Codice PHP:
    //...
    function plugin_basename($pinco){
        
    //corpo della funzione
    }
    //.... 
    quindi devi verificare che nello script che ti da errore ci sia un qualche include/require che include il file con tale funzione e che il percorso sia giusto (anche se credo che se non fosse così ti avrebbe dato file non trovato).
    se non c'è devi aggiungere tu l'inclusione di tale file
    oppure copy/paste la funzione nel file che da errore (prima che la funzione venga chiamata)

  6. #6
    Jus_eppe è offline Nuovo Iscritto
    Data Registrazione
    Feb 2012
    Messaggi
    4
    Ciao.
    Intuisco che il mio non è proprio il caso che faccia innamorare chi il codice se lo suda, ma pazienza, non siamo tutti capaci di arrivare allo stesso livello; sarà anche per questo che, umilmente, si chiede aiuto.
    Le tue perplessità hanno fondatezza. Ma le stesse sarebbero evaporate se ti avessi scritto (come ora scrivo) che il file statpress.php ovviamente funzionava e funziona quando "lavora" da solo. Ripeto che è un plugin da cui, con un widget posto su una sidebar, si ricavano tutti i dati di frequenza di un sito.
    Credo dunque che il motivo per cui si genera l'errore, sia da ricercare, appunto, nel codice che io tento invano di applicare.
    Forse ho sbagliato indirizzo a cui chiedere ausilio. Forse meglio avrei fatto a chiedere direttamente sulle pagine del forum di WordPress. Invece ho pensato che, chi il codice lo mastica in continuazione, avesse più rapida soluzione da proporre, proprio perchè "legge e ben interpreta" la salute del codice.
    Sei stato molto gentile ad interessarti già inizialmente a darmi una mano, non posso fare altro se non ringraziarti e sperare che qualcun altro legga il mio appello.

  7. #7
    L'avatar di borgo italia
    borgo italia è offline Super Moderatore
    Data Registrazione
    Feb 2008
    Località
    PR
    Messaggi
    11,227
    ciao
    ...Intuisco che il mio non è proprio il caso che faccia innamorare chi il codice se lo suda...
    non era per sminuire chi usa i precotti, ma solo per dirti che io non li conosco e quindi non li so usare.
    prova a postare il tuo problema qui in mrwm nella sez. dedicata a wordpress

  8. #8
    Jus_eppe è offline Nuovo Iscritto
    Data Registrazione
    Feb 2012
    Messaggi
    4
    Ciao
    Ho dato un'occhiata dall'altra parte, seguendo il tuo consiglio.
    Credo, senza presunzione, che di là non bazzichino egregi programmatori. Risposte così così e per lo più inevase.
    Bèh, che dire?. Fine di una speranza!.
    Non sarà certo per questo che avverrà la fine del mondo... piuttosto... diciamolo... avrà contribuito con almeno l'85%.
    Scherzi a parte, ti ringrazio per la buona predisposizione ad aiutare gli altri.

Tag per Questa Discussione

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •