Richiamare pagine.php in modo dinamico

ciao
ma si possono passare due parametri contemporaneamente ad una pagina? es: menuid e pagina con il get ?
si, es.
HTML:
<a href=sofonisba.php?pinco="uno"&pallo="due">clicca</a>
poi in sofonisba.php
PHP:
<?php
$primo=$_GET['pinco'];
$secondo=$_GET['pallo'];
//...
?>
poi la mia curiosità era dovuta al fatto di sapere se dentro la variabile hai del codice php (ma qui alex può rispondere meglio di me) perche ti faccio un esempio
PHP:
<?php
$pag="<?php echo 'pinco pallo';?>";
echo $pag;
?>
non ti stampa 'pinco pallo' ciè il codice php dentro la stringa è come se non ci fosse
 
PHP:
<?php

    require_once __DIR__ . "/{$row['pagine']}.php";
}
?>


Ma se i miei file da includere sono nella cartella template come devo modificare la riga sopra? In ogni caso se utilizzo quella funzione mi da "fatal error".....
 
ciao,

dicevi che
Un esempio del contenuto $riga['Pagine'] é contatti.php

credo che dovresti togliere il .php

PHP:
<?php

    require_once __DIR__ . "/template/{$row['pagine']}";
}
?>

se no diventa contatti.php.php

ho aggiunto la cartella template
 
Ultima modifica:
ciao,

dicevi che


credo che dovresti togliere il .php

PHP:
<?php

    require_once __DIR__ . "/template/{$row['pagine']}";
}
?>

se no diventa contatti.php.php

ho aggiunto la cartella template

Grazie mille

Ma perchè non funziona il seguente codice?

require_once __DIR__ . "/template/{$row['Pagina']}";
Mi da il seguente errore:

Warning: require_once(__DIR__/template/) [function.require-once]: failed to open stream: No such file or directory in /Applications/XAMPP/xamppfiles/htdocs/vimer 2/index.php on line 109

Fatal error: require_once() [function.require]: Failed opening required '__DIR__/template/' (include_path='.:/Applications/xampp/xamppfiles/lib/php') in /Applications/XAMPP/xamppfiles/htdocs/vimer 2/index.php on line 109
 
Ma perchè non funziona il seguente codice?

require_once __DIR__ . "/template/{$row['Pagina']}";

Mi da il seguente errore:

Warning: require_once(__DIR__/template/) [function.require-once]: failed to open stream: No such file or directory in /Applications/XAMPP/xamppfiles/htdocs/vimer 2/index.php on line 109

Fatal error: require_once() [function.require]: Failed opening required '__DIR__/template/' (include_path='.:/Applications/xampp/xamppfiles/lib/php') in /Applications/XAMPP/xamppfiles/htdocs/vimer 2/index.php on line 109[/QUOTE]

Nessuno puo' dirmi come mai il sistema non riesce a trovarmi le pagine da includere? I file sono nella cartella template. La cartella template si trova nella cRtella principale che si chiama vimer2. Cme mai invece mi punta su index.php?

Grazie a tutti
 
ciao

hai gia provato anche cosi?

PHP:
require_once __DIR__ . "/vimer2/template/{$row['Pagina']}";
 
ciao
fai una prova commenta e metti un var_dump

PHP:
<?php 
     var_dump($row['pagine']);
    //require_once __DIR__ . "/{$row['pagine']}.php"; 
} 
?>
e posta cosa risulta
 
Il risultato del var_dump è
NULL

Cosa vuol dire?

Vuol dire che non esiste o che cmq ha valore nullo

ma non era $row['Pagine'] con la p maiuscola?

PS: ora che vedo una volta scrivi 'pagine' una volta 'Pagina' una volta 'Pagine', non è la stessa cosa
 
Ultima modifica:
ciao
oltre a quello che ha detto ciric:
sta cercando l'errore in una riga che può essere giusta. l'errore nasce prima. cioè la variabile non viene valorizzata.
posta la parte dove tale variabile dovrebbe assumere il proprio valore
 
Si lo so ma ho modificato un pò il codice suggeritomi da Alessandro,
in ogni caso il codice giusto è $riga[Pagina];
in ogni caso non capisco cosa sbaglio $riga ['Pagina'] contiene le pagine contatti.php, notizie.php ecc che fisicamente però stanno nella cartella del sito inserita in Maintosh HD/Applicazioni/XAMPP/htdocs/vimer 2/template
Forse devo inserire tutto questo percorso?
 
ciao
la tabella del db può contenere quello che dici, ma se il var_dump($riga ['Pagina']); ti restituisce NULL vuol dire che la variabile NON viene valorizzata o in qualche passaggio viene persa.
se è NULL l'istruzione del require è come se fosse scritta
PHP:
require_once __DIR__ . "/vimer2/template/";
quindi non può trovarti quello che dovrebbe
quindi ribadisco l'errore nasce a monte dell'istruzione require.
devi riuscire a capire perchè $riga ['Pagina'] non si valorizza o perchè si perde per strada
 
Non capisco perchè la query non mi da errore però poi non mi valorizza la riga

codice PHP:
PHP:
$Query =mysql_query ("SELECT * FROM tblmenu WHERE ID = '".$_GET['menuid']."'" ); 
if (!$Risultato)
{       
 die("La tabella selezionata non esiste " . mysql_error()); 
}
 else      
{        
echo "ok"; 
//include ("template/{$riga['Pagina']}");
}
Infatti mi stampa OK
Vedi qualche errore per caso?
 
Ultima modifica:
ciao
se hai usato il codice di alex (salvo come hai detto alcune correzioni) metti alcuni var_dump e posta i risultati

PHP:
<?php
//.............
var_dump($pagina);//dovrebbe darti un numero
$sql = sprintf('SELECT * FROM tblpagine WHERE id = %d', (int)$pagina);
var_dump($sql);
/*il var_dump sopra se hai dato (es.) il valore 2 dovrebbe restituirti
string(36) 'SELECT * FROM tblpagine WHERE id = 2'
*/
$query = mysql_query($sql) or die(mysql_error()); 
var_dump($query);//BOOL (FALSE) se non va a buon fine, altrimenti resource....
if (mysql_num_rows($query) == 0) { 
    require_once 'home.php'; 
} else { 
    $row = mysql_fetch_assoc($query);
	var_dump($row);//dovrebbe riportare l'array con il suo contenuto, in pratica il contenuto di $row['pagine'] (o come l'hai chiamato nel campo della tabella)
    //require_once __DIR__ . "/{$row['pagine']}.php"; 
} 
?>
 
ciao
secondo me stai facendo un po' di caos.
fai come ha detto alex o simile, poi metti i var_dump per verificare

PHP:
<?php
var_dump($_GET['menuid']);
//poi dividi la query
$sql="SELECT * FROM tblmenu WHERE ID = '".$_GET['menuid']."'";
var_dump($sql);
$Query =mysql_query ($sql) or die("La tabella selezionata non esiste " . mysql_error()); 
$Risultato=mysql_num_rows($Query);
if ($Risultato==0){       
	echo "la pagina non esiste";
	//include_once ("template/home.php");
}else{        
	echo "ok";
	$riga=mysql_fetch_assoc($Query);
	var_dump($riga);
	var_dump($riga['Pagina']);
	//include_once ("template/{$riga['Pagina']}");
}  
?>
poi un piccolo consiglio nei nomi delle variabile e campi usa sempre e solo il minuscolo, il passaggio da miniscolo a maiuscolo è facile fonte di errori
 
ciao
da dove salta fuori quella variabile $risultato?

Si scusa ho fatto un pò di casino :D
Adesso ho messo a posto il codice e cambia qualcosina
Il risultato di var_dump ($riga['Pagina']) è il seguente:

string(12) "contatti.php" ed è corretto perchè ho cliccato la voce menù contatti
però se metto
PHP:
 require_once __DIR__ . "vimer 2/template/{$riga['Pagina']}";
mi da ancora 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
 

Discussioni simili