hola que tal. lo que sucede es que estos dias se me ha dado por experimentar un poco con el desarrollo web. vengo de c/c++ y la verdad nunca me gusto el dise;o, asi que es lo que menos atencion le pongo. me estoy centrando en la programacion.
estoy programando un foro en php usando la base de datos mysql. no tengo problemas con la programacion ni el dise;o.
mi unica duda es que sospecho que la forma en la que estoy programando todo no es la manera correcta, o la indicada.
en un programa en C por ejemplo, lo organizo en varios ficheros fuente y de cabecera, que despues se compilan en un solo ejecutable.
en el caso del foro, solo tengo 3 archivos: index.php - estilo.css - config.php
en config.php tengo definidas ciertas variables como el nombre del foro, el nombre de los rangos, los datos de la conexion a mysql.
en estilo.css, bueno creo que es mas que obvio, tengo definidos todos los estilos de las clases y demas de los elementos html que hay en el archivo index.php
aca se viene lo que creo poco eficiente:
en index.php, tengo una parte fija que siempre se mostrara al usuario, esto incluye el header, el menu, el formulario de inicio de sesion (si es que no esta logueado) y el footer.
en el "medio digamos" es donde se pone el contenido variable.
ahi tengo una serie de if/elseif que lo que hacen es comparar el valor de la variable $_GET['accion'] para mostrar tal o cual contenido, segun el valor del parametro.
si ese parametro no esta seteado, se muestra la pagina principal.
esta idea la tome de SMF, no creo que sea una mala practica, pero lo que sucede es que TODO el contenido del foro, es decir, todas las posibles paginas se encuentran en el archivo index.php
incluso el formulario de registro.
la pregunta es, de que manera podria lograr "separar" todo el codigo en diferentes archivos php, asi por ejemplo, en el caso de que el parametro accion sea "perfil", se ejecute el codigo del archivo "perfil.php", pero si el usuario ingresa directamente a perfil.php le de error 404?
supongo que cambiando los permisos de ese archivo seria suficiente para que sea inaccesible desde afuera.
para ejecutar el codigo, bastaria con un include('perfil.php') y despues ejecutar una funcion dentro de ese archivo que se encargue de realizar las consultas necesarias a la db y mostrar el contenido html generado en el medio de la pagina entre el header y el footer?
gracias.
PD: les dejo una imagen de la home, a ver que opinan sobre el dise;o: (el header es una imagen al azar que venia con la libreria alpng)