Chiamo ma non risponde!.

Jus_eppe

Nuovo Utente
2 Feb 2012
4
0
0
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.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
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
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
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
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
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
 

Jus_eppe

Nuovo Utente
2 Feb 2012
4
0
0
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:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
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
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)
 

Jus_eppe

Nuovo Utente
2 Feb 2012
4
0
0
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.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
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
 

Jus_eppe

Nuovo Utente
2 Feb 2012
4
0
0
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.
 
Discussioni simili
Autore Titolo Forum Risposte Data
started Ciao a tutti mi chiamo Andrea Presentati al Forum 0
D Buongiorno, mi chiamo Alessandro Presentati al Forum 0
E mi chiamo Ettore Presentati al Forum 0
D Mi chiamo Daniele Guidi Piacere di Conoscervi Presentati al Forum 3
L Ciao a tutti, mi chiamo Livio. Presentati al Forum 1
R Ciao, mi chiamo Rosalino e mi sono appena registrato su questo sito Presentati al Forum 0
C Ciao a tutti mi chiamo Franco Presentati al Forum 2
L Mi chiamo Loris Presentati al Forum 1
F Mi chiamo Flavio Fachin! Presentati al Forum 4
G Salve,mi chiamo Angelo Presentati al Forum 1
felino Mac OS e Client Mail: Stato non in linea Mac e Software 1
I nome utente non esiste nel database PHP 1
M Drag and Drop non capisco le sequenze... Javascript 1
L Suggerimento Pagespeed per non vedenti HTML e CSS 0
F comando di inclusione file audio in I-Pad non funziona HTML e CSS 1
M Immagini non usate WordPress 0
B Non riesco a trovare i cognomi con i caratteri speciali in Access (Microsoft 365) MS Access 0
G Numero zero null non deve visualizzare nulla PHP 0
F Paypal _xclick IPN non risponde PHP 1
R Variabile non risconosciuta dentro una funzione PHP 1
C ACCESS Aprire maschera se valore non presente in una combo MS Access 7
E Alert non viene mostrato PHP 1
felino Hardisk WD SATA 1TB 3.5" non si avvia! Hardware 4
K Scrip non funzionante Javascript 1
R jquery che cambia css di un elemento non mi funziona sulla pagina caricata da ajax Ajax 5
zorro CREATE TABLE non funziona PHP 6
L tipo boolean non funzionante su mariadb (mysql). E codice php 7.4. PHP 0
Sevenjeak Php8 non carica estenzioni PHP 0
R query DELETE non cancella i record PHP 1
otto9due Input text: accetta solo numeri e non può essere vuoto. Javascript 9
G Non vedo frecce su forme Photoshop 2
G Il mio sito dopo aver abilitato l'ssl non visualizza le immagini con indirizzi senza ssl HTML e CSS 0
P jquery refresh div non funziona Javascript 0
N Problema SEO "L'URL non si trova su Google" SEO e Posizionamento 4
S Certificato SSL non funzionante Domini 0
zorro modulo di registrazione: funziona ma non sempre PHP 2
D Form contatti non funzionante HTML e CSS 0
MarcoGrazia Trovare record nel database partendo da id non sequenziali PHP 6
M Non ho rinnovato il mio sito su Aruba... Domini 1
T IP INFO NON FUNZIONA PHP 0
Shyson Google search non trova il mio sito SEO e Posizionamento 1
E Estrarre dati da doppia tabella, banale ma non sempre PHP 1
P Data scraping in PHP non funziona PHP 4
otto9due $_FILE non passa i dati dal form PHP 1
keyascii Non è mai troppo tardi Presentati al Forum 0
N dati tabella non presi PHP 1
P Pagina modifica record che non funziona PHP 0
Shyson AUTO_INCREMENT non si aggiorna MySQL 2
Shyson Codice wp-login non funziona PHP 2
S WORDPRESS NON FA INSTALLARE PIU NULLA WordPress 9

Discussioni simili