Comment mettre plusieurs headers sur une même page php ?

Résolu
fabi00 Messages postés 82 Statut Membre -  
fabi00 Messages postés 82 Statut Membre -
Bonjour,

En fait j'essaie de faire un formulaire de devis express avec trois fenêtres modales sur une même page PHP. Étant donné que j'utilise plusieurs headers, à la compilation je me mange un petit warning : Cannot modify header information - headers already sent. Est-ce qu'il existerait un moyen de mettre plusieurs headers sur la même page ?

Merci d'avance ^^

Je suis nouveau, je ne sais pas comment ça fonctionne, je vais essayer d'envoyer mon code ici...

<body>
	<a href="#demo1">Devis Express</a>
	
	<!--Formulaire 1 -->
	<div id="demo1" class="modal1">
		<div class="modal_content1">
			<h1>Votre demande de devis</h1>
			<p>Faite votre demande de devis en seulement quelques clics !</br></br></br></p>
			<h2>Vos besoins (Total de 10 pièces minimum)</h2>
			<form action="" method="post">
				<p>
					<label for="modele">Modèle</label>
						<select name="modele" id="modele"/>
							<option>T-shirts</option>
							<option>Sweat-shirts</option>
							<option>Pulls</option>
						</select>
					
					<label for="quantite">Quantité</label>	
					<input type="number" name="quantite" id="quantite" min="10" value="<?php if (isset($_POST['quantite'])){echo $_POST['quantite'];} ?>"/>
					<br></br>	
				</p>

				<p>
					<label for="taille">Taille</label>
						<select name="taille" id="taille"/>
							<option>XS</option>
							<option>S</option>
							<option>M</option>
							<option>L</option>
							<option>XL</option>
						</select>
			
					<label for="couleur">Couleur</label>
						<select name="couleur" id="couleur">
							<option value="bleu">bleu</option>
							<option value="rouge">rouge</option>
							<option value="vert">vert</option>
						</select>
				</p>
				
				<p>
					<input type="submit" name="suivant" value="Suivant"/> 
				</p>
						
			</form>
		
		<?php
		
			//Si on appuie sur le bouton "suivant"
			if(isset($_POST['suivant'])){
				//On récupère les données dans $_POST
					
					$modele=$_POST['modele'];
					$taille=$_POST['taille'];
					$couleur=$_POST['couleur'];
					$quantite=$_POST['quantite'];
		
					//On définit des variables de session
					$_SESSION['modele'] = $modele;
					$_SESSION['taille'] = $taille;
					$_SESSION['couleur'] = $couleur;
					$_SESSION['quantite'] = $quantite;
					
				 if($quantite == false){
					 echo "<h4>Veuillez ajouter une quantité</h4>";
				 }
				 else{
					// On va sur le formulaire 2
					header ('Location: #demo2');
					die();
				 }
			}
		?>
		
		 <a href="#" class="modal_close1">×</a>
		</div>
	</div>
	
	<!--Formulaire 2 -->
	<div id="demo2" class="modal2">
		<div class="modal_content2">
			<h1>Votre demande de devis</h1>
			<p>Faite votre demande de devis en seulement quelques clics !</br></br></br></p>
			<h2>Infos supplémentaires pour impression</h2>
				<form action="" method="post">
					<p>
						<label for="qualite">Qualité</br></label>
						<select name="qualite" id="qualite">
							<option>Promotionnel/1er prix</option>
							<option>Meilleur rapport qualité / prix</option>
							<option>Haut de gamme</option>
						</select>
					</p>
		
					<p>
						<label for="zone">Zone de personnalisation</br></label>
						<select name="zone" id="zone">
							<option>Coeur</option>
							<option>Dos</option>
							<option>Manche</option>
						</select>
					</p>
		
					<p>
						<label for="impression">Technique d'impression</br></label>
						<select name="impression" id="impression">
							<option>DTG</option>
							<option>Transfert quadri</option>
							<option>Sérigraphie</option>
							<option>Flex Flock</option>
							<option>Broderie</option>
							<option>Sublimation</option>
						</select>
					</p>
		
					<p>
						<label for="fichier">Importez vos fichiers ici</br></label>
						<input type="file" id="fichier" name="fichier" accept="image/png, image/jpeg, .ai,
						.eps, .pdf, .svg">
					</p>
		
					<p>
						<input type="submit" name="retour1" value="Précèdent"/>
						<input type="submit" name="suivant1" value="Suivant"/>
					</p>
				</form>
	
					<?php
						//Si on appuie sur le bouton "suivant"
						if(isset($_POST['suivant1'])){
							//On récupère les données dans $_POST
								$qualite=$_POST['qualite'];
								$zone=$_POST['zone'];
								$impression=$_POST['impression'];
								$fichier=$_POST['fichier'];
								
								// On va sur le formulaire 3
								header('Location: #demo3');
								die();
								//header('Location: suite2.php');
								
								//On définit des variables de session
								$_SESSION['qualite'] = $qualite;
								$_SESSION['zone'] = $zone;
								$_SESSION['impression'] = $impression;
								$_SESSION['fichier'] = $fichier;
						}
						
						//Si on appuie sur le bouton "Précèdent"
						if(isset($_POST['retour1'])){
							// On va sur la formulaire 1
							header('Location: #demo1');
							die();
						}
					?>
		<a href="#" class="modal_close2">×</a>
		</div>
	</div>


</body>

