Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1979 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Actualiser une page faisant un INSERT INTO

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Actualiser une page faisant un INSERT INTO

n°227438
Cherrytree
cn=?
Posté le 13-10-2002 à 11:18:49  profilanswer
 

Je suis en train de faire un script tout bête.
Une formulaire envoie des informations par POST au fichier courant pour qu'il les traite ($PHP_SELF) : un INSERT dans la base. Seulement voilà, à chaque fois que l'utilisateur frappe F5, je me retrouve avec un nouvel enregistrement dans la base, ce qui est idiot. Y a t'il un moyen propre, sans utiliser plusieurs fichiers PHP ?


---------------
Le site de ma maman
mood
Publicité
Posté le 13-10-2002 à 11:18:49  profilanswer
 

n°227542
ethernal
Chercheur de vérité...
Posté le 13-10-2002 à 13:15:39  profilanswer
 

si l'utilisateur fait un "post", il clique certtainement sur un bouton non ?
donc teste si la valeur du bouton existe :

Code :
  1. if (isSet($nom_du_bouton)){
  2. $query='';
  3. }
  4. else{
  5. }


---------------
...oups kernel error...
n°227544
Cherrytree
cn=?
Posté le 13-10-2002 à 13:32:05  profilanswer
 

ethernal a écrit a écrit :

si l'utilisateur fait un "post", il clique certtainement sur un bouton non ?
donc teste si la valeur du bouton existe :

Code :
  1. if (isSet($nom_du_bouton)){
  2. $query='';
  3. }
  4. else{
  5. }





Je vais tester ça.


---------------
Le site de ma maman
n°227551
beleg
黑社會
Posté le 13-10-2002 à 14:09:02  profilanswer
 

je ne pense que ca fonctionne, les donnees du post sont toujours la.
 
Une solution pratique est une page php qui gere tt les traitements (insert ...) et puis redirige vers les pages d'affichage.
 
 

n°227559
format_c
Plouf plouf ...
Posté le 13-10-2002 à 14:28:04  profilanswer
 

T'as une solution simple qui consiste à faire une condition devt l'Insert
 
if($action=='insérer';)
{
Insert(blabla);
$action='0'; // Comme ça tu réinitialise ta variable
}
 
Après dans ton Form de la page précédente tu mets ton Url de post suivi de ?action=inserer
 
Je pense que ça devrait marcher
 
Edit : En fait non ça marchera pas :D
 
Autre piste :
Pourquoi ne pas générer une variable aléatoire dans ton formulaire. Cette variable tu la postes dans un champs de ta table et dans ta page qui traite l'Insert, tu fais une vérification sur ce champs dans ta table et si il existe tu empèche l'Insert de se faire.


Message édité par format_c le 13-10-2002 à 14:34:41
n°227566
Cherrytree
cn=?
Posté le 13-10-2002 à 14:59:14  profilanswer
 

Format_C a écrit a écrit :

T'as une solution simple qui consiste à faire une condition devt l'Insert
 
if($action=='insérer';)
{
Insert(blabla);
$action='0'; // Comme ça tu réinitialise ta variable
}
 
Après dans ton Form de la page précédente tu mets ton Url de post suivi de ?action=inserer
 
Je pense que ça devrait marcher
 
Edit : En fait non ça marchera pas :D
 
Autre piste :
Pourquoi ne pas générer une variable aléatoire dans ton formulaire. Cette variable tu la postes dans un champs de ta table et dans ta page qui traite l'Insert, tu fais une vérification sur ce champs dans ta table et si il existe tu empèche l'Insert de se faire.



Cette solution marchera (je parle de la dernière que tu proposes), mais elle oblige à documenter un champ "bidouille" dans la table. Je pense que je vais me rabattre sur une solution classique en deux fichiers, et appel à la fonction header.


---------------
Le site de ma maman
n°227596
ethernal
Chercheur de vérité...
Posté le 13-10-2002 à 15:57:51  profilanswer
 

beleg a écrit a écrit :

je ne pense que ca fonctionne, les donnees du post sont toujours la.
 
Une solution pratique est une page php qui gere tt les traitements (insert ...) et puis redirige vers les pages d'affichage.




 
ouai bon j'ai pas été complet...

Code :
  1. if (isSet($nom_du_bouton)){
  2. //traitement sql
  3. $query='';
  4. header('location: '.$nom_de_la_page_sans_argument);
  5. }
  6. else{
  7. // affichage formulaire
  8. }


la soluce avec 2 pages est bien aussi...


Message édité par ethernal le 13-10-2002 à 15:58:23

---------------
...oups kernel error...
n°227646
Cherrytree
cn=?
Posté le 13-10-2002 à 17:33:19  profilanswer
 

Ah, effectivement, comme ça, ça doit passer aussi. Merchi bien.


---------------
Le site de ma maman
n°227659
Cherrytree
cn=?
Posté le 13-10-2002 à 17:54:34  profilanswer
 

Oui, le problème est résolu, grâce à la directive

Code :
  1. header("location: $PHP_SELF" );


---------------
Le site de ma maman

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Actualiser une page faisant un INSERT INTO

 

Sujets relatifs
[PHP] Détecter le nom de la page en coursTomcat 4 - Problème de sur-persistance d'une page !
Comment ouvrir une page ds la meme fenetre avec un bouton (onClick) ?[HTML] inclue une page au milieu d'un autre page avec un "ascenseur"
Recuperation d'info venant d'une page web en C++ BuilderImprimer un fichier qui tient sur plusieurs page
[PhpNuke] Passer une variable de page en page ?enregistrement d'une page
Obligé de recharger la page pour que le cookie soit actif ???[HTML ?] recuperer les données d'une page...
Plus de sujets relatifs à : Actualiser une page faisant un INSERT INTO


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR