Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probleme avec header

Sujet résolu
    2 septembre 2021 à 20:23:05

    Bonjour,

    je rencon tre un petit probleme de header.

    voici le message d'erreur:

    Warning: Cannot modify header information - headers already sent by (output started at /srv/web/plateforme-immo/header.php:49) in /srv/web/plateforme-immo/connexion.php on line 49

    j'ai regardé et je n 'au aucun espace ou probleme a cet endroit du cocede, je vous le met pour confirmer.

    <ul class="navbar-nav me-auto mb-2 mb-lg-0">
                                            <li class="nav-item">
                                        <?php if(isset($_SESSION['nom'])){ ?>
                                                <a class="nav-link" href="#"><img class="ico-allign" src="bs-icons/bootstrap-icons-1.5.0/person-fill.svg" alt="Bootstrap" width="12" height="12">Bienvenue <?php echo $_SESSION['nom'] ?></a>
                                            </li>
                                            <li class="nav-item">
                                                <a class="nav-link" href="foncphp/deconnect.php"><img class="ico-allign" src="bs-icons/bootstrap-icons-1.5.0/person-fill.svg" alt="Bootstrap" width="12" height="12">Déconnexion</a>
                                            <?php } else { ?>
                                                <a class="nav-link" aria-current="page" href="connexion.php"><img class="ico-allign" width="12" height="12" src="bs-icons/bootstrap-icons-1.5.0/lock-fill.svg" >Connexion</a><?php } ?></li>
                                            <li class="nav-item">
                                            <a class="nav-link" href="creationcompte.php"><img class="ico-allign" src="bs-icons/bootstrap-icons-1.5.0/person-fill.svg" alt="Bootstrap" width="12" height="12">Créer un compte gratuit</a>
                                            </li>
                                            <li class="nav-item dropdown">
                                            <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
                                                Langue
                                            </a>
                                            <ul class="dropdown-menu" aria-labelledby="navbarDropdown">
                                                <li><a class="dropdown-item small" href="#">Français (french)</a></li>
                                                <li><a class="dropdown-item small" href="#">English (US)</a></li>
                                            </ul>
                                            </li>
                                        </ul>


    Merci pour votre aide.

    Cordialement.

    • Partager sur Facebook
    • Partager sur Twitter
      2 septembre 2021 à 20:29:37

      Bonsoir, qui y a t-il à la ligne 49?

      Tu as bien un session_start() en début de fichier?

      • Partager sur Facebook
      • Partager sur Twitter
        2 septembre 2021 à 20:48:25

        Il doit y avoir un header location je pense vu le type d'erreur et tu as du placé des conditions je pense, d'ou le header already sent
        • Partager sur Facebook
        • Partager sur Twitter

        yasakani no magatama

          2 septembre 2021 à 21:56:00

          > Warning: Cannot modify header information - headers already sent by (output started at /srv/web/plateforme-immo/header.php:49) in /srv/web/plateforme-immo/connexion.php on line 49

          En l'absence de codes complets, je traduis le message d'erreur mais ce n'est pas comme s'il y en avait plein le forum : la fonction dite d'entête (header/set(raw)cokie/session_start) située à la ligne 49 du script /srv/web/plateforme-immo/connexion.php ne peut pas fonctionner car le script /srv/web/plateforme-immo/header.php (inclus) a produit avant une sortie (echo ou n'importe quoi en dehors des balises PHP) à sa ligne 49.

          Bref, tu affiches/envoies quelque chose au client avant une fonction d'entête quand tu ne dois pas le faire. Vu les chemins, ça semble être en production donc j'espère que tu testes avant tes scripts sur un environnement de développement dédié où output_buffering est configuré à off pour voir ce genre d'erreur de conception (on fait sa petite cuisine interne avant d'afficher - ou non - quoi que ce soit).

          -
          Edité par julp 2 septembre 2021 à 22:06:19

          • Partager sur Facebook
          • Partager sur Twitter
            3 septembre 2021 à 6:46:20

            Bonjour,

            Merci pour vos retours,

            j'ai bien vi des post concernant header et j ai essayer beaucoup de chose avant de poster.

            <?php
            use PHPMailer\PHPMailer\PHPMailer;
            use PHPMailer\PHPMailer\SMTP;
            use PHPMailer\PHPMailer\Exception;
            session_start();
            include ('connect.php');
            ?>
            <!doctype html>
            <html lang="fr">
              <head>
                <title>Balance ton bien</title>
                <!-- Required meta tags -->
                <meta charset="utf-8">
                <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
            
                <!-- Bootstrap CSS v5.0.2 -->
                <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-KyZXEAg3QhqLMpG8r+8fhAXLRk2vvoC2f3B09zVXn8CA5QIVfZOJ3BCsw2P0p/We" crossorigin="anonymous">    <link rel="stylesheet" href="style.css">
            
                <!-- Bootstrap JavaScript Libraries -->
                <script src="https://code.jquery.com/jquery-3.6.0.min.js" defer ></script>
                <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.2/dist/umd/popper.min.js" defer ></script>
                <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.min.js" defer ></script>
                <script src="script.js" defer></script>
              </head>
              <body>
            
                  <header>
                        <div class="container-fluid">
                            <div class="row min-height-nav">   
                                <div class="col-md-1"></div>
                                <div class="col-6 col-md-5 flex flex-center-v">
                                    <div class=" flex  ">
                                        <h5 id="slogan">Déposez votre annonce sur Balance ton bien gratuitement !</h5>
                                    </div>
                                </div>                  
                                <div class="col-6 col-md-5 flex flex-center-v flex-end">    
                                    <!-- barre de navigation -->   
                                    <nav class="navbar navbar-main navbar-expand-lg navbar-light bg-light size-nav"> 
                                            <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
                                            <span class="navbar-toggler-icon"></span>
                                            </button>
                                            <div class="collapse navbar-collapse" id="">
                                                <ul class="navbar-nav me-auto mb-2 mb-lg-0">
                                                    <li class="nav-item">
                                                    <?php if(isset($_SESSION['nom'])){ ?>
                                                        <a class="nav-link" href="#"><img class="ico-allign" src="bs-icons/bootstrap-icons-1.5.0/person-fill.svg" alt="Bootstrap" width="12" height="12">Bienvenue <?php echo $_SESSION['nom'] ?>
                                                        </a>
                                                    </li>
                                                    <li class="nav-item">
                                                        <a class="nav-link" href="foncphp/deconnect.php"><img class="ico-allign" src="bs-icons/bootstrap-icons-1.5.0/person-fill.svg" alt="Bootstrap" width="12" height="12">Déconnexion</a>
                                                    <?php } else { ?>
                                                        <a class="nav-link" aria-current="page" href="connexion.php"><img class="ico-allign" width="12" height="12" src="bs-icons/bootstrap-icons-1.5.0/lock-fill.svg" >Connexion</a></li>
                                                    <?php } ?>


            Output_buffering est bien sur off et je suis bien en local.

            Merci encore pour votre aide.

            Cordialement.

            • Partager sur Facebook
            • Partager sur Twitter
              3 septembre 2021 à 10:55:43

              Bonjour, poste egalement le code du fichier que tu inclus dans la page
              • Partager sur Facebook
              • Partager sur Twitter

              yasakani no magatama

                3 septembre 2021 à 11:44:49

                Bonjour,

                Ci dessous le fichier inclus:

                <?php
                    $host = "localhost";
                    $name = "****";
                    $password = "*********";
                    $database = "db_plateforme_immo";
                    $conn = new mysqli($host,$name,$password,$database);
                ?>



                • Partager sur Facebook
                • Partager sur Twitter
                  3 septembre 2021 à 12:02:39

                  Ca ne correspond en rien : le message d'erreur parlait d'une fonction d'entête en ligne 49 et d'une sortie en ligne 49 aussi (mais fichier différent) or des codes donnés, il n'y a aucune fonction d'entête à la ligne 49 et le code HTML commence à la ligne 8 pas 49 (si encore c'était lui cette sortie, ce qui reste à déterminer).

                  PS : tu ne devrais pas terminer tes fichiers par ?> (celui avec ta connexion surtout vu que tu vas le require partout), s'il y a le moindre caractère après la balise de fin, tu es justement susceptible rencontrer cette erreur. D'autant que sur Unixoïde les éditeurs ont tendance à rajouter un \n à la fin du fichier quand il n'y en a pas.

                  -
                  Edité par julp 3 septembre 2021 à 13:32:37

                  • Partager sur Facebook
                  • Partager sur Twitter
                    4 septembre 2021 à 22:36:58

                    Bonsoir Julp,

                    Merci pour ton aide,

                    Je viens de retirer les ?> a la fin de mes fichiers mais le problème persiste.

                    • Partager sur Facebook
                    • Partager sur Twitter
                      4 septembre 2021 à 23:12:50

                      oublie pas aussi que session start se place tout au dessus du code
                      • Partager sur Facebook
                      • Partager sur Twitter

                      yasakani no magatama

                        4 septembre 2021 à 23:30:09

                        Bonjour,

                        plus qu'a faire du "die('toto');" ligne par ligne

                        • Partager sur Facebook
                        • Partager sur Twitter
                          4 septembre 2021 à 23:49:45

                          Bonjour,

                          je ne sais pas ce que veut dire le die toto ?

                          • Partager sur Facebook
                          • Partager sur Twitter
                            4 septembre 2021 à 23:52:03

                            tu peux remplacer par "tutu" ou "tata" ou "titi", il s'agit simplement de texte lambda. regarde la doc de la fonction
                            • Partager sur Facebook
                            • Partager sur Twitter
                              4 septembre 2021 à 23:53:41

                              Bonsoir, quand tu ne connais pas une fonction tu vas voir dans la doc => https://www.php.net/die

                              • Partager sur Facebook
                              • Partager sur Twitter
                                5 septembre 2021 à 9:32:30

                                Bonjour,

                                Je vais lire la doc mais je ne comprend pas comment l utiliser.

                                la fonction me renvoi juste ce que j ai écrie.

                                Pouvez vous me dire comment utiliser cette fonction svp.

                                merci de votre aide

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  5 septembre 2021 à 10:07:57

                                  Bonjour,

                                  >> la fonction me renvoi juste ce que j ai écrie.

                                  Oui c'est pourquoi ce qui est écrit dedans n'a aucune importance.

                                  Tu l'utilises pour déboguer ton code et trouver la ligne fautive qui te crée l'erreur que tu indiques plus haut. 

                                  Une sorte de pas à pas si tu préfères.   

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    5 septembre 2021 à 11:23:16

                                    Mais vous cherchez quoi ? Parce que tout est indiqué dans le message d'erreur et die mettra difficilement en évidence une erreur de ce genre.

                                    J'attendais les codes complets des deux fichiers mentionnés dans l'erreur mais visiblement c'est trop demander. Vous noterez qu'il(elle) a évoqué la fonction header mais qu'il n'y en a aucun dans tout ce qu'il(elle) a donné jusqu'à présent.

                                    Sinon reconfigurer PHP pour passer l'output_buffering à on et on passe à autre chose même si ce serait la pire chose à faire mais visiblement ça convient à beaucoup.

                                    -
                                    Edité par julp 5 septembre 2021 à 11:26:26

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      5 septembre 2021 à 11:27:58

                                      julp a écrit:

                                       Vous noterez qu'il a évoqué la fonction header mais qu'il n'y en a aucun dans tout ce qu'il a donné jusqu'à présent.

                                      Oui et ce n'est pas autre chose que header() qui pourrait provoquer cette erreur??

                                      -
                                      Edité par AbcAbc6 5 septembre 2021 à 11:28:28

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        5 septembre 2021 à 11:29:27

                                        > ce n'est pas autre chose que header() qui pourrait provoquer cette erreur??

                                        Il n'y a que celles-là à émettre des entêtes HTTP :

                                        > [...] la fonction dite d'entête (header/set(raw)cokie/session_start) [...]

                                        Il suffit de suivre le message d'erreur et regarder ce qui se trouve à la ligne 49 de /srv/web/plateforme-immo/connexion.php pour savoir laquelle c'est, bien que c'est l'autre partie de ce message d'erreur qu'il faille considérer pour corriger cette sortie (sauf que ça peut ne pas être trivial en demandant une réorganisation du code). La fonction d'entête concernée, en elle-même, n'a pas d'importance.

                                        -
                                        Edité par julp 5 septembre 2021 à 11:37:44

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          13 septembre 2021 à 13:32:11

                                          Bonjour à tous,

                                          Je vous donne les codes car j'ai toujours l’erreur et toujours perdu

                                          J' ai creer un fichier php que j'ai appelé test.

                                          Voici le message d'erreur:

                                          Warning: Cannot modify header information - headers already sent by (output started at /srv/web/plateforme-immo/header.php:80) in /srv/web/plateforme-immo/test.php on line 3

                                          Voici son contenu:

                                          <?php include 'header.php';
                                          
                                          header('location:contact.php');
                                          die();
                                          ?>

                                          Voici le fichier header jusqu'a la ligne 90 :

                                          <?php
                                          session_start();
                                          
                                          use PHPMailer\PHPMailer\PHPMailer;
                                          use PHPMailer\PHPMailer\SMTP;
                                          use PHPMailer\PHPMailer\Exception;
                                          include 'foncphp/connect.php';
                                          
                                          
                                          
                                          if(isset($_POST['validerconn'])){
                                                                   
                                              // instancier les variables
                                              $email = $_POST['email'];
                                              $mdp = $_POST['mdp'];
                                              $mdp = password_verify($mdp,PASSWORD_DEFAULT);
                                          
                                              $sql ="select count(idUutilisateur) as id where uEmail = '$email' and u_mdp = '$mdp'";
                                              $donne = $conn->query($sql);
                                          
                                              if ($donne == false){
                                                  
                                                  $sqls = "SELECT uNom,uPrenom,uEmail,uMobile FROM utilisateur";
                                                  $requetes = $conn->query($sqls);
                                                  $donnes = $requetes->fetch_assoc();
                                          
                                                  $_SESSION['nom'] = $donnes['uNom'];
                                                  $_SESSION['prenom'] = $donnes['uPrenom'];
                                                  $_SESSION['email'] = $donnes['uEmail'];
                                                  $_SESSION['mobile'] = $donnes['uMobile'];
                                              }
                                          }
                                          ?>
                                          <!doctype html>
                                          <html lang="fr">
                                            <head>
                                              <title>Balance ton bien</title>
                                              <!-- Required meta tags -->
                                              <meta charset="utf-8">
                                              <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
                                          
                                              <!-- Bootstrap CSS v5.0.2 -->
                                              <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-KyZXEAg3QhqLMpG8r+8fhAXLRk2vvoC2f3B09zVXn8CA5QIVfZOJ3BCsw2P0p/We" crossorigin="anonymous">    
                                              <link rel="stylesheet" href="style.css">
                                          
                                              <!-- Bootstrap JavaScript Libraries -->
                                              <script src="https://code.jquery.com/jquery-3.6.0.min.js" defer ></script>
                                              <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.2/dist/umd/popper.min.js" defer ></script>
                                              <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.min.js" defer ></script>
                                              <script src="script.js" defer></script>
                                            </head>
                                            <body>
                                          
                                                <header>
                                                      <div class="container-fluid">
                                                          <div class="row min-height-nav">   
                                                              <div class="col-md-1"></div>
                                                              <div class="col-6 col-md-5 flex flex-center-v">
                                                                  <div class=" flex  ">
                                                                      <h5 id="slogan">Déposez votre annonce sur Balance ton bien gratuitement !</h5>
                                                                  </div>
                                                              </div>                  
                                                              <div class="col-6 col-md-5 flex flex-center-v flex-end">    
                                                                  <!-- barre de navigation -->   
                                                                  <nav class="navbar navbar-main navbar-expand-lg navbar-light bg-light size-nav"> 
                                                                          <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
                                                                              <span class="navbar-toggler-icon"></span>
                                                                          </button>
                                                                          <div class="collapse navbar-collapse" id="">
                                                                              <ul class="navbar-nav me-auto mb-2 mb-lg-0">
                                                                                      <li class="nav-item">
                                                                                      <?php if(isset($_SESSION['nom'])){ ?>
                                                                                          <a class="nav-link"><img class="ico-allign" src="bs-icons/bootstrap-icons-1.5.0/person-fill.svg" alt="Bootstrap" width="12" height="12">Bienvenue <?php echo $_SESSION['nom'] ?> </a>
                                                                                      </li>
                                                                                      <li class="nav-item">    
                                                                                          <a class="nav-link" href="foncphp/deconnect.php"><img class="ico-allign" src="bs-icons/bootstrap-icons-1.5.0/person-fill.svg" alt="Bootstrap" width="12" height="12">Déconnexion</a>
                                                                                      <?php } else { ?>
                                                                                          <a class="nav-link" aria-current="page" href="connexion.php"><img class="ico-allign" width="12" height="12" src="bs-icons/bootstrap-icons-1.5.0/lock-fill.svg" >Connexion</a></li>
                                                                                          <?php } ?>
                                                                                      <li class="nav-item">
                                                                                  <a class="nav-link" href="creationcompte.php"><img class="ico-allign" src="bs-icons/bootstrap-icons-1.5.0/person-fill.svg" alt="Bootstrap" width="12" height="12">Créer un compte gratuit</a>
                                          
                                                                                  </li>
                                                                                  <li class="nav-item dropdown">
                                                                                      <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">Langue</a>
                                                                                      <ul class="dropdown-menu" aria-labelledby="navbarDropdown">
                                                                                          <li><a class="dropdown-item small" href="#">Français (french)</a></li>
                                                                                          <li><a class="dropdown-item small" href="#">English (US)</a></li>
                                                                                      </ul>
                                                                                  </li>


                                          Merci encore

                                          -
                                          Edité par MiaoLee 13 septembre 2021 à 13:32:33

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            13 septembre 2021 à 13:43:46

                                            C'est normal : tu balances du code HTML (lignes 33 à 90 du second script) au client alors que tu veux faire une redirection après quand tu ne devrais pas (ne rien afficher avant). Il faudrait refactoriser le code pour ne rien afficher avant cette redirection.

                                            Il y a vraiment besoin de tout ça dans ce header.php ? (PHPMailer est utilisé par tous tes scripts ? Pourquoi l'identification est gérée par header.php et non un script spécifique ?) Tu devrais scinder cet header.php en 2 avec d'un côté la partie PHP et de l'autre HTML, ainsi, test.php ne devrait inclure que la partie PHP, pas HTML (ici).

                                            Le code contient de multiples erreurs :

                                            • password_verify renvoie un booléen et vérifie si un hash (que tu ne donnes pas) correspond à un mdp
                                            • il y a une injection SQL via $email vu que la requête n'est pas préparée
                                            • if ($donne == false){ est vraie si la requête plante, pas si elle ne renvoie rien / pas de "fetch" pour récupérer ce que renvoie la requête ? Sans peupler $_SESSION non plus ?
                                            • à quoi sert le second SELECT en espèce de fallback ? Attribuer le premier compte qui se présente ?!?
                                            • pas de FROM au premier SELECT ?
                                            • ...

                                            -
                                            Edité par julp 13 septembre 2021 à 15:07:12

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              13 septembre 2021 à 14:50:33

                                              Super merci beaucoup pour ton aide.

                                              Ce'est un de mes premiers site (ca se voit je pesse).

                                              Peut on y aller pas a pas ?

                                              Comment revoir mon code pour la redirection ?

                                              je pense que l'on parle bien de :

                                              <?php if(isset($_SESSION['nom'])){ ?>
                                                    <a class="nav-link"><img class="ico-allign" src="bs-icons/bootstrap-icons-1.5.0/person-fill.svg" alt="Bootstrap" width="12" height="12">Bienvenue <?php echo $_SESSION['nom'] ?> </a>
                                                  </li>
                                                  <li class="nav-item">    
                                                     <a class="nav-link" href="foncphp/deconnect.php"><img class="ico-allign" src="bs-icons/bootstrap-icons-1.5.0/person-fill.svg" alt="Bootstrap" width="12" height="12">Déconnexion</a>
                                                <?php } else { ?>
                                                   <a class="nav-link" aria-current="page" href="connexion.php"><img class="ico-allign" width="12" height="12" src="bs-icons/bootstrap-icons-1.5.0/lock-fill.svg" >Connexion</a></li>
                                                <?php } ?>


                                              Comment puis-je réaliser cette opération stp ?

                                              -
                                              Edité par MiaoLee 14 septembre 2021 à 19:39:26

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                15 septembre 2021 à 19:53:51

                                                Bonsoir,

                                                je ne comprends concernant cette erreur,

                                                J'ai séparé l’entête php comme ceci:

                                                <?php
                                                session_start();
                                                
                                                use PHPMailer\PHPMailer\PHPMailer;
                                                use PHPMailer\PHPMailer\SMTP;
                                                use PHPMailer\PHPMailer\Exception;
                                                include 'foncphp/connect.php';
                                                
                                                
                                                
                                                if(isset($_POST['validerconn'])){
                                                                         
                                                    // instancier les variables
                                                    $mail = $_POST['email'];
                                                    $mdp = $_POST['mdp'];
                                                
                                                    $requete = $conn->prepare($sql ="SELECT uNom, uPrenom, uEmail, uMobile, u_mdp from utilisateur where uEmail = ?");
                                                    $requete->bind_param("s",$mail);
                                                    $requete->execute();
                                                    $requete->bind_result($nom,$prenom, $email, $mobile,$mmdp);
                                                    $requete->fetch();
                                                
                                                    if (password_verify($mdp,$mmdp)){
                                                
                                                        $_SESSION['nom'] = $nom;
                                                        $_SESSION['prenom'] = $prenom;
                                                        $_SESSION['email'] = $email;
                                                        $_SESSION['mobile'] = $mobile;
                                                        
                                                    }
                                                }

                                                du coup le html ca donne:

                                                <?php include 'header2.php' ?>
                                                <!doctype html>
                                                <html lang="fr">
                                                  <head>
                                                    <title>Balance ton bien</title>
                                                    <!-- Required meta tags -->
                                                    <meta charset="utf-8">
                                                    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
                                                
                                                    <!-- Bootstrap CSS v5.0.2 -->
                                                    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-KyZXEAg3QhqLMpG8r+8fhAXLRk2vvoC2f3B09zVXn8CA5QIVfZOJ3BCsw2P0p/We" crossorigin="anonymous">    
                                                    <link rel="stylesheet" href="style.css">
                                                
                                                    <!-- Bootstrap JavaScript Libraries -->
                                                    <script src="https://code.jquery.com/jquery-3.6.0.min.js" defer ></script>
                                                    <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.2/dist/umd/popper.min.js" defer ></script>
                                                    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.min.js" defer ></script>
                                                    <script src="script.js" defer></script>
                                                  </head>
                                                  <body>
                                                
                                                      <header>
                                                            <div class="container-fluid">
                                                                <div class="row min-height-nav">   
                                                                    <div class="col-md-1"></div>
                                                                    <div class="col-6 col-md-5 flex flex-center-v">
                                                                        <div class=" flex  ">
                                                                            <h5 id="slogan">Déposez votre annonce sur Balance ton bien gratuitement !</h5>
                                                                        </div>
                                                                    </div>                  
                                                                    <div class="col-6 col-md-5 flex flex-center-v flex-end">    
                                                                        <!-- barre de navigation -->   
                                                                        <nav class="navbar navbar-main navbar-expand-lg navbar-light bg-light size-nav"> 
                                                                                <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
                                                                                    <span class="navbar-toggler-icon"></span>
                                                                                </button>
                                                                                <div class="collapse navbar-collapse" id="">
                                                                                    <ul class="navbar-nav me-auto mb-2 mb-lg-0">
                                                                                            <li class="nav-item">
                                                                                            <?php if(isset($_SESSION['nom'])){ ?>
                                                                                                <a class="nav-link"><img class="ico-allign" src="bs-icons/bootstrap-icons-1.5.0/person-fill.svg" alt="Bootstrap" width="12" height="12">Bienvenue <?php echo $_SESSION['nom'] ?> </a>
                                                                                            </li>
                                                                                            <li class="nav-item">    
                                                                                                <a class="nav-link" href="foncphp/deconnect.php"><img class="ico-allign" src="bs-icons/bootstrap-icons-1.5.0/person-fill.svg" alt="Bootstrap" width="12" height="12">Déconnexion</a>
                                                                                            <?php } else { ?>
                                                                                                <a class="nav-link" aria-current="page" href="connexion.php"><img class="ico-allign" width="12" height="12" src="bs-icons/bootstrap-icons-1.5.0/lock-fill.svg" >Connexion</a></li>
                                                                                                <?php } ?>
                                                                                            <li class="nav-item">
                                                                                        <a class="nav-link" href="creationcompte.php"><img class="ico-allign" src="bs-icons/bootstrap-icons-1.5.0/person-fill.svg" alt="Bootstrap" width="12" height="12">Créer un compte gratuit</a>
                                                
                                                                                        </li>
                                                                                        <li class="nav-item dropdown">
                                                                                            <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">Langue</a>
                                                                                            <ul class="dropdown-menu" aria-labelledby="navbarDropdown">
                                                                                                <li><a class="dropdown-item small" href="#">Français (french)</a></li>
                                                                                                <li><a class="dropdown-item small" href="#">English (US)</a></li>
                                                                                            </ul>
                                                                                        </li>
                                                                                    </ul>
                                                                                </div>
                                                                        </nav>

                                                Je ne vois pas comment enlever le code php du fichier.

                                                Je pense ne pas avoir compris la réponse.

                                                Merci pour vos précision.




                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  15 septembre 2021 à 19:58:31

                                                  Sauf qu'on ne sait pas à quel fichier correspond le second code ni où et comment il intervient (include). Et il manque surtout le script avec le header de redirection.

                                                  Bref, il faudrait redonner codes (avec le nom/chemin du fichier correspondant) et message d'erreur également, s'il y a toujours une sortie mais qu'elle n'était vraiment plus produite par le code HTML, ça pourrait être tout et n'importe quoi (d'un BOM en début de fichier à un espace/saut de ligne situé en fin d'un script inclus avant par exemple)

                                                  -
                                                  Edité par julp 15 septembre 2021 à 20:00:59

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    16 septembre 2021 à 5:38:23

                                                    oui nbien sur desole, voivi les fichiers

                                                    en premiers le header.php:

                                                    <?php 
                                                        include 'header2.php';
                                                        include 'sessionok.php'; 
                                                    ?>
                                                    
                                                    <!doctype html>
                                                    <html lang="fr">
                                                      <head>
                                                        <title>Balance ton bien</title>
                                                        <!-- Required meta tags -->
                                                        <meta charset="utf-8">
                                                        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
                                                    
                                                        <!-- Bootstrap CSS v5.0.2 -->
                                                        <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-KyZXEAg3QhqLMpG8r+8fhAXLRk2vvoC2f3B09zVXn8CA5QIVfZOJ3BCsw2P0p/We" crossorigin="anonymous">    
                                                        <link rel="stylesheet" href="style.css">
                                                    
                                                        <!-- Bootstrap JavaScript Libraries -->
                                                        <script src="https://code.jquery.com/jquery-3.6.0.min.js" defer ></script>
                                                        <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.2/dist/umd/popper.min.js" defer ></script>
                                                        <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.min.js" defer ></script>
                                                        <script src="script.js" defer></script>
                                                      </head>
                                                      <body>
                                                    
                                                          <header>
                                                                <div class="container-fluid">
                                                                    <div class="row min-height-nav">   
                                                                        <div class="col-md-1"></div>
                                                                        <div class="col-6 col-md-5 flex flex-center-v">
                                                                            <div class=" flex  ">
                                                                                <h5 id="slogan">Déposez votre annonce sur Balance ton bien gratuitement !</h5>
                                                                            </div>
                                                                        </div>                  
                                                                        <div class="col-6 col-md-5 flex flex-center-v flex-end">    
                                                                            <!-- barre de navigation -->   
                                                                            <nav class="navbar navbar-main navbar-expand-lg navbar-light bg-light size-nav"> 
                                                                                    <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
                                                                                        <span class="navbar-toggler-icon"></span>
                                                                                    </button>
                                                                                    <div class="collapse navbar-collapse" id="">
                                                                                        <ul class="navbar-nav me-auto mb-2 mb-lg-0">
                                                                                            <li class="nav-item">
                                                                                                <a class="nav-link" aria-current="page" href="connexion.php"><img class="ico-allign" width="12" height="12" src="bs-icons/bootstrap-icons-1.5.0/lock-fill.svg" >Connexion</a></li>
                                                                                            </li>
                                                                                            <li class="nav-item">
                                                                                                <a class="nav-link" href="creationcompte.php"><img class="ico-allign" src="bs-icons/bootstrap-icons-1.5.0/person-fill.svg" alt="" width="12" height="12">Créer un compte gratuit</a>
                                                                                            </li>
                                                                                            <li class="nav-item dropdown">
                                                                                                <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">Langue</a>
                                                                                                <ul class="dropdown-menu" aria-labelledby="navbarDropdown">
                                                                                                    <li><a class="dropdown-item small" href="#">Français (french)</a></li>
                                                                                                    <li><a class="dropdown-item small" href="#">English (US)</a></li>
                                                                                                </ul>
                                                                                            </li>
                                                                                        </ul>
                                                                                    </div>
                                                                            </nav>



                                                    Le include en debut du fichier header (di dessus) appelle ce fichier (/header2.php):

                                                    <?php
                                                    session_start();
                                                    
                                                    use PHPMailer\PHPMailer\PHPMailer;
                                                    use PHPMailer\PHPMailer\SMTP;
                                                    use PHPMailer\PHPMailer\Exception;
                                                    include 'foncphp/connect.php';
                                                    
                                                    if(isset($_POST['validerconn'])){
                                                                             
                                                        // instancier les variables
                                                        $mail = $_POST['email'];
                                                        $mdp = $_POST['mdp'];
                                                    
                                                        $requete = $conn->prepare($sql ="SELECT uNom, uPrenom, uEmail, uMobile, u_mdp from utilisateur where uEmail = ?");
                                                        $requete->bind_param("s",$mail);
                                                        $requete->execute();
                                                        $requete->bind_result($nom,$prenom, $email, $mobile,$mmdp);
                                                        $requete->fetch();
                                                    
                                                        if (password_verify($mdp,$mmdp)){
                                                    
                                                            $_SESSION['nom'] = $nom;
                                                            $_SESSION['prenom'] = $prenom;
                                                            $_SESSION['email'] = $email;
                                                            $_SESSION['mobile'] = $mobile;
                                                            
                                                        }
                                                    }


                                                    Ivi le fichier ou je teste si la session est active sessionok.php

                                                    <?php if(isset($_SESSION['nom'])){
                                                        header('Location:espace/index.php');
                                                    }
                                                    ?>

                                                    et voici le fichier appelant le header qu j' ai nomé: /test.php

                                                    <?php include 'header.php';
                                                    
                                                    header('location:contact.php');
                                                    die();
                                                    
                                                    ?>

                                                    Message d'erreur:

                                                    Warning: Cannot modify header information - headers already sent by (output started at /srv/web/plateforme-immo/header.php:5) in /srv/web/plateforme-immo/test.php on line 3


                                                    Merci pour ton aide.



                                                    -
                                                    Edité par MiaoLee 16 septembre 2021 à 7:14:32

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      16 septembre 2021 à 7:47:42

                                                      Bonjour,

                                                      au risque de répéter ce qu'ont dit les autres : tu ne dois *pas* avoir de HTML avant ta fonction header('Location'). Ici tu en as puisque header.php en contient, et que tu appelles la fonction header() après.

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter

                                                      Pas d'aide concernant le code par MP, le forum est là pour ça :)

                                                        16 septembre 2021 à 8:52:29

                                                        Bonjour,

                                                        Merci pour ta réponse.

                                                        Y aurait-t-il une autre possibilité de rediriger une page sans utiliser la fonction header ?

                                                        Ca erai pratique dans mon cas.

                                                        Merci.

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          16 septembre 2021 à 8:59:32

                                                          Salut

                                                          Il y en aurait une, mais ce n'est pas considéré comme propre, et suivant les navigateurs cela ne fonctionnera pas. Il est plus courant d'appliquer la logique avant d'afficher, parce que la logique devrait permettre de savoir si on doit afficher quelque chose, si oui quoi, et le cas échéant rediriger ailleurs au lieu d'afficher quelque chose.

                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                            16 septembre 2021 à 9:14:24

                                                            Très bien, je vous remercie tous pour vos réponses et votre aide.

                                                            En effet ma page test en ne mettant pas de HTML la redirection se fait bien.

                                                            pour moi le sujet est résolu.

                                                            Encore merci pour les détails et d'avoir pris le temps pour m'aider.

                                                            Cordialement

                                                            • Partager sur Facebook
                                                            • Partager sur Twitter

                                                            Probleme avec header

                                                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                            • Editeur
                                                            • Markdown