Actualisation

Fermé
bedidaquin01 - 15 sept. 2011 à 20:15
le hollandais volant Messages postés 4998 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 23 décembre 2023 - 16 sept. 2011 à 15:05
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 4998 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 23 décembre 2023 1 056
15 sept. 2011 à 20:23
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
16 sept. 2011 à 02:36
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 4998 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 23 décembre 2023 1 056
16 sept. 2011 à 15:05
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