revisalo desde aca
http://www.forosdelweb.com/f18/comentarios-php-remote-file-inclucion-327838/ Código PHP:
<?php
// logicamente aqui no hay problema
include('algo.php');
//aqui tampoco hay problema
$pagina = $_GET['pagina'];
$permitidas = array('principal','noticias','algo');
if(in_array($pagina, $permitidas))
include($pagina.'.php');
//aqui tampoco
$pagina = $_GET['pagina'];
switch($pagina)
{
case 'principal': include('principal.php'); break;
case 'noticias': include('news.php'); break;
case 'algo': include('algo.php'); break;
default: include('principal.php');
}
/* ATENCIÓN - WEEEEEEEEEEEEEEEE */
//el problema está en no saber que recibes
include($pagina); //ESTO NUNCA!!!
?>
Cita: Solo una aclaración más ...
Código PHP:
/* ATENCIÓN - WEEEEEEEEEEEEEEEE */
//el problema está en no saber que recibes
include($pagina); //ESTO NUNCA!!!
así como mencionan .. y como se comenta NUNCA! usar así un "include()" ni un fopen() .. ni un readfile() .. ni funciones que puedan llamar a código (para ejecutarlo como es include) ni para abrirlo (como es el caso de fopen() .. readfile() .. etc).
Pero .. en ese ejemplo si -antes- y he de ahí lo importante se ha definido dicha variable .. no habrá problemas:
Código PHP:
$pagina="nose.php";
include($pagina); // siempre y cuando esté definido $pagina.
Por supuesto .. el ejemplo no es de lo más "ejemplar" valga la rebundancia .. pero imaginemos el caso que tenemos ese switch($pagina) y en lugar de hacer un montón de include() por cada "case" .. definimos $pagina y luego hacemos un include ($pagina) con el valor que resultó tras pasar por el Switch() .. (vendría a ser lo mismo que el ejemplo anterior que indicó $thisone sobre el uso de in_array() ..)
Un saludo,