Foros del Web » Programando para Internet » PHP »

error de redireccion

Estas en el tema de error de redireccion en el foro de PHP en Foros del Web. saluods amigos tengo el siguente codigo: Código PHP: <?php if(isset( $_GET [ "salida" ])){     session_destroy ();     header ( "Location: ../admin/index.php?mensaje=informativo&info=Informativo: haz cerrado la sesion" );  } //termina if ?> ...
  #1 (permalink)  
Antiguo 07/09/2014, 11:27
 
Fecha de Ingreso: enero-2014
Mensajes: 100
Antigüedad: 10 años, 3 meses
Puntos: 0
error de redireccion

saluods amigos tengo el siguente codigo:

Código PHP:
<?php
if(isset($_GET["salida"])){
   
session_destroy();
   
header("Location: ../admin/index.php?mensaje=informativo&info=Informativo: haz cerrado la sesion"); 
}
//termina if
?>
el cual esta asociado a este otro codigo:
Código HTML:
<a href="index.php?salida=salir"><span class="ui-icon ui-icon-power"></span></a> 
lo que hace es que, al pulsar sobre el icono de salir, se asigna el valor a la variable de salida y e el if del php, se asigura de que esta definida y si es si, destruye la sesion y me redirecciona a la pagina de logeo pero, dar click en el boton de salir me muestra el siguiente error:

