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

Problema de redirección con CodeIgniter

Estas en el tema de Problema de redirección con CodeIgniter en el foro de CodeIgniter en Foros del Web. Hola gente, estoy hace una semana renegando con un error que me devuelve el framework CodeIgniter... Resulta que en todas las redirecciónes que hago me ...
  #1 (permalink)  
Antiguo 07/06/2010, 08:52
Avatar de Netfrank  
Fecha de Ingreso: marzo-2006
Ubicación: Las Talitas - Tucumán
Mensajes: 226
Antigüedad: 18 años, 2 meses
Puntos: 3
Problema de redirección con CodeIgniter

Hola gente, estoy hace una semana renegando con un error que me devuelve el framework CodeIgniter...

Resulta que en todas las redirecciónes que hago me da el típico mensaje:
Cannot modify header information - headers already sent by (...).

El problema es que no logro encontrar dónde está la supuesta salida al navegador en mi controlador y/o modelo, dado que las vistas nunca entran en acción....

El código de una de las funciones de mi controlador es el siguiente (todas las demás presentan el mismo problema, ya que copio, pego, y cambio los parámetros para crear las otras funciones).

Código PHP:
function categorias($accion=''){
    
        
$this->load->model('Admin_model');
        
$this->load->helper(array('url','form','date'));
        
$this->load->library(array('user_agent','pagination','form_validation'));
        
        if(empty(
$accion)){
            
            if(!
$this->uri->segment(4)){ $pag $this->uri->segment(4); } else { $pag 1; }
        
            
$categorias $this->Admin_model->categorias($pag);
            
$datos_vista = array('categorias'=>$categorias);
            
            
$this->load->view('admin/inc_head');
            
$this->load->view('admin/inc_menu');
            
$this->load->view('admin/categorias/view',$datos_vista);
            
$this->load->view('admin/inc_foot');
        
        } elseif(
$accion=="nuevo"){
        
            
$habilitado "Si";
            
            
date_default_timezone_set('America/Argentina/Tucuman');
            
            
$datestring "%d/%m/%Y %H:%i:%s";
            
$time time();
            
$fecha mdate($datestring$time);
            
            if(
$_POST){
            
                
$this->form_validation->set_rules('nombre','Nombre de la Categoría','required|min_length[4]|max_length[40]');
            
                if (
$this->form_validation->run() == TRUE){
            
                    
$query "Insert into cms_categorias (nombre,habilitado,created) values 
                    ('"
.$_POST['nombre']."','Si','".$fecha."')";
                    
                    
$this->Admin_model->query($query);
                    
                    
redirect('/admin/categorias/','location');
                
                }
            
            }
            
            
$this->load->view('admin/inc_head');
            
$this->load->view('admin/inc_menu');
            
$this->load->view('admin/categorias/add');
            
$this->load->view('admin/inc_foot');
            
        } elseif(
substr($accion,0,4)=="hab-"){
            
            
$trozo explode("-",$accion);
            
            if(
$trozo[2]=="Si"){ $nuevo_estado "No"; } else { $nuevo_estado "Si"; }
            
            
$query "Update cms_categorias set habilitado='".$nuevo_estado."' where Id='".$trozo[1]."'";
            
            if(
$this->Admin_model->query($query)){
                
redirect('/admin/categorias/');
            }
        
        } elseif(
substr($accion,0,4)=="del-"){
        
            
$trozo explode("-",$accion);
            
$query "Delete from cms_categorias where Id='".$trozo[1]."'";
            
            if(
$this->Admin_model->query($query)){
                
redirect('/admin/categorias/');
            }
        
        } elseif(
$accion=="page"){
        
            
$pag $this->uri->segment(4);
            
            
$categorias $this->Admin_model->categorias($pag);
            
$datos_vista = array('categorias' => $categorias);
            
            
$this->load->view('admin/inc_head');
            
$this->load->view('admin/inc_menu');
            
$this->load->view('admin/categorias/view',$datos_vista);
            
$this->load->view('admin/inc_foot');
        
        } else {
        
            if(!
$_POST){
            
                
$datos $this->Admin_model->categorias_ver($accion);
                
                
$this->load->view('admin/inc_head');
                
$this->load->view('admin/inc_menu');
                
$this->load->view('admin/categorias/edit',$datos);
                
$this->load->view('admin/inc_foot');
            
            } else {
            
                
$this->form_validation->set_rules('nombre','Nombre de la categoría','required|min_length[4]|max_length[40]');
                
                if (
$this->form_validation->run() == TRUE){
                
                    
$query "Update cms_categorias set
                                         nombre='"
.$_POST['nombre']."' where Id='".$accion."'";
                                         
                    if(
$this->Admin_model->query($query)){
                    
                        
redirect('/admin/categorias/','location');
                    
                    }
                
                }
                
                
$datos $this->Admin_model->categorias($pag);
                
                
$this->load->view('admin/inc_head');
                
$this->load->view('admin/inc_menu');
                
$this->load->view('admin/categorias/edit',$datos);
                
$this->load->view('admin/inc_foot');
            
            }
            
        }
        
    } 
Algo que noté y que puede ser útil para resolver el problema, es que en el navegador, al ver el código fuente, encuentro siempre antes que cualquier HTML unos puntitos como esto:

Código HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
  <head> 
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
<!-- Obviamente, luego sigue el resto del código HTML --> 
Desde ya gracias por su tiempo e interés.
__________________
-- Franco D. Ocaranza
-- [email protected]
-- http://www.jmqv.com.ar/
  #2 (permalink)  
Antiguo 07/06/2010, 10:01
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema de redirección con CodeIgniter

en el mensaje de error completo debe estar la información completa de donde se genera la salida, etc...

Cita:
Iniciado por Netfrank Ver Mensaje
Che loko, la verdad es que en este foro las cosas cambiaron un poco...

Antes al menos se intentaba ayudar, pero últimamente, no veo mucho interés... hace rato que no me saco las dudas aquí...
tampoco puedes pedir mucho, por favor lee las reglas que no puedes hacer lo que has hecho...

osea, si no ha pasado ni un día... al menos deberías entender que no todos son vagos como los que vienen con sus dudas, algunos tenemos empleo, y deberes, no solo estamos para servirles...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 07/06/2010, 11:25
Avatar de Netfrank  
Fecha de Ingreso: marzo-2006
Ubicación: Las Talitas - Tucumán
Mensajes: 226
Antigüedad: 18 años, 2 meses
Puntos: 3
Respuesta: Problema de redirección con CodeIgniter

Mis disculpas si los he ofendido, fué una mala reacción de mi parte.

Ocurre que inicié el tema en un momento, y una hora después todos los temas que se abrieron estaban respondidos, menos el mío... eso te desanima un poco...

Normalmente llego al foro, cuando después de "googlear" y agotar todas las posibilidades, no encuentro una solución. Entonces, el hecho de no recibir respuestas, sugerencias, o al menos un "no tengo idea" me hace pensar que no estamos actuando como "comunidad".

Vuelvo a disculparme con la gente del foro, sé que no tienen ningún tipo de obligación conmigo, y por eso lamento este hecho. Saludos.
__________________
-- Franco D. Ocaranza
-- [email protected]
-- http://www.jmqv.com.ar/
  #4 (permalink)  
Antiguo 07/06/2010, 11:45
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema de redirección con CodeIgniter

bueno, pero sigamos con lo tuyo... ¿que dice el mensaje de error completo?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 07/06/2010, 12:27
Avatar de Netfrank  
Fecha de Ingreso: marzo-2006
Ubicación: Las Talitas - Tucumán
Mensajes: 226
Antigüedad: 18 años, 2 meses
Puntos: 3
Respuesta: Problema de redirección con CodeIgniter

El error es típico, cuando se envía una salida al navegador antes de realizar las operaciones de cabeceras, pero revisé todo el código y no encuentro ningún echo, =, print, var_dump, etc...

Lo único anormal que observo son los puntitos al comienzo de todos mis HTML...

Detalle del error.

Cita:
A PHP Error was encountered

Severity: Warning

Message: Cannot modify header information - headers already sent by (output started at /var/www/atot.com.ar/sitio/index.php:1)

Filename: helpers/url_helper.php

Line Number: 541
Vuelvo a aclarar que estoy trabajando con CodeIgniter.
__________________
-- Franco D. Ocaranza
-- [email protected]
-- http://www.jmqv.com.ar/
  #6 (permalink)  
Antiguo 07/06/2010, 12:35
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema de redirección con CodeIgniter

entiendo, expresamente dice el mensaje que la salida proviene de la linea 1 del index.php, ¿que hay en esa linea??

un error común es tener guardado el archivo en UTF8 con BOM, la solución sería (en caso de no tener ningún carácter que produzca la salida) guardar el archivo sin BOM... (:
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 07/06/2010, 13:14
Avatar de Netfrank  
Fecha de Ingreso: marzo-2006
Ubicación: Las Talitas - Tucumán
Mensajes: 226
Antigüedad: 18 años, 2 meses
Puntos: 3
Respuesta: Problema de redirección con CodeIgniter

Perdón por la ignorancia, pero qué es exactamente el BOM, y cómo se lo configura? Yo trabajo con un editor muy básico, y sólo me da la opción de elegir la codificación ANSI, OEM, ISO 8859-2, UTF-8, UTF-16 LE, y UTF-32 BE...

Gracias por tu tiempo.
__________________
-- Franco D. Ocaranza
-- [email protected]
-- http://www.jmqv.com.ar/

Etiquetas: 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 02:30.