29Dic/09Off
| Tweet |
Manejar errores en PHP
Mostrando los errores de forma amigable
A continuación cada uno de los contenidos de los archivos, de forma muy simplificada:
El contenido de /index.php:
<?php
include('includes/sesiones.php');
if (isset($_POST['(formulario)'])) {
// Ejecutar todas las acciones de verificación y otros.
}
include('includes/header.php');
// Contenido de la página propiamente tal
?>
<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post">
<input type="text" />
(...)
<input type="submit" value="Aceptar" />
</form>
<?php
include('includes/footer.php');
?>
Contenido de /includes/header.php:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="es">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<base href="http://unreal4u.com/" />
<title>Título de la página</title>
</head>
<?php
include('includes/errores.php');
?>
Ahora bien, la gracia de todo el sistema para mostrar errores está justamente en /includes/errores.php, que contiene el siguiente código:
<?php
if (isset($_GET['err'])) $err[] = $_GET['err']; // Reviso si existe error en GET y agrego al arreglo
if (isset($err)) { // Si existen errores...
$pantalla = '<p class="error">'.c_img('i/warning.png').' '; // Empezamos
foreach($err AS $a) { // Por cada uno de los errores en $err
switch($a) { // Reviso de cuál se trata
CASE 1 : $pantalla .= 'Lo sentimos, pero necesita logearse antes de poder continuar'; break;
CASE 2 : $pantalla .= 'Debe llenar el formulario'; break;
CASE 3 : $pantalla .= 'Es probable que se haya intentado inyección SQL'; break;
CASE 4 : $pantalla .= 'Debe llenar todos los campos'; break;
CASE 5 : $pantalla .= 'Lo sentimos, pero el usuario y contraseña no corresponden'; break;
CASE 6 : $pantalla .= 'El tiempo de la sesión ha expirado'; break;
CASE 7 : $pantalla .= 'Para acceder a esta área debe ser administrador'; break;
CASE 403:
CASE 404: $pantalla .= 'La página solicitada no existe, verifique el link'; break;
DEFAULT : $pantalla = ''; break;
}
}
if ($pantalla != '') echo $pantalla.'</p>'; // Imprimo
unset($a,$err,$pantalla); // Limpiamos
}
Por último, la función que retorna el código HTML de la imagen (c_img) ya la habíamos visto en un post anterior.
¿Te gustó este artículo?
Comentarios (0)
Trackbars (1)
( suscribirse a los comentarios de esta entrada )
Trackbacks are disabled.
