Rechercher : dans
Par :

Method Post : réinitialiser les parmaètres.

Dernière réponse le 8 avr 2003 à 15:11:11 Abdel, le 7 avr 2003 à 14:48:21 
 Signaler ce message aux modérateurs

Bonjour,
J'utilise Perl et Psql.
Après la validation d'un formulaire avec method POST, j'affiche une page particulière. Ma DB a été mise à jour correctement.
Or, si je raffaichie à la suite de ma validation je rajoute un champs dans ma DB puisque le fichier qui contient les paramètres de mon formulaire sont toujours stokés.
Je cherche donc le moyen de vider ce fichier.
Si quelqu'un peut m'aider merci d'avance.

PS: j'ai pensé à un fomulaire supplémentaire avec que des champs TYPE hidden VALUE ' ' mais je n'arrive pas à faire un submit automatique.

Meilleures réponses pour « method Post : réinitialiser les parmaètres. » dans :
Oracle - Réinitialiser une séquence VoirPour réinitialiser un séquence SEQ crée à travers la commande : CREATE SEQUENCE SEQ; Il suffit de voir sa valeur actuelle via la commande : SELECT SEQ.CURRVAL FROM DUAL; Ensuite modifier la séquence en injectant l'option increment by en ajoutant...
Les formulaires HTML VoirIntérêt d'un formulaire Les formulaires interactifs permettent aux auteurs de pages Web de doter leur page web d'éléments interactifs permettant par exemple un dialogue avec les internaute, à la manière des coupons-réponse présents dans certains...
Servlets - Gestion des formulaires VoirIntroduction aux formulaires Les servlets rendent très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML, c'est-à-dire une interface graphique permettant à l'utilisateur de saisir des données. Grâce à la balise...
Introduction à RMI (Remote Method Invocation) VoirIntroduction à RMI RMI (Remote Method Invocation) est une API Java permettant de manipuler des objets distants (c'est-à-dire un objet instancié sur une autre machine virtuelle, éventuellement sur une autre machine du réseau) de manière...

2

Bobinours, le 7 avr 2003 à 22:44:17

La méthode la plus propre que j'ai trouvée est une simple redirection après l'enregistrement.

#!/usr/bin/perl -wT

use strict;

if (VALEURS_CORRECTES) {
    # ENREGISTREMENT BDD
    print "Location: page_script.pl";
    exit;
}
else {
    print "Erreur";
}


Ceci implique qu'il n'y ait aucun sortie écran (print ou autre) avant la redirection, c'est-à-dire le : print "Location: ...";

-= Bobinours -  =-

Répondre à Bobinours

3

Abdel, le 8 avr 2003 à 11:26:42

Merci pour ton aide mais cela ne fonctionne pas. En effet, la redirection foctionne parfaitement avec PRINT(Location) mais à la suite de cette redirection toute les valeur pérécement chargés par lors du submit précédent via la method POST sont conservé en mémoire Du coup, si l'utilisateur venait à raffraichir l'écran il réexecutera le script précédent avec les toutes les variables précédentes. Ceci ne pose pas de problème lors d'un UPDATE mais posa problème lors d'un INSERT INTO. En effet, on crée ainsi des doublons.
Hier, j'ai trouvé une solution qui fonctionne bien avec l'utilisation d'un script Javascript qui Submit un formulaire vide via la method POST. Il purge ainsi le contenu du tableau de Hashage qui contenai t toutes les anciennes variables.

PS : J'utilisait presque la même méthode que toi, c'est à dire que je faisait une redirection via un do("script_perl.pl");exit(0);

Merci encore.

Répondre à Abdel

Bobinours, le 8 avr 2003 à 11:41:05

Je ne comprends pas le problème que tu décris. Le refresh ne doit pas renvoyer d'information après une redirection.

Sur le serveur :

Il existe 3 pages:

Page 1 : Formulaire de saisie.
Page 2 : Enregistrement et redirection.
Page 3 : Affichage page retour (après enregistrement du formulaire).

Côté client (navigateur) :

Page 1 : Formulaire de saisie.
Page 2 : Affichage page retour (après enregistrement du formulaire).

C'est une redirection serveur. Le client ne voit pas la page intermédiaire et ne peut donc pas la rappeller (à moins d'appuyer sur "Envoyer" de nouveau).
-= Bobinours -  =-

Répondre à Bobinours

4

 Abdel, le 8 avr 2003 à 15:11:11

Je me suis peut être mal expliqué, mais ta description de la situation est trés juste.
Néanmoins, il existe un problème lorque j'affiche dans la frame la page de retour. En effet, cliquer sur actualisé (sur IE par exemple) réxecute le code précédent...et m'ajoute un champs de trop à chaque fois dans ma DB.
Merci encore pour ton attention.

Répondre à Abdel