1. ¡OFERTA! con cupón "DIRVPS": hosting por $0,01 y también VPS Linux y Windows por $0,01 el primer mes por Interserver ← publi
    Descartar aviso
Descartar aviso
Al usar este sitio web, aceptas que nosotros y nuestros socios podamos establecer cookies para fines tales como personalizar el contenido y la publicidad. Más información.

Error PHP: Warning: Cannot modify header information - headers already sent by

Tema en 'Programación y Diseño Web' iniciado por Apolo, 22 Ago 2006.

  1. Apolo

    Apolo Administrador Miembro del Staff Administrador CH

    El mensaje de error completo puede ser similar a este:

    Warning: Cannot modify header information - headers already sent by (output started at ...

    Ver también:

    Warning: session_start(): Cannot send session cache limiter - headers already sent

    Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by

    Solución 1

    Este error se presenta habitualmente porque en el script PHP existen espacios o caracteres extraños antes o después del código PHP.

    Para solucionarlo, debe revisar que no existan espacios, saltos de línea o caracteres antes de:

    <?

    (donde comienza el script PHP)

    Y que no existan también después de:

    ?>

    (donde finaliza el script o archivo PHP)

    Incluso esa etiqueta de cierre de código se puede omitir, no es necesaria.

    Esto debe hacerse en el script que está generando el error. Sabrá cuál es pues el mensaje de advertencia menciona el script o archivo que está generando el error.

    Solución 2

    En algunas ocasiones el error puede aparecer porque la configuración de PHP en el servidor tiene activa (en On) la directiva display_errors

    Al apagar (poner en Off) la directiva display_errors, el error puede desaparecer. Esta directiva se puede modificar mediante un archivo .htaccess o php.ini. Mediante .htaccess, se puede hacer poniendo una línea de este modo:

    php_value display_errors "Off"

    Ante alguna duda, lo más recomendable es pedir asistencia al proveedor de hosting o a la persona encargada de la administración del servidor o cuenta de hosting.

    Solución 3

    session_start() debe ser ejecutado antes de cualquier salida HTML porque envía headers HTTP al navegador. Pida a un desarrollador en PHP que edite el código para solucionarlo.
     
  2.  
  3. SilveraR

    SilveraR __EXPULSADO__

    Genial, como dije antes, es interesante saber los problemas y sus soluciones.

    Muchas gracias Apolo.
     
  4. vramirez

    vramirez Nuevo usuario

    He encontrado una posible solución a este error también, resulta que tenía algunas instrucciones "echo" q estaba imprimiendo en el navegador (haciendo como un debug o algo asi)...esto tambn genera el error....
     
  5. munix

    munix Usuario activo

    Muy buena respuesta. Este error suele presentarse muchas veces. :afirmar:
     
  6. DEmilio

    DEmilio Usuario activo

    muchas gracias
     
  7. Apolo

    Apolo Administrador Miembro del Staff Administrador CH

    Hola vramirez,

    Te doy la bienvenida a ComunidadHosting.

    Si pudieras describir con detalle por qué se presenta el error y/o cómo lo solucionaste, con gusto editaré mi mensaje para incluir tu aporte.

    Saludos!
     
  8. goosfancito

    goosfancito Nuevo usuario

    Hola a todos!

    Che. la opcion de "ocultar los mensajes" hasta donde es conveniente?... creo que una programacion sin errores a la larga trae menos problemas...

    Con respecto a una de las respuestas que decia "resulta que tenía algunas instrucciones "echo"" ésta es justamente la que tenia en mi caso. Como dice el "compañero" (dirian los políticos) saque el "echo" y andub/vo de 10.

    Paso a describir lo que tenia, por las dudas que a otro le pase.

    en el main.php tenia justamente esto:

    Y ese echo "paso por aca" es el que me traia el problema. asi que lo mande al carajo (parte mas alta de un barco) y andubo.

    Gracias.!
     
  9. Apolo

    Apolo Administrador Miembro del Staff Administrador CH

    Hola goosfancito,

    Te doy la bienvenida a ComunidadHosting.

    Saludos. :aprueba:
     
  10. JONYLBCD

    JONYLBCD Nuevo usuario

    Hola soy nuevo aqui y pues estoy creando una pagina pero al querer poner como refencia la pagina donde me llevara no me jala y me muestra el error que comentan

    Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\compuservicios\require\link.inc.php:86) in C:\AppServ\www\compuservicios\php\captura.php on line 42

    lescomento que el archivo "link.inc.php"

    es donde tengo todas mis referencias a mis paginas es el que utiliza mi menu para estar incluiendo las paginas a una misma pagina no se si me explico ya que tengo una pagina llamada index.php el cual el contenido va hacer
    un <?php include ($pagina);?> el cual el contenido va hacer diferente cada cuando se preciona un boton de mi menu y no me ha estado funcionando
     
  11. ideasmultiples

    ideasmultiples Usuario activo

    Estás escribiendo algo en pantalla desde la línea 86 de C:\AppServ\www\compuservicios\require\link.inc.php ese es el motivo del error, revísa tu código
     
  12. JONYLBCD

    JONYLBCD Nuevo usuario

    gracias por la respuesta cheque lo de la linea 86 y pues tenia un espacio y un enter despues de la etiqueta de cierre de php ?> se lo quite pero siempre me muestra el mismo error en la pagina index pero en la linea 9 y pues alla no tengo codigo php solo los link de mis estilos que utiliza mi pagina y antes de eso no imprimo nada

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\AppServ\www\compuservicios\index.php:9) in C:\AppServ\www\compuservicios\php\captura.php on line 3

    Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\compuservicios\index.php:9) in C:\AppServ\www\compuservicios\php\captura.php on line 41


    mi pagina index tiene codigo php en la primera linea que es este y es el unico
    <?php require('require/link.inc.php');?>

    dentro de tengo <body><?php include($pagina);?></body>
    el include lo hace cuando seleciono unos mis menus

    que lo tengo en una lista como esta

    <li><a href="index.php?numlink=1"><span>INICIO</span></a></li>
    <li><a href="index.php?numlink=2"><span>PRODUCTOS</span></a></li>

    que cada cuando le doy click me incluye la pagina dentro de index

    esto es parte lo que tiene 'require/link.inc.php'

    $numlink = @$_GET["numlink"];
    switch ($numlink)
    {
    case 1 :
    $pagina = "php/productos.php";
    break;
    case 2 :
    $pagina = "php/productos.php";
    break;
    }
     
  13. ideasmultiples

    ideasmultiples Usuario activo

    Cuando programas tienes que tener siempre una premisa, que el que se equivoca es el programado no el compilador.

    Si te indica que en esa línea se está escribiendo algo búscalo bien, ten la seguridad que el error es tuyo no del lenguaje, revísalo bien.
     
  14. copernico.es

    copernico.es Usuario activo

    Ciertamente es así, aunque casi siempre se le hecha la culpa al servidor, incluso muchas veces el cliente intenta que el proveedor de host haga de programador o desarrollador solucionándole el problema por la cara... muy habitual...

    Atentamente,
     
  15. Apolo

    Apolo Administrador Miembro del Staff Administrador CH

  16. JONYLBCD

    JONYLBCD Nuevo usuario

    GRACIAS por la bienvenida y ya me lei los temas de los cuales me indicas

    y creo que la respuesta hacerta es la siguiente

    " El error pasa, cuando hay un include, require, antes de la función, es mejor que la añadan en las primeras lineas del codigo."

    ya que en mi index tengo un "require" y un "include" el cual es la forma como lo tengo creado y el "include me sirve para agregar en el index la pagina donde me marca el error"

    quisiera saber si tiene alguna solucion ya que en la forma como utilizo mi web necesitos del require y del include; o hay una mejor forma de realizarlo gracias de antemano
     
  17. manguiti

    manguiti Nuevo usuario

    no lo veo...

    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...

    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:
    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...


    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!!
     
  18. Minervah

    Minervah Usuario activo

  19. alejandrog95

    alejandrog95 Nuevo usuario

    Cannot modify header information

    Hola Minervah:
    Estuve leyendo un poco porque también tengo el mismo problema y no entiendo a qué te referís.
    Tengo una pagina en PHP que comienzo con
    PHP:
    <?php 
    session_start
    (); 
    ?> 
    Luego viene código HTML

    y luego de cerrar con </html> viene...

    PHP:
    <?php
    $nombre 
    $_POST['nombre'];
    $mail $_POST['mail'];
    $telefono $_POST['telefono'];
    $direccion $_POST['direccion'];
    $CP $_POST['CP'];
    $localidad $_POST['localidad'];
    $provincia $_POST['provincia'];

    $comollego $_POST['comollego'];
    $horarios $_POST['horarios'];
    $comentarios $_POST['comentarios'];

    // Guardo las variables de sesión
    $_SESSION['nombre'] = $usuario;
    $_SESSION['mail'] = $mail;
    $_SESSION['telefono'] = $telefono;
    $_SESSION['direccion'] = $direccion;
    $_SESSION['CP'] = $CP;
    $_SESSION['localidad'] = $localidad;
    $_SESSION['provincia'] = $provincia;

    $_SESSION['comollego'] = $comollego;
    $_SESSION['horarios'] = $horarios;
    $_SESSION['comentarios'] = $comentarios;

    //redirecciono a la siguiente página
    header('Location: ventaspaso2.php');
    ?>
    El error que trae, es el clásico
    Warning: Cannot modify header information - headers already sent by (output started at I:\FerozoWebHosting\perelohomme.com.ar\public_html\ventaspaso1.php:88) in I:\FerozoWebHosting\perelohomme.com.ar\public_html\ventaspaso1.php on line 163

    en la línea 88 tengo...
    <input name="telefono" type="text" height="15" id="telefono" value="" size="30" tabindex="3">

    y en la 163
    header('Location: ventaspaso2.php');

    Como verás, no estoy enviando nada antes del header()...¿ por qué entonces persiste el error ?

    Conocés como puedo arreglarlo, por favor ? :crap:
    Muchas Gracias
     
  20. ideasmultiples

    ideasmultiples Usuario activo

    Si te da ese error ten por seguro que si envías algo, busca un espacio, un retorno de carro o algo así en el texto.

    Y hay que quitarse la mania de cuando no se encuentra un error, echarle la culpa al compilador o al software y aprender que el que se equivoca y hace mal las cosas es el programador no el sistema. :lol:
     
  21. Minervah

    Minervah Usuario activo

    Ese "input name" es código html, se está enviando al navegador del visitante.

    La función header en PHP funciona así, es una redirección, debe enviarse en la cabecera de la respuesta http, por tanto debe ser lo primero que envíes al navegador del visitante, no puedes enviar nada antes del header, ni un espacio ni una coma, nada.

    Si no te sirve header tendrás que pensar en otra forma de hacerlo, pero header funciona así.
     


Alojamiento web, Hosting Reseller, Servidores Dedicados - All in Hosting


    
    
    
    
Blog · Sitios amigos: GuiaHosting · Unidominios · Interalta ·