Newsgroup: it.comp.www.php
Titolo: Creazione struttura sito

Ciao a tutti
Allora stavo iniziando a creare un sito da zero naturalmente con l'aiuto di
php.
ho creato un index con 4 aree
1 header (in alto )
1 left (a sinistra)
1 footer (in basso)
1 main (al centro)
ora volevo richiamare le pagine all'interno del main in modo da lasciare
sempre fisse le altre aree.
Ho utilizzato quindi questo script all'interno dell'area main:
 <?php
 if (isset($_GET[page])){
 include($_GET[page]);
 }else{
  include('home.php');
 }
 ?>
Adesso ogni volta che devo chiamare una pagina mi basta assegnare via url un
valore alla variabile page.
Ho pero' due problemi.
1) Gli argomenti del sito sono divisi in cartelle (news, recensioni,
download...) quindi per accedere ai file devo creare un link del genere:
    <a
href="?page=articoli/articoli_dettaglio.php>dettalio</a> ------------------>
(mi sembra un po sporco, cmq funziona)
2) Utilizzando questo sistema non riesco a far passare altre variabili via
url:
     <a href="?page=articoli/articoli_dettaglio.php?id=1>dettalio
numero1</a>
    Mi va tutto in errore
Ora vorrei sapere soltanto se ho seguito una strada giusta o se ho fatto
solo baggianate.
Qualcuno sa dove trovare un tutorial su come creare una struttura del
genere.
Grazie in anticipo dell'aiuto

 fatto solo baggianate.
La strada che hai deciso di intraprendere e' pericolosa in quanto
permtte virtualmente all'utente web di leggere qualsiasi file sul web
server accessibile all'utente che esegue PHP.
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/1
Inviare email con allegati? 
http://url.repository.biz/go/1Z
Cerchi un programmatore PHP/MySQL? 
http://url.repository.biz/go/1Y
L'uomo, conscio di sbagliare, persevera.

 <a href="<?php print ($_SERVER["PHP_SELF"]); ?>?page=...
Niente ho provato ma non cambia sempre lo stesso errore
non capisco come poter fare.


 non capisco come poter fare.
Quale sarebbe l'errore?
Leggi meglio come funziona include perche' hai intrapreso una strada
molto scoscesa.
Questa e' la struttura che potresti utilizzare. 
<?php // file index.php
if (isset ($_GET["page"]))
{ include ($_GET["page"]); }
else
{ include ('home.php'); }
?>
<?php // file home.php
print ($_GET["Title"]);
?>
<?php // file articoli/articoli_dettaglio.php
if (isset ($_GET["id"]))
{
	print ("Selcting article N. " . $_GET["id"]);
	// SELECT * FROM tblArticles WHERE IDArticle = $_GET["id"]
	// mysql_query, mysql_fetch_assoc, print etc.
}
?>
Link da utilizzare:
<a href="index.php?id=1&amp;page=<?php print (urlencode
("articoli/articoli_dettaglio.php")) ?>">Detagli N. 1</a>
Tieni presente che NON puoi includere un file in questo modo:
include ("include.php?param1=1&param2=2");
ma lo puoi fare in questo modo:
$_GET["param1"] = 1;
$_GET["param2"] = 2;
include ("include.php");
Avendo:
<?php //file include.php
print ("Param1 = " . $_GET["param1"] . "<br />");
print ("Param2 = " . $_GET["param2"] . "<br />");
?>
Da testare.


 
Provo a dare un suggerimento banale: perche' non usi un altro
carattere per la seconda querystring al posto del punto interrogativo?
poi prima di passarlo all'include fai un str_replace.
esempio:
$pagina_da_chiamare = "articoli/articoli_dettaglio.php?id=1";
$stringa_in_query = str_replace("?","xxxx",$pagina_da_chiamare);
$chiamata = "?page=". $stringa_in_query;
$rimetti_interrogativi = str_replace("xxxx","?",$_GET["page"]);
include($rimetti_interrogativi);
Saluti
Roberto
http://www.capriweb.com