Ver Mensaje Individual
  #6 (permalink)  
Antiguo 17/09/2008, 08:41
Avatar de sumolari
sumolari
 
Fecha de Ingreso: mayo-2006
Ubicación: localhost
Mensajes: 1.367
Antigüedad: 18 años
Puntos: 18
Respuesta: Muchas preguntas... jaja

Cita:
Iniciado por PablukY Ver Mensaje
Hola, en primer lugar felicitaros por este gran foro que me ha servido de mucha ayuda y al final he decidido registrarme

Bien, os explico, estoy montando una comunidad web con tecnología php y mysql, mis preguntas son las siguientes:

- He creado una tabla en la base de datos donde deseo guardar todas las opciones de mi comunidad, una de ellas la lista de ip´s baneadas, mi sitio al acceder pasa primero por index.php y luego redirecciona a home.php que sería la página principal.
Lo que me gustaría es saber como puedo hacer que index.php consulte en la base de datos la lista de ip´s baneadas y si coincide con alguna de ellas muestre una página de error explicando el motivo (para ello tengo dos columnas en la tabla de la bd, "ip" y "motivo") y muy importante, que no permita a esa ip acceder si pone en su barra de direcciones "home.php".

- También en la tabla de opciones de la bd he creado una opción donde index.php decide a donde debe redireccionar, pero quiero que la redireccion se produzca despues de comprobar la ip y si no está baneada, esta opcion es mas que nada para deshabilitar el sitio por mantenimiento, el problema es que si introduzco manualmente "home.php" la web sigue funcionando, lo que quiero es que esto no suceda y siempre salte la web de aviso por mantenimiento.
Te respondo sobre lesas dos cuestiones.

Mira, yo optaría por, en lugar de redireccionar a otras páginas, mostrarlas usando un include.

Por ejemplo, si la página que muestra las noticias (por decir algo) es noticias.php, lo que haría es:

  • Cambiar la dirección de la página de noticias a index.php?accion=noticias
  • Luego en index.php hacer un switch con la variable $_GET['accion'].
  • En ese switch hacer que si el valor es "noticias" haga un include a noticias.php.
Un ejemplo del PHP:

Código PHP:
<?php
/* INDEX.PHP */
switch ($_GET['accion']) {

case 
'noticias':
include(
'noticias.php');
break;

default:
echo 
'hola';
break;

}
?>
Y para acabar, antes del switch comprobar si la IP está baneada, si lo está, redireccionale a baneado.php, si no lo está, ejecuta el switch.

Espero que te sirva.