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

Résolu/Fermé
fabi00 Messages postés 82 Date d'inscription vendredi 4 février 2022 Statut Membre Dernière intervention 18 mars 2022 - 4 févr. 2022 à 16:33
fabi00 Messages postés 82 Date d'inscription vendredi 4 février 2022 Statut Membre Dernière intervention 18 mars 2022 - 6 févr. 2022 à 16:59
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>
A voir également:

1 réponse

jordane45 Messages postés 38353 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 27 décembre 2024 4 719
4 févr. 2022 à 16:57
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
fabi00 Messages postés 82 Date d'inscription vendredi 4 février 2022 Statut Membre Dernière intervention 18 mars 2022
6 févr. 2022 à 16:59
Bonjour,
Super !! Un grand merci à vous, ça fonctionne.
0