Foros del Web » Programando para Internet » PHP » CodeIgniter »

script de errores no funciona en CodeIgniter

Estas en el tema de script de errores no funciona en CodeIgniter en el foro de CodeIgniter en Foros del Web. Hola. Estoy haciendo pruebas con un script que he hecho para recoger errores en un archivo .log y por separado funciona pero en un proyecto ...
  #1 (permalink)  
Antiguo 26/12/2012, 14:14
 
Fecha de Ingreso: septiembre-2012
Mensajes: 60
Antigüedad: 12 años, 2 meses
Puntos: 1
script de errores no funciona en CodeIgniter

Hola.
Estoy haciendo pruebas con un script que he hecho para recoger errores en un archivo .log y por separado funciona pero en un proyecto con CodeIgniter que estoy desarrollando no.

El script es muy simple, está en applicattion/controllers/errors, que es una carpeta que he creado y es el siguiente:
Código PHP:
<?php 
    
//Escribe los errores en un archivo llamado errorsFile.log
    
function errorLog($errorText){
        
$fd fopen('errorsFile.log','a');
        
fwrite($fd,"[".date("r")."] Error: $errorText\n");
        
fclose($fd);
    }
    
//Los errores de php los escribe en el .log
    
set_error_handler('errorLog');
?>
En un controlador que tengo, hago un require_once del archivo del script anterior y cuando quiero capturar algún error simplemente llamo a la función, es decir:
errorLog('Esto es un error');

Para probarlo he llamado a la función desde alguna función del controlador o incluso desde el constructor o el index(), pero no sé por qué no funciona. Como digo, he probado el script por separado y funciona perfectamente. ¿alguna idea?
Gracias.

Un saludo.
  #2 (permalink)  
Antiguo 26/12/2012, 15:24
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 8 meses
Puntos: 137
Respuesta: script de errores no funciona en CodeIgniter

porque no lo haces como un helper de CI? si lo haces como helper no tienes que hacer require_once.
Por cierto, el archivo que usas como log, es escribible??
__________________
>> abimaelmartell.com
  #3 (permalink)  
Antiguo 26/12/2012, 15:31
 
Fecha de Ingreso: septiembre-2012
Mensajes: 60
Antigüedad: 12 años, 2 meses
Puntos: 1
Respuesta: script de errores no funciona en CodeIgniter

Hola, gracias por responder.

Lo del helper no lo había contemplado porque la función es tan sencilla que casi me parece más eficiente así, porque estoy empezando con CodeIgniter y me llevaría más tiempo buscar cómo hacerlo. Aunque seguramente sea más correcto usar helper...

Los permisos de escritura del archivo log están habilitados. No sé si hay que configurar algo en CI para escribir en archivos dentro de carpetas...

Saludos.
  #4 (permalink)  
Antiguo 26/12/2012, 20:08
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 8 meses
Puntos: 137
Respuesta: script de errores no funciona en CodeIgniter

te recomiendo que lo hagas como helper, no es la gran cosa, solo meter el archivo al directorio helpers y cargarlo, es mejor hacerlo asi para seguir el patron del FW.
Dijiste que no funciona, pero te esta imprimiendo algun error???
Saludos
__________________
>> abimaelmartell.com
  #5 (permalink)  
Antiguo 26/12/2012, 22:34
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 19 años
Puntos: 890
Respuesta: script de errores no funciona en CodeIgniter

Y por que no usas las propias funciones que ya tiene CI. para el reporte de logs....
__________________
Drupal Argentina
  #6 (permalink)  
Antiguo 26/12/2012, 22:39
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 8 meses
Puntos: 137
Respuesta: script de errores no funciona en CodeIgniter

buen punto, la documentacion está aquí
http://ellislab.com/codeigniter/user...al/errors.html
es mejor usar las funciones nativas del FW ;)
__________________
>> abimaelmartell.com
  #7 (permalink)  
Antiguo 27/12/2012, 06:28
 
Fecha de Ingreso: septiembre-2012
Mensajes: 60
Antigüedad: 12 años, 2 meses
Puntos: 1
Respuesta: script de errores no funciona en CodeIgniter

Muchas gracias a los dos. Tenéis razón, así es mucho más fácil y correcto.

Por cierto, os hago una pregunta también relacionada con errores de CI y que he hecho hace tiempo en el foro de Ellisab pero nadie contestó. ¿Sabéis cómo capturar los errores que se muestran con form_error? Quiero poder sacar esos errores en un pop up y form_error los saca en la misma pantalla. He buscado en la documentación pero no he visto nada...
  #8 (permalink)  
Antiguo 27/12/2012, 12:09
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 19 años
Puntos: 890
Respuesta: script de errores no funciona en CodeIgniter

