Newsgroup: it.comp.www.php
Titolo: Ho fatto una prova con includes ma...

Ho creato una pagina index.php che include intestazione, menu laterale
di navigazione, e una parte centrale con i contenuti principali di
ogni pagina. 
se serve, questo è il codice: 
--------------------------- 
<html> 
<?php include("/head.php") ?> 
<table width="760" border="0" align="center"> 
<tr> 
<td width="140"> 
<div align="center"> 
<?php include("/menusx.php") ?> 
</div></td> 
<td width="600"><div align="center"> 
<?php include("pagina${id}.php"); ?> 
</div></td> 
<td width="20"> </td> 
</tr> 
</table> 
</body> 
</html> 
--------------------------- 
L'intestazione e la barra laterale vengono visualizzati correttamente,
ma al centro non mi funziona (ho usato <?php include("/menusx.php") ?>
perchè voglio aprire le pagine usando un index.php?id= ) 
mi da uno stranissimo errore: 
Warning: Failed opening 'pagina.php' for inclusion
(include_path='.;c:\php4\pear') in c:\documents and
settings\starise\documenti\web\apache\pr
ova\index.php on line 15 
usando:
<?php include"pagina.php?id=$var"; ?>
mi da quest'altro errore:
----- 
Warning: Failed opening 'pagina.php?id=' for inclusion
(include_path='.;c:\php4\pear') in c:\documents and
settings\starise\documenti\web\apache\pr
ova\index.php 
----- 
forse sbaglio io...cmq...
ho creato index.php con quel codice.. 
nella stessa directory ho creato pagina.php e pagina1.php 
nel browser digito 
http://localhost/prova/index.php
 
e mi da quell'errore 
digito 
http://localhost/prova/index.php?id=1
 
e mi da ancora quell'errore..!
Spero qualcuno sappia aiutarmi

 se serve, questo è il codice: 
Tu c'hai grossa crisi.
Ripartiamo da capo.
Il comando include() serve per includere all'interno dell'esecuzione di uno 
script un altro pezzo di file, un altro script. E fino a qui forse c'eravamo.
Ora, il fatto importante è che l'include viene analizzato sul lato server, non 
sulla macchina del client, quindi il nome del file che gli passi non può 
essere relativo al sito, ma relativo alla macchina su cui sta girando.
Supponiamo che tu abbia il tuo sito in C:\Sito\, ok?
Ora, se li dentro crei un file a.php contenente
<?
include('/b.php');
?>
Lui cercherà il file C:\b.php, ok?
per fargli trovare il file che sta nella directory attuale devi usare lo 
pseudonimo della directory attuale, che è "./". Detto altrimenti, devi fare:
<?
include('./b.php');
?>
Ora lui cercherà b.php nella stessa directory in cui è a.php.
Iniziamo a capirci?
Ok. 
scrivere una cosa come
<?
 include("index.php?qualosa");
?>
e' ERRATO, in quanto non stai includendo un URL nel quale puoi mettere i 
parametri. Con l'include devi fare riferimento solo a dei FILE locali (più o 
meno, ma per adesso diciamo così per semplicità) e il file 
"index.php?qualcosa" non esiste.
OK?
Del resto, inoltre, quanto fai un include(), lui include (appunto) lo script 
che gli dici, lasciando inizializzate le variabili dello script "padre".
CHe vuol dire? Vuol dire che se hai lo script a.php che fa questo:
<?
 $colore = "rosso";
 include('./b.php');
?>
e lo script b.php che fa
<? 
  echo "il mio colore preferito &egrave; il ".$colore;
?>
semplicemente lanciando a.php otterrai come output:
Il mio colore preferito è il rosso
Ti quadra?

OK?
ho capito..
quello che volevo fare, è semplicemente dire a index.php, di
richiamare in una tabella, un altra porzione di codice contenuta in un
altro file! C'è un modo per farlo, però assegnando ad ogni pagina un
ID?? Come dici, questo non è possibile perchè non posso metterne i
parametri..., ma se c'è qualche altro modo per farlo, ti sarei grato
se puoi indicarmelo!

 se puoi indicarmelo!
Scusa, ma non ti ho capito.

Scusa, ma non ti ho capito.
io volevo semplicemente scrivere sul browser 
es: 
http://mysite/index.php?id=1
 
cioč..una pagina con lo stesso corpo di un ipotetico index.php 
ma con in una tabella un testo personalizzato (inerente all'id=1) 
http://mysite/index.php?id=2
 
cioč..una pagina con lo stesso corpo di un ipotetico index.php 
ma con in una tabella un altro testo (inerente all'id=2) 
come posso farlo? come sopra, non mi riesce!

ma con in una tabella un testo personalizzato (inerente all'id=1) 
Se le tabelle si chiamano tabellaN.php (con N numero di id):
include("tabella".$id.".php");

 <?php include("pagina${id}.php"); ?>
                       ^^^^^
  <?php include("pagina{$id}.php"); ?>
oppure:
  <?php include("pagina".$id.".php"); ?>
forse (dipende dal tuo php.ini)
  <?php include("pagina".$_REQUEST['id'].".php"); ?>


ciao..
se metto semplicemente 
http://localhost/prova/index.php
mi da una pagina con inclusa "pagina.php"
se sul browser metto 
http://localhost/prova/index.php?id=1
mi da errore e non mi carica pa "pagina1.php"
come mai? :(

"Andrea Brandi" <NOSPAM...@XXXlibero.it> wrote:
dimenticavo...potrebbe dipendere da qualche impostazione di php.ini?

"Andrea Brandi" <NOSPAM...@XXXlibero.it> wrote in message
news:c1p4su0a18smf79a4...@4ax.com...

Hai provato l'ultimo esempio con il $_REQUEST['id'] ?

Hai provato l'ultimo esempio con il $_REQUEST['id'] ?
Ciao, sono riuscito a farlo funzionare...semplicemente uppando i file
su un ftp!! in remoto, le inclusioni avvengono, mentre in locale no!
Ma per testare il mio sito ho bisogno che funzionino anche in locale,
come posso fare? sarà qualche impostazione del webserver?
uso Windows XP Professional + SP1 
Apache 1.3.27 
php 4.2.3 
mysql 3.23.53 
spero possiate aiutarmi! :)