IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Hearders already send by


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2014
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Janvier 2014
    Messages : 89
    Par défaut Hearders already send by
    Bonjour

    Je sollicite votre regard, car je bloque
    Voilà le code que j'envoie au serveur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $urlcomplement = '&FiltrPasse='.$FiltrPasse.$urlcompmail;
    // Ancre
    $urlcomplement .= $ancre;
    Header('Location:.'  . $_SERVER ['PHP_SELF'] . "?id_bull=".$bull->id.$urlcomplement);
    exit();
    Et le résultat dans l'écran
    Warning: Cannot modify header information - headers already sent by (output started at /home/...../core/lib/functions.lib.php:7968) in /home...../inscription.php on line 540
    Il y a une ligne blanche avant le Warning.
    Mes différents tests, grâce à des points d'arrêts) me font penser que c'est Header qui ajoute cette ligne blanche (<br> dans le code html)

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <html><head></head><body><br>
    <b>Warning</b>:  Cannot modify header information - headers already sent by (output started at /home/..../core/lib/functions.lib.php:7968) in <b>/home...../cglinscription/inscription.php</b> on line <b>540</b><br>
    </body></html>

    Je ne comprend pas pourquoi cette ligne vide, l'appel à Header ne contenant pas d'espace dans les paramètres.
    J'espère avoir été claire.
    Est-ce que quelqu'un a déjà trouvé cette situation? Et pourrait m'aider?

    Un grand Merci
    Claude

  2. #2
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    Bonjour

    Je n'ai jamais utilisé un header pour une redirection aussi... j'ai été voir la doc https://www.php.net/manual/fr/function.header.php

    Ton code semble correct toutefois une bêtise : as-tu bien mis le tag <?php comme première ligne de ton source ?

  3. #3
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 368
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 368
    Billets dans le blog
    17
    Par défaut
    Il y a une ligne blanche avant le Warning.
    Cela veut dire qu'il y a une ligne blanche à supprimer quelque part dans ton script, ou un script inclus, qui empêche la redirection.

    Cela peut être par exemple un script de fonctions inclus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
        // ...
    ?>
    (ligne blanche en fin de script)

  4. #4
    Membre confirmé
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2014
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Janvier 2014
    Messages : 89
    Par défaut
    @Seb, Merci du conseil, je suis en train de vérifier.
    Il y a plusieurs fichiers dans mon code, et deux avaient des lignes blanches après la fin du pavé php.
    Mais cela ne suffit pas. Je cherche donc encore.

    Ce qui est étonnant, c'est que le même code présente ce blocage quand il est hébergé à distance. Quand il est en local, il n'y a pas de blocage, même pas un avertissement Warning.
    Si cela parle à quelqu'un?

    Claude

  5. #5
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 713
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 713
    Par défaut
    regardez la partie du message "output started at ...". cela indique dans quel fichier et à quelle ligne quelque chose a été envoyé.

  6. #6
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 368
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 368
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par Claude30120 Voir le message
    @Seb, Merci du conseil, je suis en train de vérifier.
    Il y a plusieurs fichiers dans mon code, et deux avaient des lignes blanches après la fin du pavé php.
    Mais cela ne suffit pas. Je cherche donc encore.
    Il peut aussi y avoir le BOM UTF-8 en début de fichier qui pose problème (3 caractères invisibles \xEF\xBB\xBF), si jamais tu enregistres tes scripts avec ce dernier.

    Ce qui est étonnant, c'est que le même code présente ce blocage quand il est hébergé à distance. Quand il est en local, il n'y a pas de blocage, même pas un avertissement Warning.
    Si cela parle à quelqu'un?
    Il peut y avoir un "output buffering" en local, et pas sur l'hébergement distant.

  7. #7
    Membre confirmé
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2014
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Janvier 2014
    Messages : 89
    Par défaut
    @Mathieu
    Merci du conseil. Cela m'a permis de trouver le fil de la recherche efficace.
    Je veux aussi ici, indiquer qu'une routine PHP m'a été très utile debug_print_backtrace, pour afficher la pile des fonctions qui aboutissaient au plantage.
    Chez moi, c'était une erreur de fonction.

    Un grand merci à tous
    Claude

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [FPDF] FPDF error: Some data has already been output, can't send PDF file
    Par dolfy dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 17/10/2008, 16h37
  2. [phpToPDF] Erreur d'affichage:Some data has already been output, can't send PDF file
    Par agbere dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 12/08/2008, 09h19
  3. Réponses: 10
    Dernier message: 19/06/2008, 15h27
  4. [CKEditor] Headers already send
    Par haltabush dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 22/03/2007, 12h13
  5. Erreur : headers already send by
    Par arnolem dans le forum Langage
    Réponses: 7
    Dernier message: 31/10/2005, 12h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo