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 :

headers already sent by


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Août 2010
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1
    Par défaut headers already sent by
    j ai toujours cette message d'erreur 'Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\bci\tete.php:6) in c:\program files\easyphp1-8\www\bci\connexion.php on line 55'
    Merci d'avoir m'aider

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    <?php include("tete.php"); ?>
                     <div class="art-content">
              <div class="art-Post">
                <div class="art-Post-body">
                  <div class="art-Post-inner">
                <br><br>            
    <p class="title">Connexion</p>
    <h4>Cette page vous permet de vous connecter en tant que un opérateur ou un administrateur</h4>
    <form action="index.php" method="post" >
    <?php if(isset($_COOKIE["PSEUDO"])){
    ?>
    <input type="button" name="deco" value="deconnexion" onClick="location.href='deconnexion.php'" class="bot">
        <?php } ?><br>
    Pseudo: <input type="text" name="pseudo" /><br /><br />
    Mot de passe:<input type="password" name="pwd" value=""/><br /><br />
    <input type="submit" value="Se connecter" class="bot"><br />
     
    <br><br><br>
    <?php
    if (isset($_POST['pseudo']) AND isset($_POST['pwd'])){
    if ($_POST['pseudo'] != NULL AND $_POST['pwd'] != NULL){
     $pseudo = htmlentities ($_POST['pseudo']);
      $pwd = htmlentities ($_POST['pwd']);
    mysql_connect("localhost", "root", " ") ;
    mysql_select_db("stage");
    $res1 = mysql_query("select * from operateurs;");
    while($tab = mysql_fetch_array($res1) AND ($pseudo != $tab['pseudo']) AND ($pwd != $tab['pwd']));
    if(($pseudo == $tab['pseudo']) AND ($pwd == $tab['pwd'])){
    setcookie("PSEUDO", $tab["pseudo"], time()+3600, "/");
            header('Location: index.php');
            }
            else ?>  <script type="text/javascript"> alert( 'le pseudo ou/et mot de passe n\'existe(s) pas');
            </script> 
            <?php } 
            }
    ?>
     
                <?php if(isset($_COOKIE["ADMIN"])){
                ?>
     
     
                      <?php } ?>
          <br><br><br><br>
          <?php if(isset($_COOKIE["ADMIN"])){
                ?>
     
     
    </form>
    <br><br><br>
    <?php
    if (isset($_POST['pwd'])){
    if ($_POST['pwd'] != NULL){
      $pwd = $_POST['pwd'];
    mysql_connect("localhost", "root", "");
    mysql_select_db("stage");
    $res1 = mysql_query("select * from admin;");
    while($tab = mysql_fetch_array($res1))
    if($pwd == $tab['pwd']){
    setcookie("ADMIN", $tab["pwd"], time()+3600, "/");
            header("Location: index.php");
            }
            else 
            echo 'le mot de passe n\'existe pas';
             } 
            }
    ?>   <?php } ?> <br><br><br>
    <br><br><br><br><br><br>
    <br>
     
                    <div class="cleared"></div>
                  </div>
                </div>
              </div>
              <?php include("bas.php");?>

  2. #2
    Rédacteur
    Avatar de Halleck
    Homme Profil pro
    Consultant PHP
    Inscrit en
    Mars 2003
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Consultant PHP

    Informations forums :
    Inscription : Mars 2003
    Messages : 597
    Par défaut
    Par définition la fonction header() doit s'utiliser AVANT d'avoir envoyé au navigateur client le mondre contenu (texte, html...). Tu dois te débrouiller pour, par exemple, faire des header() au début de ton code uniquement

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2010
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2010
    Messages : 77
    Par défaut
    ça veut dire qu'il ne faut avant ce header ne pas faire la moindre mise en page! Ce que tu fais. Comme dis au dessus le header ne doit pas etre au milieu.
    A la limite met ceci ça fera l'affaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?
    echo '<script language="Javascript">
    <!--
    document.location.replace("$www");
    // -->
    </script>';
    ?>

  4. #4
    Membre éprouvé
    Inscrit en
    Juillet 2009
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 156
    Par défaut
    Le header ne gène pas dans le code qu'il a posté, l'erreur est ailleurs, car il exécute le header a la suite d'une requête donc dans le principe rien n'a encore été envoyé par le serveur...

  5. #5
    Rédacteur
    Avatar de Halleck
    Homme Profil pro
    Consultant PHP
    Inscrit en
    Mars 2003
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Consultant PHP

    Informations forums :
    Inscription : Mars 2003
    Messages : 597
    Par défaut
    Citation Envoyé par Ze AzAr Voir le message
    Le header ne gène pas dans le code qu'il a posté, l'erreur est ailleurs, car il exécute le header a la suite d'une requête donc dans le principe rien n'a encore été envoyé par le serveur...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     <div class="art-content">
              <div class="art-Post">
                <div class="art-Post-body">
                  <div class="art-Post-inner">
                <br><br>
     
    (...)
    header('Location: index.php');
    On a donc du contenu envoyé au client avant le header, sans gestion du buffer de sortie pour corriger ça. D'après le code posté, le header() gène dans le code. après sans indentation correcte, difficile de savoir si c'est celui là qui cloche, mais dans tous les cas ce code est incorrect)

  6. #6
    Membre Expert
    Avatar de Mahefasoa
    Homme Profil pro
    Manager IT
    Inscrit en
    Octobre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Manager IT

    Informations forums :
    Inscription : Octobre 2003
    Messages : 835
    Par défaut
    Bonjour,

    Concrètement, comme tu as deux blocs de test qui aboutissent sur une redirection, pourquoi ne pas les mettre avant include("tete.php"); ?
    Il s'agit des deux blocs suivants:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
        if (isset($_POST['pseudo']) AND isset($_POST['pwd'])){
            if ($_POST['pseudo'] != NULL AND $_POST['pwd'] != NULL){
                $pseudo = htmlentities ($_POST['pseudo']);
                $pwd = htmlentities ($_POST['pwd']);
                mysql_connect("localhost", "root", " ") ;
                mysql_select_db("stage");
                $res1 = mysql_query("select * from operateurs;");
                while($tab = mysql_fetch_array($res1) AND ($pseudo != $tab['pseudo']) AND ($pwd != $tab['pwd']));
                if(($pseudo == $tab['pseudo']) AND ($pwd == $tab['pwd'])){
                    setcookie("PSEUDO", $tab["pseudo"], time()+3600, "/");
                    header('Location: index.php');
                }
                else 
                    echo "<script type='text/javascript'> alert( 'le pseudo ou/et mot de passe n\'existe(s) pas');</script>";
            } 
        }
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
        if (isset($_POST['pwd'])){
            if ($_POST['pwd'] != NULL){
                $pwd = $_POST['pwd'];
                mysql_connect("localhost", "root", "");
                mysql_select_db("stage");
                $res1 = mysql_query("select * from admin;");
                while($tab = mysql_fetch_array($res1))
                if($pwd == $tab['pwd']){
                    setcookie("ADMIN", $tab["pwd"], time()+3600, "/");
                    header("Location: index.php");
                }
                else 
                    echo 'le mot de passe n\'existe pas';
            } 
        }
    Ainsi, ton code ressemblerait à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    <?php
        if (isset($_POST['pseudo']) AND isset($_POST['pwd'])){
            if ($_POST['pseudo'] != NULL AND $_POST['pwd'] != NULL){
                $pseudo = htmlentities ($_POST['pseudo']);
                $pwd = htmlentities ($_POST['pwd']);
                mysql_connect("localhost", "root", " ") ;
                mysql_select_db("stage");
                $res1 = mysql_query("select * from operateurs;");
                while($tab = mysql_fetch_array($res1) AND ($pseudo != $tab['pseudo']) AND ($pwd != $tab['pwd']));
                if(($pseudo == $tab['pseudo']) AND ($pwd == $tab['pwd'])){
                    setcookie("PSEUDO", $tab["pseudo"], time()+3600, "/");
                    header('Location: index.php');
                }
                else 
                    echo "<script type='text/javascript'> alert( 'le pseudo ou/et mot de passe n\'existe(s) pas');</script>";
            } 
        }
     
        if (isset($_POST['pwd'])){
            if ($_POST['pwd'] != NULL){
                $pwd = $_POST['pwd'];
                mysql_connect("localhost", "root", "");
                mysql_select_db("stage");
                $res1 = mysql_query("select * from admin;");
                while($tab = mysql_fetch_array($res1))
                if($pwd == $tab['pwd']){
                    setcookie("ADMIN", $tab["pwd"], time()+3600, "/");
                    header("Location: index.php");
                }
                else 
                    echo 'le mot de passe n\'existe pas';
            } 
        }
     
        include("tete.php"); 
    ?>
    <div class="art-content">
        <div class="art-Post">
            <div class="art-Post-body">
                <div class="art-Post-inner">
                    <br><br>            
                    <p class="title">Connexion</p>
                    <h4>Cette page vous permet de vous connecter en tant que un opérateur ou un administrateur</h4>
                    <form action="index.php" method="post" >
                        <?php if(isset($_COOKIE["PSEUDO"])){ ?>
                        <input type="button" name="deco" value="deconnexion" onClick="location.href='deconnexion.php'" class="bot">
                        <?php } ?><br>
                        Pseudo: <input type="text" name="pseudo" /><br /><br />
                        Mot de passe:<input type="password" name="pwd" value=""/><br /><br />
                        <input type="submit" value="Se connecter" class="bot"><br />
                        <br><br><br>
                    </form>
                    <br><br><br>
                    <br><br><br>
                    <br><br><br><br><br><br>
                    <br>
                    <div class="cleared"></div>
                </div>
            </div>
        </div>
    <?php include("bas.php");?>
    ... avec quelques corrections de ta part.

    Bien cordialement,

Discussions similaires

  1. [PHP-JS] problème headers already sent
    Par charlene44 dans le forum Langage
    Réponses: 12
    Dernier message: 14/06/2006, 13h55
  2. Réponses: 11
    Dernier message: 11/05/2006, 11h16
  3. [Cookies] cookies et 'headers already sent'
    Par wellser dans le forum Langage
    Réponses: 5
    Dernier message: 26/04/2006, 13h37
  4. [Cookies] Warning : headers already sent
    Par arti2004 dans le forum Langage
    Réponses: 8
    Dernier message: 04/04/2006, 16h31
  5. [JpGraph] Header already sent
    Par grunk dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 09/02/2006, 16h54

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