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
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
A voir également:
- Detruire variable php
- Easy php - Télécharger - Divers Web & Internet
- Php natif - Forum PHP
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp ✓ - Forum Word
- Variable objet ou variable de bloc with non définie - Forum VB / VBA
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
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
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
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
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 !!
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
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>
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...
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
5 avril 2012 à 15:33
merci ,je vais essayer