Foros del Web » Programando para Internet » PHP »

Web modular automático

Estas en el tema de Web modular automático en el foro de PHP en Foros del Web. ¡Hola! Soy nuevo en programación y me he decantado por PHP, no es que sepa programar escriviendo yo el código, sino copiando scripts, entendiéndolos y ...
  #1 (permalink)  
Antiguo 13/10/2008, 12:29
 
Fecha de Ingreso: octubre-2008
Mensajes: 3
Antigüedad: 15 años, 6 meses
Puntos: 0
Web modular automático

¡Hola!
Soy nuevo en programación y me he decantado por PHP, no es que sepa programar escriviendo yo el código, sino copiando scripts, entendiéndolos y cambiandolos a mis necesidades.
Bueno el caso es que estoy haciendo una web y la quiero modular, yo he visto una forma de modular webs, bastante usual y parece ser buena que es esta:
Código PHP:
<?php
        
switch($_GET['id'])
        {
        case 
"Home":
            include (
"home.php");
            break;
        case 
"Productos":   //Productos
            
include ("Productos.php");
            break;
        
        default:
        include (
"home.php");
        break;
        }
?>
La cosa está en que voy a tener unas cuantas secciones y claro, parsear cada dos por tres cada archivo con una variable y todo el tema, encuentro que es hacer muy pesado el archivo que hace modular la web y por otra parte un toston de escribir código. Entonces con mis minis nociones me puse a editar un poco el código haciéndolo mas practico, al menos es lo que busco. Este es la muestra:
Código PHP:
<?php
        
switch($_GET['id'])
        {
        case 
$_GET['id']:
            include (
$_GET['id'].'.php');
            break;
            
        default:
        include (
'home.php');
        break;
        }
?>
Con lo que busco hacer es que con la misma variable que pilla del GET utilizarla para hacer que por ejemplo Productos me vaya a buscar productos.php, pero me esta dando problema, es decir que si voy a buscar alguna variable dentro del GET funciona, pero a la hora que me muestre el home.php me da fallo en la línea 5 que es:
Código PHP:
include ($_GET['id'].'.php'); 
Os pongo el mensaje:

Código:
Warning: include(.php) [function.include]: failed to open stream: No such file or directory in C:\directorio\configuracion.php on line 5

Warning: include() [function.include]: Failed opening 'php' for inclusion (include_path='.;C:\php5\pear') in C:\directorio\configuracion.php on line 5
A ver si alguien sabe ver si estoy haciendo algo mal o que sea debido al php.ini que no este desactivada alguna función y no me funcione, pero no creo...

Un saludo y muchas gracias.
  #2 (permalink)  
Antiguo 13/10/2008, 12:35
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 21 años, 5 meses
Puntos: 17
Respuesta: Web modular automático

Eso es porque no encuentra el fichero, deberías comprobar antes si existe....

Así mirándolo rápido haría algo así:

Código php:
Ver original
  1. $mod = $_GET['id'].'.php';
  2.  
  3. if (file_exists($mod)) {
  4.     require_once($mod);
  5. } else {
  6.     require_once("home.php");
  7. }
  #3 (permalink)  
Antiguo 13/10/2008, 12:41
 
Fecha de Ingreso: agosto-2008
Mensajes: 102
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Web modular automático

lo mismo pero en otra forma de explicacion seria asi:
Código PHP:
<?php
// verificamos si se ha enviado
// la variable Id via GET
if(isset($_GET['Id'])){
    
//Asignamos valores:
$Id=$_GET['Id']; 
// lo cual recibira todo lo que esta despues de Id=Algo
$dir_id="Carpeta/"//especifica la carpeta donde esta las listas de id.Fijate en el "/".
$ext=".php";//extension de la listas
    // Luego de asignar los valores;
    // procedemos a la inclusion
include($dir_id.$Id.$ext);
}else{ 
//por lo contrario si es que no se ha enviado nada en Id incluimos el Principal
include('Carpeta/Dafault.php');
}
 
?>
espero que este codigo te pueda aver ayudado.
  #4 (permalink)  
Antiguo 13/10/2008, 12:52
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 21 años, 5 meses
Puntos: 17
Respuesta: Web modular automático

Tendría el mismo problema cuando no exista el fichero, habría que añadir una comprobación previa.
  #5 (permalink)  
Antiguo 13/10/2008, 13:15
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: Web modular automático

if(file_exists($archivo)){
.......codigo.......
}
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #6 (permalink)  
Antiguo 27/10/2008, 03:04
 
Fecha de Ingreso: octubre-2008
Mensajes: 3
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Web modular automático

Muchísimas gracias... ya me funciona he utilizado el script de Keysher.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:52.