Actualisation

bedidaquin01 -  
le hollandais volant Messages postés 5294 Statut Membre -
Bonjour,
pour insérer les données d'un formulaire dans ma base de donnée j'ai fais ce code(ci dessous).
mais quand j'actualise la page il me réenregistre ses mêmes informations dans la base de donnée. pourriez vous regarder mon script et me dit la cause aussi comment y remédier.
Page:
<h1>Fichier -> Marque appareil</h1>
       
        
        
        <form method="post" action="ajout.php">
    <fieldset> 
  <p>code:<input name="Code" type="text" value="<?php echo htmlentities($Codep=$_GET['Codeparamcom']); ?>" size="10" maxlength="3"/></p>   
		    <p>Designation:<input type="text" name="Marque" tabindex="20" align="texttop"/></p>
           <p>Premiere position:<input type="text" name="Val1" tabindex="20" align="texttop"/></p>
	      <p>Deuxieme position:<input type="text" name="Val2" tabindex="20" align="texttop"/></p> 
          <input type="submit" value="Valider" name="Valider" />
          <input type="reset" value="annuler" />
          </fieldset>
		  </form>
        
        <?php
          include('Connections/dbb.php');
		  
		  //recuperation des valeurs des variables
		if(isset($_POST['Code'])) $Code=$_POST['Code'];
	else $Code="";
	
	if(isset($_POST['Marque'])) $Marque=$_POST['Marque'];
	else $Marque="";
	
	
	if(isset($_POST['Val1'])) $Val1=$_POST['Val1'];
	else $Val1="";
	
	if(isset($_POST['Val2'])) $Val2=$_POST['Val2'];
	else $Val2="";
	if(empty($Code) || empty($Marque) || empty($Val1) || empty($Val2)) echo 'Remplir tous les champs';
	else
	{
               
         //on se connecte a MYSQL
	$dbb=mysql_connect($hostname_dbb, $username_dbb, $password_dbb) or die('Erreur de connexion ' . mysql_error());
		
		// on sélectionne la base 
	mysql_select_db($database_dbb) or die('Erreur de selection ' . mysql_error());
	
        // on crée la requête SQL
  $requet= 'INSERT INTO paramcom (Code, Marque, Val1, Val2) VALUES ("'.$Code.'", "'.$Marque.'", "'.$Val1.'", "'.$Val2.'")';
		  
		// on execute la requete
          $insert_requet=mysql_query($requet)or die('selection echouée' . mysql_error());
		  
         // affichage des données
			if($insert_requet){
				 echo('L\'insertion a été correctement effectuée');
		
	           }
          else
          {
             echo('L\'insertion à échouée');
		  }
	
     mysql_close();
      }
?>
		
			</div>


1 réponse

le hollandais volant Messages postés 5294 Statut Membre 1 058
 
Salut,
Lors d'une requête $_POST, les données sont conservées coté serveur, car la page est générée suite à un clic sur ta page.

Pour réinitialiser ça, il faut actualiser la page via PHP, de façon à avoir une page comme si on n'avait pas cliqué sur « envoyer ».

En bas du script, il faut mettre quelque chose ainsi, en PHP : (mais il faudrait que le PHP et le HTML soient sur des pages différentes.

header('Location: '.$_SERVER['PHP_SELF']);

0
bedidaquin01
 
merci pour ta reponse ,
mais si j'ai bien compris ,
je creais un formulaire html pour la saisie des infos et une page php pour le traitement de ce formulaire dont j'ajoute header('Location: '.$_server['php_self']);

mais comment on actualise la page via php
0
le hollandais volant Messages postés 5294 Statut Membre 1 058
 
Justement, la fonction "header" permet de redirigier sur une page en PHP.
Si on envoie sur la même page, c'est une réactualisation.

Attention per contre, à bien mettre ce code dans un "if" qui teste si le message a été posté : sinon on se retrouve avec une boucle de redirection infinie
0