- Home
- Categorie
- Coding e Sistemistica
- Coding
- Pagina principale unica e contenuto richiamato attraverso il link
-
Pagina principale unica e contenuto richiamato attraverso il link
Scusate il titolo lungo ma da spiegare in 2 parole è difficile..
In pratica mi sapete dire se è possibile avendo una pagina index.php dargli inizialmente il contenuto voluto, e poi attraverso dei link del tipo:
index.php?page=XXX
si ricarica la pagina ma col contenuto diverso (che preleva da un altro file php..)
Avevo provato con un include, ma poi non so come fare per creare i nuovi link, e sostituire il pezzo richiamato con quello del link... :bho:
Spero di essermi espresso bene.. In caso ditemi se non avete capito..
Grazie mille
-
Allora, ti posso dire che si può fare benissimo ed anche facilmente, visto che il mio sito è strutturato così, poi però gli ho messo il mod_rewrite per SEO e per oscurare la struttura del sito.
Comunque tu ricavi dalla querystring il nome della pagina e poi attraverso degli if (che contengono il contenuto della pagina richiamata) stampi il risultato.
Invece se vuoi fare degli include, puoi fare così:
Link: index.php?page=home
[PHP]<?php
$pag = $_GET['page'];
include("$pag.php");
?>[/PHP]e ovviamente il contenuto si trova nel nome della pagina richiesta..
Non so se hai capito bene...
Ciao
-
Ciao gigi991,
La solzuone proposta da SimyXT, è assolutamente sconsigliata per motivi di sicurezza, cosi facendo manomettendo la variabile GET riesci ad includere qualsiasi file vuoi...
Devi sempre fare i controlli che la variabile contenga un valore che ti aspetti di ricevere.
-
Ma ovviamente il controllo ci và sempre..
Infatti io uso il metodo dell'if così sono sicuro che ricevo sempre quella pagina e/o quelle da me inserite...Era solo per far capire il funzionamento..
-
Intanto ringrazio SimyXT
@Thedarkita said:
Ciao gigi991,
La solzuone proposta da SimyXT, è assolutamente sconsigliata per motivi di sicurezza, cosi facendo manomettendo la variabile GET riesci ad includere qualsiasi file vuoi...
Devi sempre fare i controlli che la variabile contenga un valore che ti aspetti di ricevere.Hai qualche suggerimento pratico (in poche parole codice..) per risolvere questo problema?
Grazie.
-
Ciao Gigi991,
Puoi usare semplici if cosi:
[php]
$page = $_GET['page'];
if($page == 'page1'')
include('page1.php');
elseif($page == 'page2'')
include('page2.php');
[/php]Per una soluzione come quella proposta da SimyXT, cosi:
[php]
$page = $_GET['page'];
$validi = array('page1', 'page2');
if(in_array($page, $validi))
include($page.'.php');
[/php]
-
Ho provato mettendo in una pagina prova.php il codice:
[php]<?php
$page = $_GET['page'];
if($page == 'page1'')
include('page1.php');
elseif($page == 'page2'')
include('page2.php');
?>[/php]E inserendo nella stessa directory i file page1.php e page2.php con contenuti diversi.
Ora andando su prova.php (stessa cosa se vado su prova.php?page=page1 o prova.php?page=page2) mi da questo errore:Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /membri/gfile/prova.php on line 4
Cosa può essere?
-
Hai messo un ' di troppo:
[php]
<?php
$page = $_GET['page'];
if($page == 'page1')
include('page1.php');
elseif($page == 'page2')
include('page2.php');
?>
[/php]