en CodeIgniter, como es sabido, una página de la forma: /class/function/ID
, donde la clase es el nombre del controlador, la función es el método dentro del controlador, y el ID es el parámetro para pasar a ese método.Codeigniter & PHP - forzando un 404?
El uso típico sería (para un sitio de libro por ejemplo) para pasar el ID de libro a la función que luego consultar la base de datos para el libro apropiado. Mi problema es este: me equivoqué y escribí al azar (en la cadena url) una ID que no está presente en la base de datos (con el punto normal y haga clic en buscar esto nunca sucedería) y recibo errores en la base de datos debido a las consultas residuales Intento realizar el trabajo con una identificación inexistente.
He escrito un código para verificar si hay alguna fila devuelta antes de intentar usar el ID, pero si el ID no existe me gustaría que el usuario obtenga una página de error 404 en lugar de una página en blanco o algo (ya que esto parece una funcionalidad adecuada). Esto tendría que ser un verdadero página 404 (no simplemente cargando una vista que se parece a una página 404) para que no se atornille con los motores de búsqueda. Está bien - por lo que mi pregunta es la siguiente: en el flujo de la lógica del programa normal (como se describe más arriba) ¿Cómo puedo forzar un error 404 usando CodeIgniter? Gracias.
actualización: CodeIgniter tiene una función show_404('page')
pero no creo que esto va a generar un verdadero error HTTP 404 ...
¡Esa es una gran noticia! No es que no te crea, pero intentaré verificar esto antes de aceptar tu respuesta. Gracias – oym
Gracias! Corto, simple y efectivo. –
sí, funciona en codeigniter también. realizar la función page_not_found y llamarlo desde config/rutas '$ route [ '404_override'] = 'Bienvenido/page_not_found';' \t 'page_not_found función() \t { \t \t cabecera ("HTTP/1.1 404 Not Found"); $ this-> load-> view ('page_not_found'); } ' –