Newsgroup: it.comp.www.php
Titolo: Scope variabili con file include/require

Ciao a tutti,
qualcuno mi puo' delucidare lo scope delle variabili tra file
include/require (e corrispondenti once)?
Mi spiego:
voglio realizzare un file tipo config.php in cui all'interno metto il
percorso del file di log, delle coordinate del db, etc....
lo includo in test.php ma le var settate al interno di config.php nn sono
poi disponibili su test.php.
Ho letto sul manuale che il problema è l'estensione del file, e a "tastoni"
se metto config.inc e lo includo a quel punto le var di configurazione sono
propagate allo script  padre, comportamento richiesto.
Vorrei avere delucidazioni su questo tipo di comportamento, nn ho capito
molto la spiegazione del manuale, credo cmq che è un problema di
configurazione in php.ini.....
Grazie mille della risposta ;)
-- 
Ciao e buon lavoro,
  Renato
---- 
Renato Eschini
   Inera srl
   Via Vespucci 41
   56100 Pisa
   Tel:         (+39) (0)50 2201218
   WWW:         
http://www.inera.it

 ha scritto nel messaggio
news:2p0i4bF...@uni-berlin.de...


 > propagate allo script  padre, comportamento richiesto.
?


 poi disponibili su test.php.
Nell'esempio seguente (test.php e config.php nella stessa
cartella) la pagina test.php visualizza correttamente la
variabile $test.
file test.php
<?php
include 'config.php';
echo $test;
?>
file config.php
<?php
$test = 'prova';
?>
A te?
-- 
Federico R.

 variabile $test.
Ciao Federico,
il tuo esempio funziona, facendo una prova ho provato a mettere nel mio
codice il percorso completo sul web server dello script config.php e ha
funzionato!!!!!!!
L'architettura è un po complicata perche i due file in questione, ad esempio
test.php che include config.php, viene incluso da un altro script in un
altra directory.
Per farti un esempio:
1)
index.php
include_once('../usermanager/test.php'); // controlla se l'utente è loggato
2)
checkuser.php
include_once('db.php'); // include le variabili di db
3)
db.php
// variabili........
Il comportamento è questo:
a) se metto il nome del file db.php senza percorso nessun errore e le
variabili nn vengono propagate
b) se metto il nome del file db.php con percorso nessun errore e le
variabili  vengono propagate
c) se metto il nome del file db.inc senza percorso nessun errore e le
variabili vengono propagate
d) se metto il nome del file skazzato ottengo l' errore del file che nn
viene trovato
perche questi tipi di comportamento diversi?


 perche questi tipi di comportamento diversi?
Sinceramente non saprei...
-- 
Federico R.

 Esiste un file db.inc nella stessa cartella di checkuser.php?
Intendo : se rinomino il file db.php in db.inc e lo includo come db.inc,
tutto funziona. Sul manuale ho trovato un accenno a questo comportamento.
Grazie a tutti per qualsiasi suggerimento.
-- 
Ciao e buon lavoro,
  Renato
---- 
Renato Eschini
   Inera srl
   Via Vespucci 41
   56100 Pisa
   Tel:         (+39) (0)50 2201218
   WWW:         
http://www.inera.it
.

 include/require (e corrispondenti once)?
[ ... ]
Usa require_once al posto di include in questo modo se sbagli il 
percorso del file ti viene generato un errore e te ne accorgi subito.
ciao
Mauro

 ha scritto nel messaggio
news:cghfmt$mbs$1...@newsfeed.cineca.it...

Si, uso quelli, cmq il comportamento riguardo la visibilità delle variabili
nn cambia


 [cut]
Ti posso suggerire di usare path assoluti come per esempio:
require "${_SERVER['DOCUMENT_ROOT']}/common/db.php";
A me ha risolto molti problemi iniziali!!!

 require "${_SERVER['DOCUMENT_ROOT']}/common/db.php";
Ciao Andrea, graie mille! Non ti nascondo che è la soluzione che sto
adottando.......specialmente per, come suggerisci, per script/file comuni a
tutta la webapp.
thanks
