Bonjour
En PHP, pour détruire la variable $_POST, on utilise unset comme:
mais qu'en est-il en perl ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part unset($_POST);
Merci
Bonjour
En PHP, pour détruire la variable $_POST, on utilise unset comme:
mais qu'en est-il en perl ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part unset($_POST);
Merci
.Olivier
tu peux utiliser la fonction undef.
Sinon pourrais-tu préciser: utilises-tu le module CGI?
Bonjour tfe
Effectivement, j'utilise CGI pour générer mon formulaire.
Voici un morceau du code:
Mais je ne vois pas comment faire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 # Display the HTML page sub display_form { # Variables my $form_alert=shift; my $name=shift; my $email=shift; my $subject=shift; my $message=shift; # Include Header print $cgi->header(-charset=>'utf-8'); # Begin HTML print $cgi->start_html( -title=>'Feedback on the oregnier website', -head=> [ meta({-name=>'robots', -content=>'noindex,nofollow'}), Link({-rel=>'shortcut icon', -href=>'/favicon.ico'}), ], -style=>{-src=>'/tcsh.css'}); # Include contents print $cgi->h1('The oregnier website feedback: Send me your comments!')."\n"; print $cgi->p('You may send me questions or comments here. Simply fill out the form below and your question or comment will be sent to me.')."\n"; # Begin form print $cgi->start_form(-id=>'feedback', -method=>'post', -action=>'feedback.cgi'); print $cgi->p('Please tell me your name:'."\n", $cgi->textfield(-name=>'name', -id=>'name', -type=>'text', -size=>38, -value=>$name))."\n"; print $cgi->p('Please enter your email address:'."\n", $cgi->textfield(-name=>'email', -id=>'email', -type=>'text', -size=>38, -value=>$email))."\n"; ... Reste du code # End HTML print $cgi->end_html(); }
Peut-être un:
Mais j'ai testé et cela ne fonctionne pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part undef $_;
.Olivier
Pourquoi voudrais-tu "détruire" une variable ? Quel est ton but dans l'affaire ?
NB : undef() marche parfaitement pour détruire le contenu d'une variable si tel est l'objectif.
--
Jedaï
Lorsque l'utilisateur valide le formulaire, un cookie est créé et je souhaite supprimer la variable $_POST pour éviter qu'un nouveau message soit envoyé en cas ou il rafraîchirait la page de son navigateur
.Olivier
ah , en fait ce que tu veux, c est effetuer une redirection:
En effet lors d'un post, si tu rediriges vers une autre page, celle-ci s'effectuera en GET, et lors d'un refresh, le formulaire ne sera pas re-validé.
donc
1) traitement des donnes recues par POST
2) redirection sur une page disant que ca a bien ete posté ?
Oui c'est ça. Mais est-il possible de réaliser ces opérations sur la même page ?
Si vraiment ce n'est pas possible, dans ce cas, je redirigerai sur une nouvelle page.
Vous avez le même exemple mais en php, un article d'Adrien pellegrini
.Olivier
Apparemment il verifie le referer pour ne pas re-poster un message
tu peux utiliser la meme methode en Perl.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if ($_SERVER['HTTP_REFERER'] != 'http://www.monsite.com/send_email.php') { header('Location: http://www.monsite.com/'); }
le module cgi possède egallement cette information.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 if ($cgi->referer =~ /fichier\.pl$/) { # redirection }
ça c'est autre chose, cela permet qu'un utilisateur ne puisse pas poster un message avec mon formulaire depuis son site ou une autre adresse.
Moi, je veux envoyer un mail avec mon formulaire mais si je rafraîchis la page de mon navigateur empécher que le message soit envoyé une deuxième fois d'ou la création d'un cookie et la destruction de la variable $_POST ou équivalent en perl.
Je vais jetter un oeil pour rediriger vers une autre page
.Olivier
J'ai placé sur mon site perso un exemple avec le formulaire PHP et CGI.
Comme on peut le constater les données du formulaires PHP sont effacés lors de l'envoi du message, ce qui n'est pas le cas en perl, pourquoi ?
Merci d'avance
.Olivier
Ok, en bref tu veux éviter que les valeurs des champs soient retenues d'une invocation à l'autre dans certains cas, c'est ça ?
Comme d'habitude, la doc de CGI contient la réponse, je te conseille de la lire une bonne fois en entier, tu auras la solution de la plupart de tes problèmes dedans.
--
Jedaï
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager