Click para cerrar esto Registrarse en Todo-Mods
Portal    Foro    Buscar    FAQ    Registrarse    Conectarse
Publicar Nuevo Tema  Responder al Tema Página 1 de 1
 
Redirecciones Si Las IDs No Están Establecidas En La BD
Autor Mensaje
Responder al Tema Responder Citando  
Mensaje Redirecciones Si Las IDs No Están Establecidas En La BD 
 
Perdón por el título, pero no se me ocurre algo más indicado y que sea corto.

Bueno, el caso es que llevo un tiempo queriendo hacer la página principal (de cada idioma) en php+MySQL para no tener que ir editando todos los archivos html cada vez que añadía o quitaba una página.
Al principio no conseguía hacer la conexión con la BD, así que lo hice todo en php basándome en un libro y en lo [poco] que ya sabía. El resultado es el que hay ahora (tanto en castellano como en catalán).

Bueno, ahora tengo en un subdominio para mis pruebas la nueva web con la conexión a la base de datos y todo el rollo funcionando. El único problema es que no sé cómo hacer que si la ID que hay en la dirección no está establecida en la BD (o si no hay ID), que me redirija a la página principal.
Con las páginas actuales (solo php) lo tengo hecho.

Esto es lo que tengo actualmente puesto (pegado en un pastebin; se puede ver el resultado en http://cas.astronomipedia.es/):


Lo que estoy haciendo con el conjunto php+MySQL (ver resultados en http://mi-php.astronomipedia.es) es:


Intenté hacer una redirección con el php haciendo uso de una condición al principio del archivo (por supuesto, no abría y cerraba dos veces las etiquetas php) y que decía:
Código: [Descargar] [Ocultar]
  1. <?php if ($_GET['id']){  
y cerraba en lo que actualmente es el archivo poniéndole lo siguiente:
Código: [Descargar] [Ocultar]
  1. } else {  
  2.      header("HTTP/1.1 301 Moved Permanently");  
  3.      header("Location: http://mi-php.astronomipedia.es/web/principal");  
  4. } ?>  

Eso solamente sirve para redirigir en el caso que no haya ninguna ID escrita en la dirección, pero me salía un error del php que decía que las cabeceras ya habían sido enviadas, así que borré esa estructura condicional.

Bueno, todo esto para preguntar a ver cómo puedo hacer (en el caso con MySQL) que si no hay ID en la dirección, o hay una que no está establecida en la BD, que me redirija a la página que yo quiera.


¡Muchas gracias y un saludo!





¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬ FIRMA ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
DATOS DE SOPORTE
Spoiler: [ Mostrar ]
Desconectado Ver perfil del usuario Enviar Mensaje Privado Visitar sitio Web del Usuario
Descargar Mensaje Volver arriba Página Inferior
Responder al Tema Responder Citando  
Mensaje Redireccion 
 
la instruccion header
no puede tener ninguna linea en blancvo, html o comentarios antes de su ejecucion sino da error

solucion rapida
pon algo como esto

Código: [Descargar] [Ocultar]
  1. } else {  
  2.   echo"esa pagina no existe";  
  3.   echo"visita http://mi-php.astronomipedia.es/web/principal";  
  4. }  
  5.  





Desconectado Ver perfil del usuario Enviar Mensaje Privado Visitar sitio Web del Usuario
Descargar Mensaje Volver arriba Página Inferior
Responder al Tema Responder Citando  
Mensaje Re: Redirecciones Si Las IDs No Están Establecidas En La BD 
 
Gracias, casimedicos.

Ahora, el problema está en que me aparezca un mensaje o me redirija cuando la ID no coincida con una de las que hay en la BD.
También me parece raro que con lo que tengo actualmente (el de solo php) me funcione. Al código que me has dado, le haré unos cambios para que no me aparezca en la parte superior de la página y tampoco me rompa con la validación del XHTML:
Código: [Descargar] [Ocultar]
  1. } else {  
  2.      $titulo = "La página solicitada no existe";  
  3.      $cuerpo = <<<CUERPO  
  4.      <h1>La página solicitada no existe</h1>  
  5.      <p>La página que has solicitado no existe. Haz clic en uno de los enlaces de la izquierda para seguir.<br />  
  6.      Si crees que este mensaje no te debería aparecer, contacta con el administrador</p>  
  7. CUERPO;  
  8. } ?>  


Voy a dar un poco más de información (más que nada para conocer el funcionamiento de la página):
En la BD tengo una tabla llamada cas que contiene los siguientes campos:
  • id, que tiene la identificación de la página para la URL
  • lista, que es el campo con el título que aparece en el menú de enlaces de la izquierda
  • titulo, que es donde está el título que aparece en el navegador, en la barra superior
  • cuerpo, que contiene el cuerpo de la página


Aunque preferiría que me redirigiera, como con el script de solo php sin MySQL


Un saludo,





¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬ FIRMA ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
DATOS DE SOPORTE
Spoiler: [ Mostrar ]
Desconectado Ver perfil del usuario Enviar Mensaje Privado Visitar sitio Web del Usuario
Descargar Mensaje Volver arriba Página Inferior
Responder al Tema Responder Citando  
Mensaje Pues Usa Javascript 
 
pues usa javscript
http://www.efectosjavascript.com/redireccion-javascript.html

o elimina el codigo innecesario que te da problemas como te he explicado
saludos




Desconectado Ver perfil del usuario Enviar Mensaje Privado Visitar sitio Web del Usuario
Descargar Mensaje Volver arriba Página Inferior
Responder al Tema Responder Citando  
Mensaje Re: Redirecciones Si Las IDs No Están Establecidas En La BD 
 
Gracias casimedicos
He borrado espacios innecesarios en el index.php y he puesto ahí la condición. El problema estaba en que había un espacio antes de las claves de apertura del código en php. Prefiero eso a usar javascript para hacer la redirección.

Ahora solo falta encontrar la manera de hacer que redirija/de mensaje de error cuando la ID que hay en la dirección no está en la BD.

Muchas gracias y felices fiestas





¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬ FIRMA ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
DATOS DE SOPORTE
Spoiler: [ Mostrar ]
Desconectado Ver perfil del usuario Enviar Mensaje Privado Visitar sitio Web del Usuario
Descargar Mensaje Volver arriba Página Inferior
Mostrar mensajes anteriores:   

Publicar Nuevo Tema  Responder al Tema  Página 1 de 1
 

Usuarios navegando en este Tema: 0 Registrados, 0 Ocultos y 1 Invitado
Usuarios Registrados conectados: Ninguno


 
Lista de Permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
No Puede descargar archivos
No Puede enviar eventos al Calendario