Empecher insertion double apres rafraichissement

Fermé
BapPro Messages postés 46 Date d'inscription samedi 17 janvier 2015 Statut Membre Dernière intervention 4 février 2016 - 4 févr. 2016 à 17:31
jordane45 Messages postés 38240 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 septembre 2024 - 5 févr. 2016 à 00:44
Bonjour,
Je voudrais empecher une double insertion apres rapfraichissement de la page voici mes codes


 if (!empty ($_POST['submit']) AND $_POST['submit'] == 'Sauvegarder')
{

 $name = mysqli_real_escape_string($conn,$_POST['nom']);
$username=mysqli_real_escape_string($conn, $_POST['username']);
$mail=mysqli_real_escape_string($conn, $_POST['mail']);  
$password=$_POST['password'];
$role = mysqli_real_escape_string($conn,$_POST['role']);			  

   $sql = "INSERT INTO utilisateur VALUES ('', '".$name."', '".$username."', '".$password."',  '".$role."', '".$mail."')";
		 $res = mysqli_query($conn, $sql);
 echo '<p style="text-align:center">Un utilisateur a ete ajoute avec succes !</p>';
}
 else
	 {
   echo $confirm='';
}


<form action="" method="post"  name="form" id="form" class="form"  onSubmit="return verify(this.password, this.password2);"   > 
<p style="margin-left:5%;" >
 </br>

<label>Nom <em>*</em></label>

<input type="text" name="nom" onkeyup="verif_name(this);" required /></br></br>
 <label>Email <em>*</em></label>

<input type="email" name="mail" required /></br></br>
<label>Nom utilisateur <em>*</em></label>

<input type="text" name="username" required /></br></br>
                        
  <label >Password <em>*</em></label>
      <input type="password"   name= "password" id= "password"  onclick="montre('blabla')" required></br>

<label>Role</label>
<select name="role">
<option>Administrateur UPAG</option>
<option>Doyen</option>
<option>Etudiant</option>
</select></br></br>
			
			
</p>

 <hr style="height: 0px; color: gray; width: 100%; border: 1px solid ;" >

<p style="margin-left:70px;color:black;"> 

<input type="submit" id="submit" name="submit" value="Sauvegarder" class="bouton" style="background-color:green;color:white;font-weight:bold" disabled="true" onclick="var aze=confirm('Voulez-vous inserer cet nouvel utilisateur ?');return aze;" />

</p>

 </form> 

Merci et a plus
A voir également:

1 réponse

jordane45 Messages postés 38240 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 septembre 2024 4 688
5 févr. 2016 à 00:44
Bonjour,

Jettes un oeil aux réponses proposées ici :
https://stackoverflow.com/questions/2133964/how-to-prevent-multiple-inserts-when-submitting-a-form-in-php


En javascript.. la seule chose de réellement faisable... serait de désactiver le bouton une fois que l'utilisateur aura cliqué dessus.
(mais cela ne changera rien en cas de "refresh" de la page).

Les autres solutions utilisent le PHP ....
La plus "connue" est l'utilisation de token.
mais ils proposent également des solutions à base de SESSION.

A toi de voir.

0