PHPCorregir error de "Warning: Cannot modify header information"

Corregir error de “Warning: Cannot modify header information”

-

- Advertisment -

Haciendo un Script en PHP quise redireccionar al cliente y me doy con la sorpresa que me genera el siguiente error y no redirecciona, este es un error que generalmente lo encuentras cuando llamas a un archivo de funciones usando require o similar:

Warning: Cannot modify header information – headers already sent by (output started at /home/miweb/funciones.php:144) in /home/miweb/index.php on line 239

luego de leer mucho en internet definitivamente el problema es que en algún momento estoy enviando un echo, o print o un dato al cliente y al tratar de redireccionar me lanza el error

luego de buscar un poco mi código me todo con lo siguiente en el archivo de funciones.php

<?//Todo el contenido del archivo en PHP
?>

y encontré cual era el bendito problema 😀

A simple vista no hay error pero en mi caso (y supongo que a muchas personas) es que luego de cerrar el ?> hay un espacio en blanco el cual cuando hago el require_once o include lo interpreta como código HTML (se envía un dato y por tanto la cabecera) y cuando luego hago la redirección pues genera el error

67 COMENTARIOS

  1. A mi me paso que en lapriimera linea en vez de esto “” estaba esto “”

    al no cargar el “require_once” me daba el fallo, lo modifique y se soluciono…
    les dejo ese detalle que me hizo dreamweaver trabajando con un servidor de pruebas.

  2. La verdad eso se soluciona con incluir las siguientes llamadas en el inicio y fin del código respectivamente, después de la etiqueta de inicio de php y antes de la de cierre de php:

    ob_start();
    ob_end_flush();

    eso soluciona el problema y se evita estar mirando con microscopio el código…

  3. Gracias Me quedo como anillo al dedo por poco destruia mi blog por un pequeñito erro me ayudo bastante y mi blog sigue funcionando normal.

  4. QUE ONDA AMIGOS ENCONTRE EL PROBLEMA… ESE ERROR APARECE POR UTILIZAR EL HEADER PUES LO PUEDEN SOLUCIONAR ACTIVANDO EL display=on en el servidor en directivas locales quitando el display=off o la manera mas sencillaa es no utilizar el header(location: ) , yo utilize un script se los paso :
    echo (” location.href=’encuesta.php?id=1′”);

  5. Ayuda por favor!. este mensaje me sale solo en el aplicativo subido al website, pero en local no tengo ese problema. a que puede deberse? Les resumo: desde una pagina de login debe redirigirse al index. Me toca reescribir “index.php” luego que el logueo es exitoso.

  6. hola amigos, podrian ayudarme, no encuentro ningun espacio (no lo veo) que programa puedo utilizar para comprobar que no haya otro error, la pagina andaba normalmente hace aproximadamente 10 dias, y desde ayer que no puedo ingresar, ni al wp-admin, ni al sitio, desde ya muchas gracias por cualquier dato que puedan brindarme

  7. amigos ya borre todos los espacion antes y despues de la web pero siguio igual ya modifique a ansi la pagina pero me sigue saliendo el error..ayuda porfa..no estoy usando wordpress ni ningun otro sino un codigo que me paso un amigo de un blod propio

  8. Hermano, te comento, que tal cual: un espacio al lado del berraco cierre de php.

    Lo tenaz del tema es que en el wamp funcionaba perfectamente, pero al subirlo al servidor que es IIS no funcionaba.

    Nuevamente muchas gracias!

  9. Excelente post!
    diría yo que todo programador PHP ha pasado o tendrá que pasar por esta incomoda situación.
    Aunque para mi esta no fue la solución, me sirvió para guiarme y seguir en la busqueda, que como resultado encontré esto: http://blog.mandanwebs.com/wordpress/soluciones-para-el-error-warning-modify-header-information-headers/
    y la segunda opcion de ese blog fue mi solucion.
    (aclaro que no es mi blog y no estoy haciendo spam, sencillamente quiero compartir acá lo que a mi me sirvió)
    -Saludos colegas.

  10. Lo unico que me funciono fue reemplazar la hearder(Location: etc etc etc); por llamadas oportunas a la siguiente funcion:

    function redirect($url,$seconds){
    $ss = $seconds * 1000;
    $comando = “window.setTimeout(‘window.location=”.chr(34).$url.chr(34).”;’,”.$ss.”);”;
    echo ($comando);
    }

  11. Gracias los amo!!! me funcionó el link de Jhon y la del salto de línea en el archivo funciones.php de mi tema con eso quedó perfecto 🙂

  12. Encontré la solición a este problema que me tomó más de 15 horas seguidas poder resolver.
    Se agradecen los post con las alternativas de solución pero nada de eso me resultó.
    Finalmente logré identificar que el problema está en los archivos de idioma. La solución es copiar el archivo que está en Inglés, pegarlo en la carpeta de Español y editarlo completo desde el server (en mi caso uso FileZilla), sin bajarlo porque ahí se enreda todo.
    Espero que les sirva!
    CE.

  13. Colegas me pasé 2 horas buscando el error y no lo encontraba, ya estaba por rendirme, inclusive estaba pensando en usar las funciones del colega: fahren, pero quise insistir porque estuvo funcionando bien hasta hacía unas horas y no podía ser otra cosa que yo mismo hubiera movido algo; así que dándole la última leída a mi archivo de conexión (yo uso Dreamweaver y este programa guarda este archivo en una carpeta: Connections )
    POR FIN me di cuenta que antes de la etiqueta de apertura: <?PHP había un espacio y no lo había visto antes 🙁
    Lo borré y quedó solucionado

    estaba así:
    <?php
    ……..
    en lugar de estar así:
    <?php
    ……..

    Saludos

  14. Bueno en mi comentario anterior parece que el sistema borró el espacio que yo había dejado como ejemplo antes de la etiqueta <?php
    bueno pero ya se entiende, quise ser más ilustrativo.
    Saludos.

  15. yo no tengo espacios luego del codigo y sigo teniendo ese error. No se qué será. Aun no esta interfiriendo en el funcionamiento del sitio web asi que supongo que no molestará, no?

  16. No se imaginan cuanto cambie, modifique, reescribí, reorganice por todo el programa, lo revise, dormía volvía a revisar etc..etc.. etc..Muchas Muchas Gracias……

  17. En mi caso, tengo mucha programación, y al igual que varios de los comentarios que he leído, me aseguré de no tener espacios antes ni después de las aperturas y cierres del php.
    La solución que encontré, por si a alguien le sirve, fue usar JavaScript en vez de php; a continuación el código:

    $_SESSION[‘seccion’] = 1; //Propio de mi sistema
    ?>
    Si su navegador no lo redirecciona, haga clic AQUI
    window.location=”/index.php”;
    <?php
    } // continuación de mi sistema

    Espero que a alguien le sirva la idea

    Saludos

  18. buenas a todos..
    miren quisiera que me ayuden con este problema: tengo un sitio web que permite descargar archivos .zip desde una base de datos, lo que pasa es cuando doy clic en bajar el archivo(que está en la BD de un campo longblob) me abre el archivo en la misma pagina pero con basuras y lo que quiero es que me levante para descargar el archivo… lo intenté desde localhost y ahi si me funciona, pero cuando está en el sitio web ahi no me funciona y se me habre solo basura.. xfa sus ayudas es importante

    • ya, para eso debes poner la cabecera del tipo de archivo y forzar la descarga:
      header(“Content-Transfer-Encoding: binary”);
      header(“Content-type: application/octet-stream”);
      header(“Content-Disposition: attachment; filename=$file”);
      header(“Content-Length: $size”);
      de ahi ya lo imprimes en pantalla

  19. Muchísimas gracias hermano, me estaba volviendo loco con eso. Ya le había rezado a todos los dioses del olimpo por respuestas. Te lo agradezco sinceramente.

  20. Excelente. Más de dos años después de que este post se escribiera, me ha sacado de un buen apuro durante un cambio de servidor. La página se mostraba bien, pero me salía el dichoso error cuando entraba al wp-admin.
    Muchas gracias.

  21. Hola en mi caso era el ultimo tema el que no me permitia ingresar al dashboard, primero me conecte por FTP y cambie a “define(‘WP_DEBUG’, true);” en el archivo wp-config.php, al recargar la pagina me aparecio un mensaje como:
    Warning: Cannot modify header information – headers already sent by (output started at /home/xxx/public_html/wp-content/themes/spicy/functions/template-tags.php:41) in /home/xxx/public_html/wp-login.php on line 424

    Aca pude notar que en la carpeta themes hace referencia a “spicy”, el ultimo tema activado, por lo que me dirigi hacia esa carpeta y la renombre como “spicy_temporal”, al recargar la pagina de login pude ingresar al dashboard..! (ojo: el archivo lo baje a mi pc, los modifico con notepad++, y si el server es linux deben utilizar “Editar/Conversión de fin de linea/formato UNIX”).

  22. por mas que busque el error jamás lo encontré, lo que hice fue copiar y pegar el código en notepad y guardarlo con codificación ANSI y listo, me he topado con espacios en blanco anteriormente y eso también es un error, así que si todo tu código está bien, intenta lo de notepad. Saludos

    • me pasaba lo mismo, no encontraba el error y abri el wp-config.php con notepad, guarde con codigo ANSI y subir el archivo por FPT y ahroa funciona… Menos mal que ya estaba desesperado!

DEJA UNA RESPUESTA

Por favor ingrese su comentario!
Por favor ingrese su nombre aquí

Últimas Noticias

WordPress – Crear BBCODE o shortcode personalizados

Los BBCODES o "shortcode" son esas funciones que tiene Wordpress y que se usan con corchetes, que generalmente te...

WordPress – Enviar título de la página o campo oculto, en Contact Form 7

Problema: Tengo un cliente que tiene una web con muchos productos y en todas sus páginas usa el mismo formulario...

Laravel – Modo Debug según IP

En algunos casos se necesita el modo DEBUG según IP, por ejemplo cuando estamos en producción y tenemos un...

Reemplazar URLs cuando cambias de dominio en WordPress (también de http a https)

Cuando haces un cambio de dominio por alguna razón (antes te llamabas www.viejodominio.com y ahora www.nuevodominio.com) si bien ya...
- Advertisement -

Como ejecutar comandos Artisan desde consola Git

Voy a suponer que ya tienen instalado el composer y php de manera global y un proyecto en Laravel....

Ejecutar Composer y/o PHP de manera Global en Windows

Si por alguna razón al instalar Composer este no funciona desde cualquier ruta estando en linea de comandos (ya...

Debe leer

- Advertisement -

También podría gustarteRELACIONADA
Recomendada para usted