Newsgroup: it.comp.www.php
Titolo: passare variabili con include, non capisco :(

Scusate ho visto che è un argomento abbastanza gettonato, ma proprio non
capisco come fare. Da solo non ci sono arrivato, nè leggendo i vecchi
post in google groups, e nemmeno 
php.net
 :(
Sto impostando la struttura del mio sito e mi sto perdendo nel
richiamare alcune variabili. 
Di seguito metto quello che sono riuscito a fare leggendo manuali e
script in giro, ma non sono un programmatore e mi sono perso quando si
parla di variabili globali.
Quello che mi servirebbe è includere il file portfolio/portfolio.php
(richiamato dall'index.php passando page=portfolio) in template.php.
Solo che quando includo il file portfolio.php con la funzione 
require $file; (oppure include $file) 
mi perdo le variaibili.
_________________variabili.php____________________________
<?
// Definisco le variabili globali
// server locale
$path = "http://".$_SERVER['HTTP_HOST']."/~fabio/test";
// Ultimo aggiornamento
$lastUpdate = "31 ottobre  2005";
?>
_____________________________________________________
____________________index.php__________________________
<? include ("include/variabili.php"); ?>
<html>
<body>
<?echo "path = $path <br>" ?>
<?echo "lastupdate = $lastUpdate <br>" ?>
<a href="include/template.php?page=portfolio">Portfolio</a>
</body>
</html>
_____________________________________________________
_________________include/template.php_____________________
<?      include ('variabili.php');
        // Definisco le variabili
        $pageTitle=$_GET['page'];
        $dir=$_GET['page'];
        $file= "$path/$dir/$pageTitle.php"; 
echo "pageTitle in template = $pageTitle <br>"; 
echo "dir in template = $dir <br>";
echo "file in template = $file <br>";
echo "il path in template &egrave; = $path<br>";
echo "<br>includo il file $file<br>";
require ($file); 
?>
_____________________________________________________
___________portfolio/portfolio.php__________________________
<?  
echo "<br>--------portfolio.php----------<br>";
echo "pageTitle in portfolio = $pageTitle <br>"; 
echo "dir in portfolio = $dir <br>";
echo "file in portfolio = $file <br>";
echo "il path in portfolio &egrave; = $path<br>";
?>
_____________________________________________________
Grazie in anticipo.
-- 
fabio

 mi perdo le variaibili.
Sembra che il file template.php sia dentro la cartella "include": se
dentro template.php scrivi:
include ('variabili.php');
ci si aspetta di trovare il file variabili.php dentro la stessa cartella
"include" ma, a quanto pare, variabili.php è nella cartella superiore.
By the way: sicuro di voler linkare un file contenuto in include?
Mi riferisco a (index.php):
<a href="include/template.php?page=portfolio">Portfolio</a>
A senso mi verrebbe da scambiare le posizioni di variabili.php e
template.php
-- 
Stefano

 template.php
non so se ne sono sicuro :)
mi sono avvicinato al php da poco, ho basi di C (a livello accademico) e
non mi č difficile capire alcune cose semplici, soprattutto quando mi
evitano cose ripetitive. Quello che so l'ho letto o visto nei codici che
trovo in giro, e nel mio ragionamento in include metto tutto quello che
rappresenta la struttura portante del sito.
Non č un problema per me cambiare logica, l'importante č sapere come
fare :)
In sostanza quello che voglio ottenere č un template.php che rappresenta
la mia pagina standard  ed usare php per includere il resto dei
contenuti del sito. Separando la struttura dal contenuto, ed usando
inoltre i css riesco a modificare la grafica ed il design del sito
cambiando una solo pagina e modificando il css.
I primi esperimenti in php li ho fatti separando header, corpo centrale
e footer, ma trovo piů complicato gestire pezzi di files piuttosto che
avere una struttura unica in un solo file e includendo di volta in volta
il contenuto.
-- 
fabio

  
Quindi hai:
index.php
include/variabili.php
include/template.php
portfolio/portfolio.php
*Io* organizzerei le cose diversamente (ovviamente tu sei libero di fare
come ti trovi meglio):
index.php
template.php
include/variabili.php
portfolio/portfolio.php
In questo modo gli indirizzi visibili nella barra del browser sono tutti
quelli contenuti nella root directory del sito (index e template).
Una cosa da tenere a mente quando si usano le include (o le require) è
che l'intero codice contenuto nel file incluso viene copiato nel codice
sorgente, compresi eventuali 'path' che a quel punto diventano relativi
al file di partenza e non a quello incluso.
-- 
Stefano

 al file di partenza e non a quello incluso.
quindi non dovrei avere problemi piů il problema che spiegavo in
precedenza? Adesso risisitemo meglio il tutto secondo le tue
indicazioni.
Per ora grazie :)
-- 
Fabio

 al file di partenza e non a quello incluso.
