Foros del Web » Programando para Internet » PHP »

problema con redireccionamiento header

Estas en el tema de problema con redireccionamiento header en el foro de PHP en Foros del Web. Me muestra un error y no redirecciona Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\PRINCIPAL\php\SitiosWeb\TiendaVirt ual\ListaNoticia.php:57) in C:\xampp\htdocs\PRINCIPAL\php\SitiosWeb\TiendaVirt ual\Comentarios.php ...
  #1 (permalink)  
Antiguo 11/05/2013, 19:11
Avatar de CMushroom  
Fecha de Ingreso: diciembre-2011
Ubicación: Morelos
Mensajes: 99
Antigüedad: 12 años, 3 meses
Puntos: 1
Pregunta problema con redireccionamiento header

Me muestra un error y no redirecciona

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\PRINCIPAL\php\SitiosWeb\TiendaVirt ual\ListaNoticia.php:57) in C:\xampp\htdocs\PRINCIPAL\php\SitiosWeb\TiendaVirt ual\Comentarios.php on line 54

este es el codigo que debe redireccionar despues de un comentario

Código PHP:
<?php 
include('Fecha.php');

include (
'Conexion.php');
$Seleccion mysql_query('SELECT * FROM comentarios WHERE NoticiasID = "'.$_GET["NoticiasID"].'" ')or die(mysql_error());
include (
'CerrarConexion.php');

$TotalComentarios mysql_num_rows($Seleccion);
    {
    echo 
'<h2><center>'.$TituloCategoria.'</center></h2>';
    }
$NumeroMensaje 0;

?><div class = "Comentarios"><?php
if($TotalComentarios == 0)
    {
    echo 
'Nadie ha comentado';
    }
else
    {
    while(
$Registro mysql_fetch_array($Seleccion))
        {
        include(
'FiltroComentarios.php');
        
$NumeroMensaje ++;

        echo 
'<hr /><div align = "left">'.$Registro['fecha'].'</div><div align = "right">Mensaje #'.$NumeroMensaje.'</div>';
        echo 
'<img class = "shadow" src = "'.$Registro['foto'].'" height = "82"/><br>';  
        echo 
$Registro['usuario'].'<br>';
        echo 
'Dijo: '.$TextoFiltrado.'<hr>';
        }
    }
    
if(isset(
$_POST['usuario']) && isset($_POST['firma']))
    {
    
$Mensaje htmlentities(trim(ucfirst($_POST['firma'])));

    include (
'Conexion.php');
    
$Seleccion mysql_query('SELECT * FROM comentarios WHERE usuario = "'.$_SESSION['nombreUsuario'].'" && NoticiasID = "'.$_GET["NoticiasID"].'" && firma = "'.$Mensaje.'" ');
    include (
'CerrarConexion.php');
    
    
$Registro mysql_fetch_array($Seleccion);
        
    if(
$Mensaje == $Registro['firma'])
        {
        echo 
'Comentario ya publicado';    
        }
    else
        {
        include (
'Conexion.php');
        
$Insercion mysql_query('INSERT INTO comentarios (usuario, foto, firma, fecha, ip, id, NoticiasID) VALUES ("'.$_SESSION['nombreUsuario'].'", "'.$_SESSION['foto'].'", "'.$Mensaje.'", "'.$fechayhora.'", "'.$_SERVER["REMOTE_ADDR"].'", "'.$_SESSION["id"].'", "'.$_GET["NoticiasID"].'")')or die(mysql_error()); 
        include (
'CerrarConexion.php');
                
        
header('location: index.php');
        }    
    }
?></div><?php

if(isset($_SESSION['nombreUsuario']))
    {    
    
?>
    <center>
        <form name = "FormularioComentarios" action = "" method = "POST">
            <table>
                <tr>
                    <td align = "right"><br />
                          <label for = "usuario"></label>
                        <input type = "text" name = "usuario" value = "<?php echo $_SESSION['nombreUsuario']; ?>" size = "66" READONLY/>
                      </td>
                  </tr>
                <tr>        
                    <td align = "right"><br />
                        <label for = "usuario"></label>
                        <textarea name = "firma" cols = "50" rows = "7"></textarea>
                     </td>
                  </tr>
                <tr>        
                    <td align = "right"><br />
                        <input type = "submit" name = "Accion" value = "Enviar" />
                        <input type = "reset" name = "Accion" value = "Borrar"> 
                      </td>
                   </tr> 
              </table>
        </form>
        <br />
    </center>    
    <?php 
    
}
?>
aqui redirecciona pero con el id por get vuelve a mostrar la pagina del comentario ya con el comentario nuevo mostrandose

<!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">
<head>
<title>Base WebMagazine</title>
<meta charset = utf-8>
<meta name = "description" content="revista web con los mejores articulos"/>
<meta name = "keywords" content="articulos,ciencia,arte,cultura,tecnologia ,eventos,morelos,cuernavaca,uaem"/>
<link rel="shortcut icon" href="" type="image/x-icon"/>
<link rel="stylesheet" type="text/css" href="css/estilo.css"/>
</head>

<body>
<div class = "Cabecera">
<?php include('Header.php');?>
</div>

<div class = "BarraLateralIzquierda">
<div = "ContenidoBarraIzquierda">
<?php include('ListaCategoria.php');?>
<?php include('Administrador.php');?>
</div>
</div>

<div class = "ContenedorPrincipal">
<?php include('Buscador.php');?>
<?php include('ListaNoticia.php');?>
</div>

<div class = "BarraLateralDerecha">
<?php include('Buscador.php');?>
</div>

<div class = "Footer">
<?php include('Footer.php');?>
</div>
</body>
</html>

e sustituido la linea del header por esta linea y asi si lo hace bien, pero no quiero usar javascript para redireccionar, que esta mal.

$url_actual = "http://" . $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];
echo "<script>window.location = '".$url_actual."';</script>";
  #2 (permalink)  
Antiguo 11/05/2013, 19:22
 
Fecha de Ingreso: diciembre-2007
Mensajes: 19
Antigüedad: 16 años, 4 meses
Puntos: 1
Respuesta: problema con redireccionamiento header

solo un consejo para redireccionar con el header no debe haber ningún texto html o espacio antes del header es un detalle que encontré mientras programaba
  #3 (permalink)  
Antiguo 11/05/2013, 22:49
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: problema con redireccionamiento header

Si al menos intentarás usar antes el buscador del foro o incluso Google sabrías que ese error es tremendamente común, y tremendamente básico, tal como te comenta@tuxito18, cuando usas header(), session_start() o cualquier función que manipule las cabeceras debe estar antes de CUALQUIER salida/impresión hacia el navegador...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)

Etiquetas: formulario, header, html, mysql, redireccionamiento, registro, select, sql
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:31.