Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Gestione sottopagine in php

    Ciao ragazzi, vorrei porvi un quesito. Immaginiamo di avere un sito, un index.php formato da un header .php incluso, un contenuto centrale inserito nell’index.php appunto e un footer.php incluso. Supponendo, poi, di avere un menù navigabile nell’header(.php) formato da Home, chi siamo, che facciamo, contattaci, ecc ecc…. Ipotizzando, ad esempio, di cliccare su “contattaci” io penserei a una specie di modulo (contattaci.php) che semplicemente sostituisca index.php mantenedo header e footer invariati.

    La mia domanda quindi è: come far capire al php che header e footer sono sempre lì e caricare quindi tutte le altre pagine che formano il corpo centrale, senza dover in ognuna re-includere header e footer….. so che si può fare, ho trovato qualcosa del genere --- <a href="<?php echo $this->link('index.php', 'load=contatti); ?> --- ma non so come implementarla….. devo usare una classe? suggerimenti?
    Sono alla ricerca del solito input ^^
    Grazie in anticipo!
    Alessandra

  2. #2
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    Quello che hai trovato tu sembra essere il sistema che utilizza cakePHP per creare link dinamici. E non può essere implementato a meno che non si utilizzi cakePHP.

    Per fare quello che chiedi basta che strutturi il file index.php in questo modo:
    Codice PHP:
    include('header.php');
    if (isset(
    $_GET['page'])) //controllo se è stata richiesta una pagina
    {
      include(
    $_GET['page'].'.php'); //includo la pagina richiesta
    }
    else
    {
      include(
    'home.php'); //altrimenti mostro la pagina principale
    }
    include(
    'footer.php'); 
    E il link "contattaci" avrà come href "index.php?page=contattaci".

    Occhio però che prendere l'input dalla querystring senza fare un minimo di controllo può portare a problemi di sicurezza (per info vedi questo link).

  3. #3
    Funziona benone direi e mi sembra anche molto più elegante della porcheria che avevo fatto io ^^
    l'unico problema è questo:

    include($_GET['page'].'.php')

    che mi carica le pagine che si trovano nella stessa path ma se avessi organizzato header.php e footer.php in una cartella MODULES, contatti.php e home.php in una cartella PAGES e index.php nella root, come faccio a fargli caricare /pages/contatti.php da questo link
    contatti
    che si trova in /modules/header.php ?

    Mille grazie per la disponibilità e per il link sulla sicurezza, interessantissimo!!!

    Alessandra

  4. #4
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    Devi semplicemente mettere il path relativo degli script nel percorso dei file.
    Quindi lo script index.php sarà così:
    Codice PHP:
    <?
    include('./modules/header.php'); 
    if (isset(
    $_GET['page'])) //controllo se è stata richiesta una pagina 

      include(
    './pages/'.$_GET['page'].'.php'); //includo la pagina richiesta 

    else 

      include(
    './pages/home.php'); //altrimenti mostro la pagina principale 

    include(
    './modules/footer.php');
    ?>

  5. #5
    semplicemente perfetto, funziona egregiamente, grazie!
    Alessandra

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.