Richiamare pagine.php in modo dinamico

ciao
posta uno schema delle cartelle dove sono contenuti i files.
l'errore
Warning: require_once(__DIR__vimer 2/template/contatti.php) [function.require-once]: failed to open stream: No such file or directory in /Applications/XAMPP/xamppfiles/htdocs/vimer 2/index.php on line 90 .
ti sta dicendo che sei nella pagina index.php ma che alla riga 90 (della index.php) c'è un errore: cioè non trova il file che gli indichi
 
PHP:
<?php
	 	$sql = sprintf('SELECT * FROM tblmenu WHERE ID = %d', (int)$IdMenu);
$query = mysql_query($sql) or die(mysql_error());

if (mysql_num_rows($query) == 0) {
    require_once 'home.php';
} else {
    $riga = mysql_fetch_assoc($query);
    require_once __DIR__ . "vimer 2/template/{$riga['Pagina']}";//la riga 90 e' questa
	var_dump($riga['Pagina']);
} 
	
	 
		
            ?>
 
Lo slash te lo sei perso per strada?
PHP:
require_once __DIR__ . "/vimer 2/template/{$riga['Pagina']}";
Non vorrei sembrare polemico come al solito, ma davvero non ci voleva niente a capire l'errore qui... Cerca di metterci del tuo, altrimenti staremo qui per settimane.

E poi, se anche il file in cui viene inclusa la pagina sta nella cartella vimer 2, lo devi togliere dal percorso:
PHP:
require_once __DIR__ . "/template/{$riga['Pagina']}";
 
ciao
se lo schema delle cartelle è questo
schema.jpg

prova a mettere semplicemente

PHP:
require_once "template/".$row['Pagina'];
 
PHP:
<?php
        $pagina = isset($_GET['menuid']) ? (int)$_GET['menuid'] : 1;

        require_once ('include/Connetti.php');
		
		

        require_once  ('include/header.php');

       
        $sql = 'SELECT * FROM tblmenu ORDER BY Posizione';
        $query = mysql_query($sql) or die(mysql_error());

       
                        
        while ($riga = mysql_fetch_assoc($query)) 
		{
            if ($pagina != $riga['ID']) 
			{
                echo "<li><a href=\"{$_SERVER['PHP_SELF']}?menuid={$riga['ID']}\">{$riga['Nome_menu']}</a></li>";//mi estrae le voci di menù in ordine di posizione
            } 
			else 
			{
                echo "<li>{$riga['Nome_menu']}</li>";//mi estrae le voci di menù cliccata senza link
            }
        }

        require_once ( 'include/info.php');

        
        $sql = sprintf('SELECT * FROM tblmenu WHERE ID = %d', (int)$pagina);//mi estrae la pagina in base al menu cliccato
        $query = mysql_query($sql) or die(mysql_error());

        if (mysql_num_rows($query) == 0) 
		{
            require_once ('home.php');
        } else 
		{
            $riga = mysql_fetch_assoc($query);
           require_once "template/".$riga['Pagina'];  
        }
        ?>

Per meglio comprendere devo aggiungere che il mio problema era dovuto al fatto che avevo creato due tabelle (menu e pagine) e quindi la mia difficoltà stava nel dover passare due id quello dei menù e quello delle pagine.
Poi ho ascoltato il tuo consiglio e nel database adesso ho solo una tabella (tblmenu) con i campi ID, Nome_menu, Posizione, Pagina
Grazie ancora
 
Ultima modifica:
require_once di pagine in una pagina già inclusa nella index

Eccomi di nuovo:)
Mi chiedevo se il sistema discusso in questo messaggio può essere applicato in secondo livello ad una pagina già inclusa nella index.php.
Es: nella index.php si include finestre.php che a sua volta include altre pagine es: finestra1.php, finestra2.php

In questo caso come devono essere organizzate le cartelle ed i file principali che includono le sottopagine? e rispetto al codice funzionante postato nel messaggio precedente, cambia qualcosa o la logica è la stessa?

Grazie
 

Discussioni simili