IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Web Perl Discussion :

Détruire la variable $_POST


Sujet :

Web Perl

  1. #1
    Expert éminent

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Points : 6 686
    Points
    6 686
    Par défaut Détruire la variable $_POST
    Bonjour

    En PHP, pour détruire la variable $_POST, on utilise unset comme:
    mais qu'en est-il en perl ?

    Merci
    .Olivier

  2. #2
    tfe
    tfe est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 85
    Points : 95
    Points
    95
    Par défaut
    tu peux utiliser la fonction undef.

    Sinon pourrais-tu préciser: utilises-tu le module CGI?

  3. #3
    Expert éminent

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Points : 6 686
    Points
    6 686
    Par défaut
    Bonjour tfe

    Effectivement, j'utilise CGI pour générer mon formulaire.

    Voici un morceau du code:
    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();
    }
    Mais je ne vois pas comment faire

    Peut-être un:
    Mais j'ai testé et cela ne fonctionne pas
    .Olivier

  4. #4
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    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ï

  5. #5
    Expert éminent

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Points : 6 686
    Points
    6 686
    Par défaut
    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

  6. #6
    tfe
    tfe est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 85
    Points : 95
    Points
    95
    Par défaut
    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é ?

  7. #7
    Expert éminent

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Points : 6 686
    Points
    6 686
    Par défaut
    Citation Envoyé par tfe Voir le message
    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

  8. #8
    tfe
    tfe est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 85
    Points : 95
    Points
    95
    Par défaut
    Apparemment il verifie le referer pour ne pas re-poster un message
    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/'); 
    }
    tu peux utiliser la meme methode en Perl.
    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
    }

  9. #9
    Expert éminent

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Points : 6 686
    Points
    6 686
    Par défaut
    ç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

  10. #10
    Expert éminent

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Points : 6 686
    Points
    6 686
    Par défaut
    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

  11. #11
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    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ï

  12. #12
    Expert éminent

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Points : 6 686
    Points
    6 686
    Par défaut
    Citation Envoyé par Jedai Voir le message
    Ok, en bref tu veux éviter que les valeurs des champs soient retenues d'une invocation à l'autre dans certains cas, c'est ça ?
    Oui exactment
    Citation Envoyé par Jedai Voir le message
    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.
    $query->delete_all();

    Je vais lire un bon coup cette doc
    .Olivier

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/05/2006, 19h21
  2. Détruire une variable session
    Par tiyolx dans le forum Langage
    Réponses: 1
    Dernier message: 06/05/2006, 18h59
  3. Détruire les variables d'une session
    Par kespy13 dans le forum Langage
    Réponses: 6
    Dernier message: 05/05/2006, 17h13
  4. Variable $_POST[]
    Par gwen-al dans le forum Langage
    Réponses: 10
    Dernier message: 17/01/2006, 11h48
  5. Recuperer les variables $_POST
    Par casa13 dans le forum Langage
    Réponses: 15
    Dernier message: 03/01/2006, 16h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo