Cannot modify header information [Résolu]

Signaler
Messages postés
20
Date d'inscription
jeudi 30 novembre 2000
Statut
Membre
Dernière intervention
21 mars 2010
-
Messages postés
20
Date d'inscription
jeudi 30 novembre 2000
Statut
Membre
Dernière intervention
21 mars 2010
-
Bonjour à tous,

je viens à vous car je désespère (à peu près ;) ).

J'ai migré mon site sur un nouveau serveur, et je rencontre quelques difficultés, notamment avec le header. Je pense que ca doit venir de la conf apache, mais ca peu venir d'autre mais je vois pas quoi ...

Sur mon serveur A (ancien) cela marche niquel et sur le N (new) non il me met l'erreur :
Warning: Cannot modify header information - headers already sent by (output started at /var/www/inf_user.php:1) in /var/www/backend/functions.php on line 33

Il faudra noté que c'est une pop-up (au cas ou si la page père envoie les envoie à la popup).

Voici les bout de code :

inf_user.php:
<?
require_once("backend/functions.php");
//require_once("themes/NB-TSpy/block.php");
dbconn();

loggedinonly();
?>[...]

functions.php: 
function dbconn($autoclean = false) {
global $mysql_host, $mysql_user, $mysql_pass, $mysql_db, $THEME, $LANGUAGE, $site_config;

if (!ob_get_level()) {
if (extension_loaded('zlib') && !ini_get('zlib.output_compression'))
ob_start('ob_gzhandler');
else
ob_start();
}

header("Content-Type: text/html;charset=$site_config[CHARSET]");

if (!function_exists("mysql_connect"))
die("MySQL support not available.");

    if (!@mysql_connect($mysql_host, $mysql_user, $mysql_pass))
    {
      die('DATABASE: mysql_connect: ' . mysql_error());
    }
     mysql_select_db($mysql_db)
        or die('DATABASE: mysql_select_db: ' . mysql_error());

unset($mysql_pass); //security

    userlogin(); //Get user info	

//Get language and theme


la ligne 33 de function est "header("Content-Type: text/html;charset=$site_config[CHARSET]");"


Je ne vois pas de quoi cela viens ... C'est très étrange.

Amicalement Rian

5 réponses

Messages postés
2381
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
16
Alors il faut chercher dans tes fichiers de configuration.
Il faut être à iso-configuration. Faut un compare de tes fichiers php.ini, httpd.conf et j'en passe.
S.
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Salut,

... j'allais poster la même réponse que Syndrael avant de lire son post ("php Cannot modify header information" dans google => 2 300 000 résultats !!)

Commence dans un premier temps par t'assurer que toutes les erreurs sont bien affichées en ajoutant (uniquement pour le debug) tout en haut de tes scripts :
ini_set('display_errors', 1);
error_reporting(-1);


Tu as peut être un avertissement qui n'est pas affiché, comme le <? (à remplacer par <?php)


Cordialement,

Kohntark -
Messages postés
2381
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
16
As-tu cherché sur ce site ? As-tu cherché sur Google ?
Honnêtement ce problème a été posé au moins 200 fois, avec à chaque fois soit une réponse soit mon discours..
Donc cherche si tu n'as pas un retour-chariot caché ou autre caractère que tu n'aurais pas vu.
Le Header fournit une erreur quand il est demandé après qu'il y ait écriture dans ta page.
S.
Messages postés
20
Date d'inscription
jeudi 30 novembre 2000
Statut
Membre
Dernière intervention
21 mars 2010

Je n'ai PAS MODIFIER le fichier entre la migration pourquoi marche t-il sur un serveur et pas sur un autre ?

Et oui malheureusement pour moi j'ai déjà cherché, j'ai pas pour habitude de poster sur un forum dès la 1er interrogation car il faut attendre les réponses des gens ;)

Mais la si je poste, c'est que je suis a cours d'idées. Désolé
Messages postés
20
Date d'inscription
jeudi 30 novembre 2000
Statut
Membre
Dernière intervention
21 mars 2010

Je vous remercie pour ces info, surtout pour le debugage ... A vrai dire j'en ai pas eu besoin, mais je suppose que c'était ca en effet, mon précédent serveur devait être plus laxiste, et il n'affiché pas les avertissements et laissé passé, mais sur mon nouveau serveur apache, il n'a pas laissé passé l'erreur en effet, il n'a pas aimé l'ordre de certaines lignes dans mon code qui a mon avi en debugant, ca m'aurai permis de m'en rendre compte.

Je vous remercie donc pour votre support, et syndrael, a mon avi, ca viens soit de la version apache, soit de la conf en effet, je n'ai pas encore tout comparé mais c'est claire que ca doit venir de la puisque il a laissé cette erreur sur mon ancien.

Amicalement