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 -
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
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:
- Detruire variable php
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Vba range avec variable ✓ - Forum VB / VBA
- Range avec une Variable ✓ - Forum VB / VBA
- Détruire un disque dur ✓ - Forum Disque dur / SSD
3 réponses
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
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
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 !!
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>
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>
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...
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...