Cita:
Iniciado por vicenreler Ver Mensaje
Muchas gracias a los dos. Tenéis razón, así es mucho más fácil y correcto.

Por cierto, os hago una pregunta también relacionada con errores de CI y que he hecho hace tiempo en el foro de Ellisab pero nadie contestó. ¿Sabéis cómo capturar los errores que se muestran con form_error? Quiero poder sacar esos errores en un pop up y form_error los saca en la misma pantalla. He buscado en la documentación pero no he visto nada...
Sabias que lo podes hacer con javascript, ya nada tiene que ver con PHP
__________________
Drupal Argentina
  #9 (permalink)  
Antiguo 27/12/2012, 12:27
 
Fecha de Ingreso: septiembre-2012
Mensajes: 60
Antigüedad: 12 años, 2 meses
Puntos: 1
Respuesta: script de errores no funciona en CodeIgniter

Cita:
Iniciado por NUCKLEAR Ver Mensaje
Sabias que lo podes hacer con javascript, ya nada tiene que ver con PHP
Con javascript son los pop ups, pero los errores tengo que sacarlos de php. Con form_error se sacan a html, pero quiero capturarlos para que sin sacarlos por pantalla, los pueda utilizar para sacarlos en pop ups. De javascript no he preguntado nada.
  #10 (permalink)  
Antiguo 27/12/2012, 13:37
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 8 meses
Puntos: 137
Respuesta: script de errores no funciona en CodeIgniter

puedes sacarlos a javascript
Código PHP:
Ver original
  1. <script>
  2. var errors = "<php echo form_error() ?>"; <!-- no se si es la manera correcta, pero es una idea -->
  3. </script>
e inclusive los puedes sacar a cookies y usarlos en otra parte aunque no creo que sea necesario
__________________
>> abimaelmartell.com
  #11 (permalink)  
Antiguo 27/12/2012, 14:09
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 19 años
Puntos: 890
Respuesta: script de errores no funciona en CodeIgniter

Cita:
Iniciado por vicenreler Ver Mensaje
Con javascript son los pop ups, pero los errores tengo que sacarlos de php. Con form_error se sacan a html, pero quiero capturarlos para que sin sacarlos por pantalla, los pueda utilizar para sacarlos en pop ups. De javascript no he preguntado nada.
Se ve que no tienes idea o no entendiste lo que te dije. La respuesta debes capturarla con javascript. PHP ni nada envia magicamente a tu popup un mensaje para mostrarlo. Debe salir de algun lado, en este caso debes capturar ese mensaje HTML y mandarlo al popup.

1. Lo mas mas fácil va a ser capturar el error desde el html, y esconderlo para que solo sea visible en el popup.
2. mandar directamente el error a la vista directamente con javascript. Supongo que lo tendrias que mandar directamente desde el controlador una vez capturado el error.
__________________
Drupal Argentina
  #12 (permalink)  
Antiguo 27/12/2012, 16:37
 
Fecha de Ingreso: septiembre-2012
Mensajes: 60
Antigüedad: 12 años, 2 meses
Puntos: 1
Respuesta: script de errores no funciona en CodeIgniter

Cita:
Iniciado por NUCKLEAR Ver Mensaje
Se ve que no tienes idea o no entendiste lo que te dije. La respuesta debes capturarla con javascript. PHP ni nada envia magicamente a tu popup un mensaje para mostrarlo. Debe salir de algun lado, en este caso debes capturar ese mensaje HTML y mandarlo al popup.

1. Lo mas mas fácil va a ser capturar el error desde el html, y esconderlo para que solo sea visible en el popup.
2. mandar directamente el error a la vista directamente con javascript. Supongo que lo tendrias que mandar directamente desde el controlador una vez capturado el error.
Creo haber entendido lo que me dijiste, idea tengo y no creo que con "capturar" te refieras a mostrar. La pregunta la hago porque estoy utilizando una librería de autenticación llamada Tank auth y con ella, algunos errores es posible capturarlos desde php (no sé si hay una manera similar o igual de capturarlos con CodeIgniter) y otros se muestran con form_error. A continuación te muestro cómo se captura un error en un formulario de email, y después se muestra en un pop up:
Código PHP:
<?php if(isset($errors[$email['name']]) != NULL){
    echo 
''.$popUp.'<div id="pop-up">'.$errors[$email['name']].'</div>';}
?>
Siendo $popUp el script correspondiende en Javascript que lo muestra.
Ese tipo de errores los puedo capturar fácilmente desde php y mostrarlos con Javascript, pero los errores que muestran los form_error no sé cómo capturarlos. Y pienso que debe haber alguna manera de hacerlo.

Etiquetas: errores, php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:13.