Detruire variable php

Fermé
reseau0010 Messages postés 249 Date d'inscription mardi 18 mars 2008 Statut Membre Dernière intervention 29 décembre 2013 - 2 avril 2012 à 19:49
reseau0010 Messages postés 249 Date d'inscription mardi 18 mars 2008 Statut Membre Dernière intervention 29 décembre 2013 - 5 avril 2012 à 15:33
Bonjour tout le monde;
dans ma page php j ai un form qui envoie des donnees tel que num,nom,adresse ;apres l envoi des variable les donnees sont inserees dans la base de donnes, le probleme c est si j actualise ma page un message d erreur s affiche qu il existe deja cet enregistrement avec la cle primaire ,
comment detruire les variable apres l insertion des donnes ds la base
metode utilisee ; POST

MERCI

3 réponses

Atropa Messages postés 1940 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 11 mai 2014 274
2 avril 2012 à 22:35
bonsoir,

pour détruire une variable il faut utiliser la fonction unset();

unset($variable)

ou unset($variable1,$variable2,etc.)

mais pour que ça te dise ça il doit y avoir un problème dans ton code.

soit au niveau de la base de donnée soit au niveau de tes requetes je ne sais pas sans code c'est difficile à dire
0
k.mestdagh Messages postés 39 Date d'inscription vendredi 10 décembre 2010 Statut Membre Dernière intervention 24 juillet 2015
3 avril 2012 à 00:13
file nous ton query SQL que l'on regarde cela... sinon il est possible aussi que ta séquence d'autoincrémentation de ta primary key ne fonctionne pas !!
0
reseau0010 Messages postés 249 Date d'inscription mardi 18 mars 2008 Statut Membre Dernière intervention 29 décembre 2013 1
Modifié par reseau0010 le 3/04/2012 à 13:50
voila le code de la page ; je l ai trouve sur le net ;le nom de lapage est ajout.php
merci

<?php
// On commence par récupérer les champs
if(isset($_POST['numero'])) $numero=$_POST['numero'];
else $numero="";

if(isset($_POST['BENIFICIAIRE'])) $BENIFICIAIRE=$_POST['BENIFICIAIRE'];
else $BENIFICIAIRE="";



// On vérifie si les champs sont vides
if((empty($numero) OR empty($BENIFICIAIRE) )
{
echo '<font color="red">Attention, remplissez tout les champs !</font>';
}



// Aucun champ n'est vide, on peut enregistrer dans la table
else
{
// connexion à la base
$db = mysql_connect('127.0.0.1', 'ajout','ajout') or die('Erreur de connexion '.mysql_error());
// sélection de la base

mysql_select_db('liste',$db) or die('Erreur de selection '.mysql_error());

// on écrit la requête sql
@$sql = "INSERT INTO liste(numero, BENIFICIAIRE) VALUES('$numero','$BENIFICIAIRE')";

// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
// on affiche le résultat pour le visiteur
$ok= 'Vos infos on été ajoutées.';
echo $ok;
mysql_close(); // on ferme la connexion
}


?>

<html>
<form method="POST" action="ajout.php">
<center>
numero<input type="text" name="numero" size="10" maxlength="50"><br>
BENIFICIAIRE<input type="text" name="BENIFICIAIRE" size="20" value="" maxlength="35"><br>
<input type="submit" value="Envoyer" name="envoyer">
</center>
</form>
</html>
0
Résumons la situation :
les variables en PHP ne durent que le temps du script, à la fin du script elles n'existent plus! Le problème que tu rencontres ne vient donc pas de là mais du fait que lorsqu'on réactualise une page web contenant un formulaire avec des données, ces données sont à nouveau envoyées au script chargé de les traités, ce qui provoque le message "cet enregistrement existe déjà..."
Donc pour pallier à cet inconvénient, il y a plusieurs pistes :
- tu ajoutes un champ caché dans ton formulaire ayant une certaine valeur, au moment du passage de cet valeur au script lors de la 1ère soumission, tu mets cette valeur en session
ou bien en cookie (moins secure).
- tu vérifies que la clé primaire existe déjà, si elle existe, tu affiches un message type "Vous avez déjà soumis ce formulaire..." ou bien tu fais une redirection à la page d'accueil de ton site ou bien sur une autre page de ton choix.
Enfin il y a d'autres solutions plus ou moins fiables, mais déjà avec les pistes exposées ci-avant, tu devrais t'en sortir si le codage PHP ne te fait pas peur...
0
reseau0010 Messages postés 249 Date d'inscription mardi 18 mars 2008 Statut Membre Dernière intervention 29 décembre 2013 1
5 avril 2012 à 15:33
merci ,je vais essayer
0