Partage
  • Partager sur Facebook
  • Partager sur Twitter

Valider un formulaire et redirection sur la page

19 juillet 2019 à 20:39:58

Bonjour à tous,

J'ai une page formulaire.php et une page traitement.php

Dans la page formulaire j'ai ceci:

<form method="post" action="traitement.php">
 
ICI mon formulaire
 
</form>

 Dans la page traitement.php

Traitement de mon formulaire ici

Comment puis-je faire quand un utilisateur clique sur valider, le traitement se passe dans la page  traitement.php) et que l’utilisateur soit rediriger sur formulaire.php avec un message?

Merci par avance



  • Partager sur Facebook
  • Partager sur Twitter
19 juillet 2019 à 20:43:54

Bonjour,

Regarde du côté de la fonction "header" et sur les messages flash (via les sessions)

  • Partager sur Facebook
  • Partager sur Twitter
21 juillet 2019 à 10:41:19

J'ai essayé aveh header mais je n'arrive pas à rediriger.

Ca reste sur ma page de traitement et je n'ai plus de footer

					<form action="trait_bavoirtest.php" class="form_article" method="post" name="commande_bavoir" enctype="multipart/form-data">

							<?php
							if(isset($_SESSION['membre_id']))
							{

								$message = '<input type="submit" value="Ajouter au panier" />';

							}
							else
							{
							?>
								Vous n'êtes pas connecté !!!<br /><br />
									Pour commander, veuillez vous connecter en cliquant <a href="../membre/connexion.php">ici</a> !!!<br /><br />
									Ou vous inscrire en cliquant <a href="../membre/inscription.php">ici</a> !!!<br /><br />
							<?php
							}
							?>
					
						<label for="prix" class="prix">Prix :</label>
							<?php
							$produit = 10;
							$req = $bdd -> prepare("SELECT * FROM produits WHERE produit_id = :produit_id") or die(print_r($bdd->errorInfo()));
							$req->execute(array(
										'produit_id' => $produit));
							$donnees = $req->fetch();
							?>						
						
			
							<label for="prix"><?php echo $donnees['prix']; ?> euros HT</label><br /><br /><br />
						
						<label for="couleur_produit">Couleurs de l'éponge : </label>
							<?php
							$req = $bdd -> query("SELECT s.couleur_id, s.stock, c.couleur, s.produit_id, c.couleur_id AS couleur_id
									FROM stocks AS s
									INNER JOIN couleurs AS c
									ON c.couleur_id = s.couleur_id
									WHERE s.produit_id=10") or die(print_r($bdd->errorInfo()));
							?>	
							
							<select name="couleur_produit" id="couleur_produit" size="1">
								<?php
								While($donnees = $req->fetch())
								{
									$couleur_id = $donnees['couleur_id'];
									$couleur = $donnees['couleur'];
									$stock = $donnees['stock'];
									
									if ($stock !='0')
									{
										echo '<option value="' . $couleur_id . '">' . $couleur . ' en stock : ' . $stock . '</option>';
									}
								}
								?>
							</select><br /><br />
									
								<!--////	
						<label for="gant_toilette" >Voulez-vous un gant de toilette? :</label>
							<select name="gant_toilette" id="gant_toilette">
								<option value="oui">Oui +5euros</option>
								<option value="non">Non</option>
							</select><br /><br />-->
							
						<label for="couleur_biais" id="champ1">Couleur du biais : </label>
							<select name="couleur_biais" id="couleur_biais">
								<option value="b001">B001</option>
								<option value="b002">B002</option>
								<option value="b003">B003</option>
								<option value="b004">B004</option>
								<option value="b005">B005</option>
								<option value="b006">B006</option>
							</select><br /><br />					


						<label for="prenom" id="prenom">Prénom :</label>
							<textarea type="text" name="prenom" id="prenom" rows=1 COLS=30></textarea><br /><br />

									
						<label for="couleur_brod" id="champ1">Couleur du prénom : </label>
							<select name="couleur_brod" id="couleur_brod">
								<option value="gris_rosef_rosec">Tricolore Gris / Rose Foncé / Rose Clair</option>
								<option value="gris_bleuf_bleuc">Tricolore Gris / Bleu Foncé / Bleu Clair</option>
							</select><br /><br />
							
							
						<label for="police_brod" id="champ1">Police du prénom : </label>
							<select name="police_brod" id="police_brod">
								<?php include('incl/include_police.php'); //Police  ?>		
							</select><br /><br />							

						
						<label for="systeme_attache">Mode de fermeture : </label>
							<select name="systeme_attache" id="systeme_attache">
								<option value="velcro">Velcro doux</option>
								<option value="pression">Pression</option>
							</select><br /><br />							
							
								
												
						<input type="radio" name="type_broderie" value="broderie" id="broderie" class="input" checked="checked" />
							<label for="broderie" class="oui">Numéro de la broderie : </label><br />
								<select name="broderie" id="broderie" class="select">
									<?php
									$reponse = $bdd->query('SELECT * FROM broderies');
									while ($donnees = $reponse->fetch())
									{
										?>
										<option value="<?php echo $donnees['broderie_numero']; ?>"> <?php echo $donnees['broderie_numero']; ?></option>
										<?php
									}
									?>
								</select><br />
								<a href="../broderies/broderies_index.php" target="_blank" class="lien">--> Liste des broderies <--</a><br /><br />							
							
							
						<input type="radio" name="type_broderie" value="image_broderie" id="image_broderie" class="input" />	
							<label for="image_broderie" class="oui">Envoyez votre propre image pour broderie <br />(sous réserve de la faisabilité)</label><br />
								<input type="file" name="envoi_broderie" id="envoi_broderie" class="input"/><br /><br />
													
						
						<label>Emballage cadeaux (1,00 euros) :</label><br />
							<input type="radio" name="cadeau" value="oui" id="oui" checked="checked" class="input" />
								<label for="oui" class="oui">Oui</label>
							<input type="radio" name="cadeau" value="non" id="non" class="input" />
								<label for="non" class="oui">Non</label><br /><br />
								
						<label>Commentaire :</label><br />
							<textarea id="commentaire" name="commentaire" rows="5" cols="40">
							</textarea><br /><br />
								
								
						<?php echo $message; ?>	
						
							
					</form>	


Page de traitement

<?php
session_start();
header('Content-type: text/html; charset=utf-8');
include('../incl/config.php');

/********Actualisation de la session...**********/
include('../incl/connexion.php');
include('../incl/config.php');
include('../incl/fonctions.php');
actualiser_session();

/********Fin actualisation de session...**********/

/********Entête et titre de page*********/

$titre = 'Bavoir';

//include('includes/haut.php'); contient le doctype, et head.

/**********Fin entête et titre***********/

include('../includes/haut_head.php'); //contient le doctype, et head.

?>
	
<body>

	<div id="bloc_page">
	
		<?php include('../includes/haut_header.php'); //contient le header et barre horizontale ?>		
	
		<div id="liens">
			
			<p>
				<a href="../index_v2.php">Accueil</a> --> <a href="articles_bavoir.php">Les bavoirs</a>
			</p>
			
		</div><!--Fin liens-->
			<!--/////////////////////////////  CORPS  //////////////////////////////// -->
	

		
	
			<div id="haut_menu_grand"><h3>Article ajouté au panier</h3></div>
			
			<div id="milieu_menu_grand">
				<?php	
			
				//par defaut le message est valide et l'alerte est vide//
				$valid=0;$alert="";
				/////////////////////////////////////////////////////////

				//Test Couleur_produit////////////////////////////////////
				if(isset($_POST['couleur_produit']))
				{
					$couleur_produit = ($_POST['couleur_produit']);
				}
				else
				{
					header('Location: ../index.php');
					exit();
				}
	
				
		/********		
				if(isset($_POST['gant_toilette']) AND $_POST['gant_toilette']=='non')
				{
					$gant_toilette = trim($_POST['gant_toilette']);

				}
				else if(isset($_POST['gant_toilette']) AND $_POST['gant_toilette']=='oui')
				{
					$gant_toilette = trim($_POST['gant_toilette']);
				}*****/

				if(isset($_POST['couleur_biais']))
				{
					$couleur_biais = ($_POST['couleur_biais']);
				}
				else
				{
					header('Location: ../index.php');
					exit();
				}
					
					//test PRENOM est rempli////////////////////////////////////
					if(isset($_POST['prenom']))
					{
						$prenom = trim($_POST['prenom']);
						if(empty($prenom))
						{
							$prenom=''; $valid=1; $alert.="Merci de renseigner le champs \"Prénom\"<br/>";
						}
						else
						{
							$prenom;
						}
					}
					else
					{
						header('Location: ../index.php');
						exit();
					}
				
					//Test Couleur_brod////////////////////////////////////
					if(isset($_POST['couleur_brod']))
					{
						$couleur_brod = ($_POST['couleur_brod']);
					}
					else
					{
						header('Location: ../index.php');
						exit();
					}

					//Test Police_brod////////////////////////////////////
					if(isset($_POST['police_brod']))
					{
						$police_brod = ($_POST['police_brod']);
					}
					else
					{
						header('Location: ../index.php');
						exit();
					}

				
				
				

				if($_POST['type_broderie']=='image_broderie')
				{
					//test Téléchargement broderie///////////////////////////////////
					if(isset($_FILES['envoi_broderie']))
					{
						include('includes/telechargement_images.php'); //contient 
					}
					else
					{
						header('Location: ../index.php');
						exit();
					}
				}
				
				
				else if($_POST['type_broderie']=='broderie')
				{
					//test Broderie////////////////////////////////////
					if(isset($_POST['broderie']))
					{
						$broderie = ($_POST['broderie']);
					}
					else
					{
						header('Location: ../index.php');
						exit();
					}
				}				

				//Test systeme_attache////////////////////////////////////
				if(isset($_POST['systeme_attache']))
				{
					$systeme_attache = ($_POST['systeme_attache']);
				}
				else
				{
					header('Location: ../index.php');
					exit();
				}					
				
				//Test Cadeau////////////////////////////////////
				if(isset($_POST['cadeau']))
				{
					$cadeau = ($_POST['cadeau']);
				}
				else
				{
					header('Location: ../index.php');
					exit();
				}				

				//Test Commentaire////////////////////////////////////
				if(isset($_POST['commentaire']))
				{
					$commentaire = ($_POST['commentaire']);
				}
				else
				{
					header('Location: ../index.php');
					exit();
				}				
				
			
			//$membre_derniere_visite = time();
			
			
	
			
			if($valid==0)
			{
				$produit = '10';
				$commande = '0';
				//ajouter l'articles au panier
				$req = $bdd->prepare('INSERT INTO panier(membre_id, produit_id, commande_id, couleur_produit,couleur_biais, texte, texte_couleur, texte_police, numero_broderie, systeme_attache, cadeau, commentaire, date_panier)
									VALUES(:membre_id, :produit_id, :commande_id, :couleur_produit, :couleur_biais, :texte, :texte_couleur, :texte_police, :numero_broderie, :systeme_attache, :cadeau, :commentaire, :date_panier)');
                                   
				$req->execute(array(
						'membre_id' => $_SESSION['membre_id'],
						'produit_id' => $produit,
						'commande_id' => $commande,
						'couleur_produit' => $couleur_produit,
						'couleur_biais' => $couleur_biais,
						'texte' => $prenom,
						'texte_couleur' => $couleur_brod,
						'texte_police' => $police_brod,
						'numero_broderie' => $broderie,
						'systeme_attache' => $systeme_attache,
						'cadeau' => $cadeau,
						'commentaire' => $commentaire,
						'date_panier' => time()
						));	
				//Soustraire 1 au stock	
				$stockactuel = $bdd -> prepare("SELECT stock FROM stocks WHERE produit_id = :produit_id AND couleur_id = :couleur_id");
				$stockactuel->execute(array(
						'produit_id' => $produit,
						'couleur_id' => $couleur_produit));			
				$data = $stockactuel->fetch();				
						
						$stockrestant = ($data['stock'])-1;
						$req = $bdd->prepare('UPDATE stocks SET stock = :stockrestant
														WHERE produit_id = :produit_id AND couleur_id = :couleur_id' );
							$req->execute(array(
							'stockrestant' => $stockrestant,
							'produit_id' => $produit,
							'couleur_id' => $couleur_produit));							
						
						
						
						
				
				echo '<p class="corps_milieu_grand">L\'article à bien été ajouté au panier.<br /><br/>
						<a href="panier.php">Allez au panier.</a><br /><br/>
						<a href="../index.php">Retourner à l\'accueil du site.</a></p>';
				
				

			}
			else
			{
				echo '<p class="corps_milieu_grand"><strong>Votre message n\'est pas correctement rempli :</strong></p>
				 <p class="corps_milieu_grand">'.$alert.'</p>';
			}
			
			
header("Location: https://babybroderie.fr/produits/art_bavoirtest.php");
exit();			
			
			
			?>
			
			
				
				
            </div>
			
			<div id="bas_menu_grand"></div>
			
			
			

		<!--/////////////////////////////  FIN CORPS  //////////////////////////////// -->


		<!--/////////////////////////////  FOOTER  //////////////////////////////// -->
		<?php include('../includes/footer.php'); //contient menu droite ?>
	</div> <!--Fin bloc page -->

</body>
</html>

Merci pour votre aide

  • Partager sur Facebook
  • Partager sur Twitter
21 juillet 2019 à 13:16:30

Bonjour.

Est-ce que tu pensé à regarder dans la documentation de PHP pour la fonction header ?

N'oubliez jamais que header() doit être appelée avant que le moindre contenu ne soit envoyé, soit par des lignes HTML habituelles dans le fichier, soit par des affichages PHP. Une erreur très classique est de lire un fichier avec include ou require, et de laisser des espaces ou des lignes vides, qui produiront un affichage avant que la fonction header() ne soit appelée. Le même problème existe avec les fichiers PHP/HTML standards.

Au passage, quand on veut ajouter/modifier du code, on le fait d'abord en développement, soit en local et non en production afin de pouvoir tester le code.

-
Edité par Lartak 21 juillet 2019 à 13:24:28

  • Partager sur Facebook
  • Partager sur Twitter

Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.

21 juillet 2019 à 20:16:30

psgman80 a écrit:

Bonjour à tous,

J'ai une page formulaire.php et une page traitement.php

Dans la page formulaire j'ai ceci:

<form method="post" action="traitement.php">
 
ICI mon formulaire
 
</form>

 Dans la page traitement.php

Traitement de mon formulaire ici

Comment puis-je faire quand un utilisateur clique sur valider, le traitement se passe dans la page  traitement.php) et que l’utilisateur soit rediriger sur formulaire.php avec un message?

Merci par avance



Salut

La seule chose pour le  faire et de le faire avec AJAX, vous pouvez le faire avec uniquement avec php, mais c'est compliquer car il faut faire   une redirection Javascripts dans le fichier traitement.php.

  • Partager sur Facebook
  • Partager sur Twitter
21 juillet 2019 à 20:44:22

LailaBenoubaid a écrit:

psgman80 a écrit:

Bonjour à tous,

J'ai une page formulaire.php et une page traitement.php

Dans la page formulaire j'ai ceci:

<form method="post" action="traitement.php">
 
ICI mon formulaire
 
</form>

 Dans la page traitement.php

Traitement de mon formulaire ici

Comment puis-je faire quand un utilisateur clique sur valider, le traitement se passe dans la page  traitement.php) et que l’utilisateur soit rediriger sur formulaire.php avec un message?

Merci par avance



Salut

La seule chose pour le  faire et de le faire avec AJAX, vous pouvez le faire avec uniquement avec php, mais c'est compliquer car il faut faire   une redirection Javascripts dans le fichier traitement.php.

Bonsoir,
Le js ou l'ajax n'est absolument pas obligatoire. Tout peut se faire en php et les sessions

  • Partager sur Facebook
  • Partager sur Twitter
21 juillet 2019 à 21:11:06

Bonjour,

pour en rajouter une couche : la page de traitement n'est pas une "page", elle ne doit contenir absolument aucun html, juste le php nécessaire pour traiter, et à la fin, le header sus-mentionné.

  • Partager sur Facebook
  • Partager sur Twitter

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