Foros del Web » Programando para Internet » PHP »

Problema con redirección usando Header

Estas en el tema de Problema con redirección usando Header en el foro de PHP en Foros del Web. Hola. Tengo un pequño problemilla, lo que sucede es que tengo en una pagina una sección que me permite actualizar unos datos, la idea es ...
  #1 (permalink)  
Antiguo 14/12/2008, 10:20
Avatar de Coala  
Fecha de Ingreso: marzo-2007
Ubicación: Chile/Santiago
Mensajes: 150
Antigüedad: 17 años, 1 mes
Puntos: 0
Problema con redirección usando Header

Hola.
Tengo un pequño problemilla, lo que sucede es que tengo en una pagina una sección que me permite actualizar unos datos, la idea es que luego de que se me mandan a actualizar me redireccione a la pagina principal, para ello ocupo la funcion "header" (header('Location: maestro_inicio.php')). Pero el problema se presenta cuando me dirigo a esa pagina la que me actualiza abajo tengo el siguiente mensaje:
"Warning: Cannot modify header information - headers already sent by (output....)" justo apuntando en la linea que tengo la redirreción. si bien me actualiza y me redirecciona, está ese mensaje siempre y se veo mal.

mi codigo es el siguiente:



Código PHP:
<?php
            
//Conexion a la Base de Datos.
            
$conexion mysql_connect(localhost,root,'') or die ('Error de conexion, el error es : '.mysql_error());
            
//Seleccion de la Base de Datos.
            
mysql_select_db(municipio,$conexion) or die ('Error de selecion de Base de Datos, el error es :'.mysql_error());
            
$consulta 'SELECT comuna_cod FROM comuna WHERE comuna_nom = "'.$_POST['comuna'].'"';
            
//Ejecución de consulta
            
$resultado mysql_query($consulta,$conexion) or die ('Error en la consulta SQL, el error es : '.mysql_error());
            
//Extraccion del dato.
            
$comuna mysql_fetch_row($resultado);
            
//Confeccion de la consulta SQL.            
            
$consulta 'update vecino set VEC_RUT="'.$_POST['rut'].'",VEC_DV="'.$_POST['dv'].'",VEC_NOM="'.$_POST['nombre'].'",VEC_APE_PAT="'.$_POST['paterno'].'",VEC_APE_MAT="'.$_POST['materno'].'",VEC_EDAD ="'.$_POST['edad'].'",VEC_ANO ="'.$_POST['nacimiento'].'",VEC_SEX ="'.$_POST['sexo'].'",VEC_PAS ="'.$_POST['pasaje'].'",VEC_NUM ="'.$_POST['numero'].'",VEC_POB ="'.$_POST['villa'].'",COMUNA_COD ="'.$comuna[0].'",VEC_FONO ="'.$_POST['fono'].'",VEC_CORREO ="'.$_POST['correo'].'",VEC_CLAVE ="'.$_POST['clave'].'" where VEC_RUT = "'.$_POST['rut'].'"';
            
//echo"$consulta";
            //Ejecución de consulta 
            
mysql_query($consulta,$conexion) or die ('Error en la consulta SQL, el error es : '.mysql_error());            
            
//Redirección
            //header("Location: adm_maestro_vecino.php");            
            
echo '</form>';
            
header('Location: maestro_inicio.php.php'); // aqui da el warning
?>
En donde tengo que colocar ese header?


Muchas Gracias
  #2 (permalink)  
Antiguo 14/12/2008, 10:30
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Problema con redirección usando Header

Código PHP:
echo '</form>'
header('Location: maestro_inicio.php.php'); // aqui da el warning 
No se puede imprimir absolutamente nada antes de una CABECERA.
  #3 (permalink)  
Antiguo 14/12/2008, 10:46
Avatar de Coala  
Fecha de Ingreso: marzo-2007
Ubicación: Chile/Santiago
Mensajes: 150
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Problema con redirección usando Header

Cita:
Iniciado por Ronruby Ver Mensaje
Código PHP:
echo '</form>'
header('Location: maestro_inicio.php.php'); // aqui da el warning 
No se puede imprimir absolutamente nada antes de una CABECERA.
si eso lo habia leido pero no me quedo claro al 100%, Y entonces como tendria que ser, acaso debo habrir otro bloque php y colocar el header dentro?
  #4 (permalink)  
Antiguo 14/12/2008, 10:58
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Respuesta: Problema con redirección usando Header

Para que muestras el <form> si vas a redireccionar instantáneamente? En en código así como está no sirve para nada y podrías quitarlo, solucionaría el problema del warning.


Saludos.
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #5 (permalink)  
Antiguo 14/12/2008, 11:36
Avatar de Coala  
Fecha de Ingreso: marzo-2007
Ubicación: Chile/Santiago
Mensajes: 150
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Problema con redirección usando Header

Ese </form> esta ahí por que es para cerrar el formulario que tengo mas arriba. Por eso esta ahí.
  #6 (permalink)  
Antiguo 14/12/2008, 11:58
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Problema con redirección usando Header

Pero, tu aplicación no tiene logica. ¿Para que imprimir el formulario si vas a redireccionar?
  #7 (permalink)  
Antiguo 14/12/2008, 12:20
Avatar de Coala  
Fecha de Ingreso: marzo-2007
Ubicación: Chile/Santiago
Mensajes: 150
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Problema con redirección usando Header

Por que lo que deseo, es que una vez que se realizo la operación, no se quede en la misma pagina.

¿O estoy mal como deseo hacerlo?

Gracias.
  #8 (permalink)  
Antiguo 14/12/2008, 12:24
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Problema con redirección usando Header

Lo ideal es:

Código PHP:
<?php
//Todo el codigo PHP aqui
if(isset($_POST['botonSubmit'])) {
  
//accion a realizar cuando se hace submit al formulario
  //al terminar, usas header("Location: loquesea.php");
}
?>
<html>
<head></head>
<body>
<!-- Codigo del formulario aqui -->
<!-- asi al hacer submit al formulario, se ejecuta el codigo PHP (antes de cualquier salida HTML) y luego si hubo exito, se redirecciona sin ningun warning -->
</body>
</html>
Pero tambien hay una manera de poder enviar cabeceras despues de haber impreso algo:

Código PHP:
<?php
//al principio de tu pagnia
ob_start();
//al final
ob_end_flush();
?>
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 19:29.