Código PHP:
WarningCannot modify header information headers already sent by (output started at C:xampphtdocsnombre_aplicacionmodulosprestadoresprestadores.php:19in C:xampphtdocsnombre_aplicacionprincipalindex.php on line 119 
y no se como podria solucionarlo, ¿podrian ayudarme por favor?
__________________
"Benditos sean todos los libros, pues cuando abres uno, te sumerges en un mundo nuevo y completamente diferente"
  #2 (permalink)  
Antiguo 07/09/2014, 11:34
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: error de redireccion

Cualquier llamada a header() debe hacerse antes de imprimir cualquier cosa, ya sea HTML o hasta un espacio en blanco.

Seguramente en tu script hay más cosas que no alcanzamos a ver, pero bueno, como no es posible adivinar la totalidad de tu script es complicado decirte más.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 07/09/2014, 16:43
 
Fecha de Ingreso: enero-2014
Mensajes: 100
Antigüedad: 10 años, 3 meses
Puntos: 0
Información Respuesta: error de redireccion

coloco el codigo que utilizo y, segun yo, todo esta bien:

Código:
<?php
   session_start();
   //inicia codigo para dar tiempo de vida a las sesiones
   //el tiempo en inactivo esta en segundos
   $inactivo=300;
   if(isset($_SESSION["tiempo"])){
      $vida_sesion=time()-$_SESSION["tiempo"];
      if($vida_sesion>$inactivo){
         session_destroy();
         header("Location: ../admin/index.php?mensaje=informativo&info=Informativo: la sesion a caducado");
      }//termina if
   }//termina if
   
   $_SESSION["tiempo"]=time();
   //termina codigo para dar tiempo de vida a las sesiones
   $usuario=$_SESSION["online"];
   if(isset($usuario)){
?>

   <!DOCTYPE html>
   <html lang="es">
      <head>
         <title><?php echo "Bienvenido(a): ",$_SESSION["online"]; ?></title>
         <meta charset="utf-8" />
         <!--estilos del programa principal-->
         <link rel="stylesheet" href="../estilos/principal.css">
         <!--estilos de los modulos-->
         <link rel="stylesheet" href="../modulos/estilos/prestadores.css">
         <!--librerias necesarias para diseño de la web-->
         <link rel="stylesheet" href="../jquery-ui-1.11.1.custom/jquery-ui.min.css">
         <script src="../jquery-ui-1.11.1.custom/external/jquery/jquery.js"></script>
         <script src="../jquery-ui-1.11.1.custom/jquery-ui.min.js"></script>
         <script>
            <!--menu general-->
            /*
            $(function() {
               $( "#menu_principal" ).tabs();
               $("#menu_principal ul li a").click(function () {location.hash = $(this).attr("href");});
            });
            */
            $.fn.hashTab = function(){
               var tabs=this
               $("ul.ui-tabs-nav>li>a",tabs).click(function () {location.hash = $(this).attr("href");return false})
               $(window).on("hashchange",function(){
                  var tab= location.hash && tabs.has(location.hash).length ? $(location.hash).index()-1 : 0
                  tabs.tabs("option","active",tab)
                  tabs.find("li").eq(tab).focus().blur()
               })
            }
            $(function() {
               $( "#menu_principal" ).tabs().hashTab()
            });
            
            <!--icono de salir-->
            $(function() {
               $( "#icons li" ).hover(
                  function() {
                     $( this ).addClass( "ui-state-hover" );
                  },
                  function() {
                     $( this ).removeClass( "ui-state-hover" );
                  }
               );
            });
            
            //codigo para que el boton pueda cambiar de fondo al
            //pasar el cursor del raton   
            $( document ).ready(function() {
               $( "#boton_nuevo" ).button();   
               $( "#boton_editar" ).button();
               $( "#boton_eliminar" ).button();
            });
            
            //desvanece el div en 2 segundos (parametro en milisegundos) y
            //despues redirecciona a esta misma pagina
            $( document ).ready(function() {
                $("#mensaje_informativo_prestador").fadeOut(2000, function(){
                   //window.location = "index.php";
                });
                $("#mensaje_error_prestador").fadeOut(2000, function(){
                   //window.location = "index.php";
                });
            });
         </script>
      </head>
      <body class="ui-state-default">
         
         <div id="menu_principal">
            <ul>
               <li><a href="#modulo1">Prestadores</a></li>
               <li><a href="#modulo2">Servicios y Practicas</a></li>
               <li><a href="#modulo3">Asistencias</a></li>
               <li><a href="#modulo4">Reportes</a></li>
            </ul>
            <div id="modulo1">
               <?php
                  include("../modulos/prestadores/prestadores.php");
               ?>
            </div>
            <div id="modulo2">
               <p>AQUI MODULO DE SERVICIOS Y PRACTICAS</p>
            </div>
            <div id="modulo3">
               <p>AQUI MODULO DE ASISTENCIAS</p>
            </div>
            <div id="modulo4">
               <p>AQUI MODULO DE REPORTES</p>
            </div>
         </div>
         <!--
         enlace-boton para salir del sistema
         -->
         <ul id="icons" class="ui-widget ui-helper-clearfix">
         <li class="ui-state-default ui-corner-all"><a href="index.php?salida=salir"><span class="ui-icon ui-icon-power"></span></a></li>
         </ul>
         <?php
            if(isset($_GET["salida"])){
               session_destroy();
               header("Location: ../admin/index.php?mensaje=informativo&info=Informativo: haz cerrado la sesion"); 
            }//termina if
         ?>
         
         <!--mensajes de notificacion-->
         <?php
         require ("reglas/mensajes.php");
         ?>
         
      </body>
   </html>
   
<?php
   }//termina if
   else{
      header("Location: ../admin/index.php?mensaje=error&error=debes logearte para poder accededer al sistema!!!");
   }//termina else
?>
__________________
"Benditos sean todos los libros, pues cuando abres uno, te sumerges en un mundo nuevo y completamente diferente"
  #4 (permalink)  
Antiguo 07/09/2014, 17:34
 
Fecha de Ingreso: enero-2014
Mensajes: 100
Antigüedad: 10 años, 3 meses
Puntos: 0
Información Respuesta: error de redireccion

complementando la pregunta que hice, comparto el codigo con el cual pude solucionar el error:

Código PHP:
<?php
            
if(isset($_GET["salida"])){
               
session_destroy();
               echo 
"
               <script>
                  window.location='../admin/index.php?mensaje=informativo&info=Informativo: haz cerrado la sesion';
                  </script>
               "
;
            }
//termina if
         
?>
he cambiado la forma en que redireccione cambiando el header() de php por un windows.location de javascript y con eso ya no aparece el erro. pero aun asi, me gustaria si pudieran compartirme el por que aparece ese error ya que, segun entiendo pudiera que estubiera chocando con algun otro codigo o me falte agregar algo que yo no vi.
__________________
"Benditos sean todos los libros, pues cuando abres uno, te sumerges en un mundo nuevo y completamente diferente"

Etiquetas: redireccionar
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 11:35.