Foros del Web » Programando para Internet » PHP »

Problema con header(location:...)

Estas en el tema de Problema con header(location:...) en el foro de PHP en Foros del Web. Hola, mi error es el siguiente: Warning: Cannot modify header information - headers already sent by (output started at H:\xampp\htdocs\golftarjeta\estructura.php:17) in H:\xampp\htdocs\golftarjeta\estructura.php on line 103 ...
  #1 (permalink)  
Antiguo 26/02/2008, 03:18
 
Fecha de Ingreso: junio-2007
Ubicación: Cádiz
Mensajes: 369
Antigüedad: 16 años, 9 meses
Puntos: 7
Problema con header(location:...)

Hola, mi error es el siguiente: Warning: Cannot modify header information - headers already sent by (output started at H:\xampp\htdocs\golftarjeta\estructura.php:17) in H:\xampp\htdocs\golftarjeta\estructura.php on line 103

Pero voy a la la linea 17 del archivo en cuestion y no veo nada anormal...

Código PHP:
<?
function do_html_header()
{
// Imprime el encabezado de la página
?>
<html>
<head>
<title>GolfTarjeta</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="description" content="">
<meta name="keywords" content="">
<meta name="robot" content="index,follow">

<link href="css/styles.css" rel="stylesheet" type="text/css">
</head>
<body>
<table width="100%" height="86"  border="0" cellpadding="0" cellspacing="0" background="images/t01.gif" class="tirahbot">
  <tr>
    <td width="195" align="center" valign="middle"><a href="index.asp"><img src="images/logo.png" border="0"></a></td>
    <td width="314">
esta es la linea 17:
Código PHP:
<table width="100%" height="86"  border="0" cellpadding="0" cellspacing="0" background="images/t01.gif" class="tirahbot"
y donde hago el location es aqui: que sería la linea 103 del mismo archivo...


Código PHP:
<?    
}    
    else if (
$dato == 1/* Acceso al formulario de registro*/
            
formulario();
        else if (
$dato == 2/*Valida el formulario de registro enviado*/
            
valida_formulario();
            else if (
$dato == 3){/*Valida el nombre de usuario y la contraseña introducidas y controla el tiempo de sesion*/
                    
if ($_SESSION['estado'] == "logeado")
                       
header("location: adentro.php");
                       else if (
$_SESSION['estado'] == "no logeado")
                               echo 
"<font color='red'>Nombre de Usuario o Contraseña incorrectos</font color><br>";
            }
            else if (
$dato == 4){
                     include(
"tarjeta.htm");
                    }
?>
Veis algun error, gracias de antemano!!
  #2 (permalink)  
Antiguo 26/02/2008, 05:42
 
Fecha de Ingreso: junio-2007
Ubicación: Cádiz
Mensajes: 369
Antigüedad: 16 años, 9 meses
Puntos: 7
Re: Problema con header(location:...)

Por favor no podeis ayudarme??Nadie ve en que puede estar fallando?? Supuestamente es que estoy enviando algo antes de hacer el header, pero no veo ningun salto de linea ni echo antes de eso...Alguna solución??
  #3 (permalink)  
Antiguo 26/02/2008, 07:07
 
Fecha de Ingreso: enero-2007
Mensajes: 272
Antigüedad: 17 años, 2 meses
Puntos: 5
Re: Problema con header(location:...)

Hola:

Trabaja con Output buffering en off, así evitas este problema.

Hasta Luego .-
  #4 (permalink)  
Antiguo 26/02/2008, 07:42
 
Fecha de Ingreso: mayo-2006
Mensajes: 120
Antigüedad: 17 años, 10 meses
Puntos: 3
Re: Problema con header(location:...)

hace lo que te dijo lucas, o mostra todo el archivo, tal cual lo tenes. Entre otras cosas no nos mostras dónde haces la llamada a function do_html_header(). Pone el archivo completo.

Saludos.
__________________
programación php
  #5 (permalink)  
Antiguo 26/02/2008, 07:53
 
Fecha de Ingreso: junio-2007
Ubicación: Cádiz
Mensajes: 369
Antigüedad: 16 años, 9 meses
Puntos: 7
Re: Problema con header(location:...)

Perdon, pero como se pone en off output buffering??he buscado en php.ini pero no me permite cambiarlo ahi....en cuanto a lo de la llamada a do_html_header...tienen todas las paginas la misma estructura solo cambiando el valor de $dato, para que cambie el contenido de éste...la de login sería asi:
Código PHP:
<?
require_once("cont_funciones.php");

do_html_header();

estructura_cuerpo();

cuadro_login();
imagenes();
$dato=3;
contenido($dato);
do_html_footer();
?>
  #6 (permalink)  
Antiguo 26/02/2008, 07:58
Usuario no validado
 
Fecha de Ingreso: julio-2003
Ubicación: <?="www.tuky.cl";?>
Mensajes: 132
Antigüedad: 20 años, 8 meses
Puntos: 4
Re: Problema con header(location:...)

pone ob_start(); en la primera linea de tu archivo
Código PHP:
<?php

ob_start
(); 
require_once(
"cont_funciones.php"); 

do_html_header(); 

estructura_cuerpo(); 

cuadro_login(); 
imagenes(); 
$dato=3
contenido($dato); 
do_html_footer(); 

?>
  #7 (permalink)  
Antiguo 26/02/2008, 08:00
Avatar de exodomental  
Fecha de Ingreso: octubre-2006
Mensajes: 24
Antigüedad: 17 años, 5 meses
Puntos: 0
Re: Problema con header(location:...)

para hacer un redireccionamiento y que funcione no debes imprimir codigo HTML antes del redirrecionamiento o sea antes del header(location: url), ya me ha pasado antes
espero haberte ayudado
Saludos
  #8 (permalink)  
Antiguo 27/02/2008, 03:12
 
Fecha de Ingreso: junio-2007
Ubicación: Cádiz
Mensajes: 369
Antigüedad: 16 años, 9 meses
Puntos: 7
Re: Problema con header(location:...)

Muchas gracias a todos, ya lo solucioné.
  #9 (permalink)  
Antiguo 28/02/2008, 16:19
Avatar de exodomental  
Fecha de Ingreso: octubre-2006
Mensajes: 24
Antigüedad: 17 años, 5 meses
Puntos: 0
Re: Problema con header(location:...)

No de nada, para eso estoy trato de ayudar y sobre todo q me ayuden
Saludos
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 14:12.