Controllare all'interno di un file incluso se un altro file è stato incluso...

  • Creatore Discussione Creatore Discussione ufo
  • Data di inizio Data di inizio

ufo

Utente Attivo
31 Ago 2006
51
1
0
www.ecoautomoto.com
Titolo contorto, ma la domanda è semplice.

Ho un file (file1) che stampa un menù il quale agisce su altre parti della pagina, stampate tramite altri file (file2). Se un terzo file includesse solo file1 il menù non funzionerebbe. Devo quindi sapere se file2 è presente.

Altro esempio. Ho un file (file2) che stampa un articolo di un blog. Un altro file (file1) stampa un form per inserire commenti. Non posso includere solo il file1 all'interno di un terzo file, altrimenti non funzionerebbe il form...

Devo quindi fare in modo che il file1 (in entrambi gli esempi) non stampi nulla se non è stato incluso anche il file2.

Se includessi prima il file2 e poi il file1 mi basterebbe controllare la presenza o meno di una certa variabile... Ma se includo prima il file1 e poi il file2?

Spero di essere stato abbastanza chiaro...
 
Ciao!

L'idea è buona e l'ho usata in altri casi... Ma in questo caso non posso...
In poche parole io non so (dentro file1) se file2 deve stampare il suo output prima o dopo quello di file1, quindi non so se require_once deve essere messo all'inizio del codice di file1 o alla fine... Capito?
 
Il codice di quello che ho chiamato file1 è semplicemente:
PHP:
	$sectionMenu = new MenuPrinter();

        //Qui ci dovrebbe essere un if(file2 è incluso in file3)
	$sectionMenu->printSections();

Il codice di file2 non è importante per capire il problema, piuttosto quello di file3, che potrebbe essere una di queste quattro varianti:
PHP:
	include("file2.php");
	include("file1.php"); //In questo caso il problema si potrebbe risolvere verificando se una variabile in file2 è stata settata...

PHP:
	//include("file1.php"); Questa situazione non deve essere gestita, in quanto file2 funziona anche senza file1
	include("file2.php");

PHP:
	include("file1.php"); //In questo caso file1 deve funzionare correttamente in quanto file2 è stato incluso, ma non so in che modo file1 può saperlo
	include("file2.php");

PHP:
	include("file1.php");
	//include("file2.php"); In questo caso file1 non deve stampare niente o al più un messaggio d'errore

Sottolineo che la configurazione di file3 non posso sceglierla e non posso conoscerla a priori.
Grazie mille.
 
Credo che non ci sia un modo per risolvere il problema, non senza sconvolgere l'intera struttura dell'applicazione.
Tieni comunque presente che non c'è bisogno di essere così restrittivi: se qualcosa non funziona lo correggi in fase di testing, quindi non serve controllare tramite uno script se tutto è stato fatto bene.

Se proprio vuoi farlo, si può analizzare il sorgente dello script per cercare l'inclusione di file2, ma secondo me è inutile.
 

Discussioni simili