Detruire variable php

reseau0010 Messages postés 249 Date d'inscription   Statut Membre Dernière intervention   -  
reseau0010 Messages postés 249 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

3 réponses

Atropa Messages postés 1940 Date d'inscription   Statut Membre Dernière intervention   274
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   1
 
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
ReDLoG
 
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   Statut Membre Dernière intervention   1
 
merci ,je vais essayer
0