1 réponse

  1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour,

    Ce n'est pas un souci du "nombre" de header ... mais un souci d'ordre de ton code.
    L'instruction header ne doit pas se trouver APRES un affichage ( que ça soit du code html ou des echo en php)..

    De toutes façons.. prends l'habitude de placer le maximum de code php AVANT tout ton code html..
    En gros
    <?php
    
    		
    //Si on appuie sur le bouton "suivant"
    if(isset($_POST['suivant'])){
      //On récupère les données dans $_POST
        
        $modele=$_POST['modele'];
        $taille=$_POST['taille'];
        $couleur=$_POST['couleur'];
        $quantite=$_POST['quantite'];
    
        //On définit des variables de session
        $_SESSION['modele'] = $modele;
        $_SESSION['taille'] = $taille;
        $_SESSION['couleur'] = $couleur;
        $_SESSION['quantite'] = $quantite;
        
       if($quantite == false){
         echo "<h4>Veuillez ajouter une quantité</h4>";
       }
       else{
        // On va sur le formulaire 2
        header ('Location: #demo2');
        die();
       }
    }
    
    //Si on appuie sur le bouton "suivant"
    if(isset($_POST['suivant1'])){
      //On récupère les données dans $_POST
        $qualite=$_POST['qualite'];
        $zone=$_POST['zone'];
        $impression=$_POST['impression'];
        $fichier=$_POST['fichier'];
        
        // On va sur le formulaire 3
        header('Location: #demo3');
        die();
        //header('Location: suite2.php');
        
        //On définit des variables de session
        $_SESSION['qualite'] = $qualite;
        $_SESSION['zone'] = $zone;
        $_SESSION['impression'] = $impression;
        $_SESSION['fichier'] = $fichier;
    }
    
    //Si on appuie sur le bouton "Précèdent"
    if(isset($_POST['retour1'])){
      // On va sur la formulaire 1
      header('Location: #demo1');
      die();
    }
    ?>
    <!Doctype html>
    <html>
      <head>
        <!-- le code de ton head -->
    
      </head>
      <body>
        <a href="#demo1">Devis Express</a>
        
        <!--Formulaire 1 -->
        <div id="demo1" class="modal1">
          <div class="modal_content1">
            <h1>Votre demande de devis</h1>
            <p>Faite votre demande de devis en seulement quelques clics !</br></br></br></p>
            <h2>Vos besoins (Total de 10 pièces minimum)</h2>
            <form action="" method="post">
              <p>
                <label for="modele">Modèle</label>
                  <select name="modele" id="modele"/>
                    <option>T-shirts</option>
                    <option>Sweat-shirts</option>
                    <option>Pulls</option>
                  </select>
                
                <label for="quantite">Quantité</label>	
                <input type="number" name="quantite" id="quantite" min="10" value="<?php if (isset($_POST['quantite'])){echo $_POST['quantite'];} ?>"/>
                <br></br>	
              </p>
    
              <p>
                <label for="taille">Taille</label>
                  <select name="taille" id="taille"/>
                    <option>XS</option>
                    <option>S</option>
                    <option>M</option>
                    <option>L</option>
                    <option>XL</option>
                  </select>
            
                <label for="couleur">Couleur</label>
                  <select name="couleur" id="couleur">
                    <option value="bleu">bleu</option>
                    <option value="rouge">rouge</option>
                    <option value="vert">vert</option>
                  </select>
              </p>
              
              <p>
                <input type="submit" name="suivant" value="Suivant"/> 
              </p>
                  
            </form>
           <a href="#" class="modal_close1">×</a>
          </div>
        </div>
        
        <!--Formulaire 2 -->
        <div id="demo2" class="modal2">
          <div class="modal_content2">
            <h1>Votre demande de devis</h1>
            <p>Faite votre demande de devis en seulement quelques clics !</br></br></br></p>
            <h2>Infos supplémentaires pour impression</h2>
              <form action="" method="post">
                <p>
                  <label for="qualite">Qualité</br></label>
                  <select name="qualite" id="qualite">
                    <option>Promotionnel/1er prix</option>
                    <option>Meilleur rapport qualité / prix</option>
                    <option>Haut de gamme</option>
                  </select>
                </p>
          
                <p>
                  <label for="zone">Zone de personnalisation</br></label>
                  <select name="zone" id="zone">
                    <option>Coeur</option>
                    <option>Dos</option>
                    <option>Manche</option>
                  </select>
                </p>
          
                <p>
                  <label for="impression">Technique d'impression</br></label>
                  <select name="impression" id="impression">
                    <option>DTG</option>
                    <option>Transfert quadri</option>
                    <option>Sérigraphie</option>
                    <option>Flex Flock</option>
                    <option>Broderie</option>
                    <option>Sublimation</option>
                  </select>
                </p>
          
                <p>
                  <label for="fichier">Importez vos fichiers ici</br></label>
                  <input type="file" id="fichier" name="fichier" accept="image/png, image/jpeg, .ai,
                  .eps, .pdf, .svg">
                </p>
          
                <p>
                  <input type="submit" name="retour1" value="Précèdent"/>
                  <input type="submit" name="suivant1" value="Suivant"/>
                </p>
              </form>
        
              
          <a href="#" class="modal_close2">×</a>
          </div>
        </div>
    
    
      </body>
    </html>
    

    1
    1. fabi00 Messages postés 82 Statut Membre
       
      Bonjour,
      Super !! Un grand merci à vous, ça fonctionne.
      0