ho fatto come dici tu, ma resta il fatto che le variabili non vengono
passate da template.php a portfolio.php nel momento in cui questo viene
incluso.
In particolare, quando uso <a
href="template.php?page=portfolio">Portfolio</a> la variabile page viene
passata a template.php come è giusto che sia. Nel momento in cui
template include portfolio, si perdono e non so quale sia il metodo
migliore per fare quello che voglio.
-- 
fabio

 incluso.
Potresti ripostare il nuovo codice come avevi fatto all'inizio?
-- 
Stefano

 
Dipende tutto da come passi le variabili.
Se usi l'attributo hidden sei O.T. -> i.c.w.html
Mentre se usi le sessioni dovresti postare un po' piu' di codice.
Alla prossima.
	MAX

 Potresti ripostare il nuovo codice come avevi fatto all'inizio?
http://www.fabiosirna.com/test.zip
č l'archivio con i file di cui sopra.
Modifica il file variabili.php in modo da puntare al tuo server locale.
PS. Uso Mac OSX quindi lo zip potrebbe contenere alcune "briciole" tipo
_MACOSX o folder che non contengono nulla.
-- 
fabio

 Mentre se usi le sessioni dovresti postare un po' piu' di codice.
Ho messo qui 
http://www.fabiosirna.com/test.zip
 il sorgente che ho
postato in precedenza per non ripostarlo nuovamente sul ng.
Non so cosa sia l'attributo hidden, ma credo di essere IT visto che la
mia domanda è riferita al php. Come dicevo più sopra ho alcuni
fondamenti di programmazione, quindi cose di base tipo varibili,
funzioni, etc ho idea di come funziona. Ho spulciato 
php.net
 ed il ng
con google groups ma alcune cose in questo momento sono incomprensibili.
Sto cercando meglio tra gli esempi su 
php.net
 e sto facendo delle prove,
ma una mano da chi ne sa di più mi farebbe piacere, soprattutto nel caso
in cui stia sbagliando completamente e magari mi indirizza sulla strada
giusta con un esempio o con link che mi sono sfuggiti (o ancora meglio
parole chiavi di ricerca). Grazie.
-- 
fabio

 _MACOSX o folder che non contengono nulla.
No problem. Guarda i miei header :-)
-- 
Stefano

 No problem. Guarda i miei header :-)
non ci avevo fatto caso ;)
-- 
fabio

 href="template.php?dir=miadir"
E perché no?
   $file= "$dir/$pageTitle.php"; 
-- 
Stefano

    $file= "$dir/$pageTitle.php"; 
Alla fine ho risolto e con una manciata di altre istruzioni, ho creato
anche il portfolio.
Trovo comunque molta difficoltà nel gestire i link passando le
istruzioni :(
Forse il metodo di spezzare header, content e footer è migliore invece
di usare un unico template passando le variabili di volta in volta.
Per ora ho messo su un versione beta (
http://beta.fabiosirna.com
) anche
se come puoi vedere se apri la pagina di feedback e clicchi su feedback
in alto, invece di portarti alla pagina di feedback ti porta alla pagina
di portfolio, perchè non prende le variabili che passo al link.
Conosci qualche tutorial da leggere per realizzare pagine con template
senza appoggiarsi a pacchetti tipo smarty o simili?
Grazie.
-- 
fabio

 senza appoggiarsi a pacchetti tipo smarty o simili?
Purtroppo non posso aiutarti, però ti consiglio di continuare a
sperimentare metodi tuoi, sempre che tu ne abbia il tempo, perché è il
modo migliore per imparare. E' quello che faccio anche io. Il rischio è
quello di partire col piede sbagliato e portarsi dietro i cosiddetti
'errori di gioventù' ma confrontandosi con chi ne sa di più si può
mirare a scrivere del codice migliore.
Ciao
-- 
Stefano