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 :

FORMULAIRE + PIECE JOINTE


Sujet :

Web Perl

  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1
    Par défaut FORMULAIRE + PIECE JOINTE
    Salut à tous
    j'ai écris un bout de code en perl/cgi qui permet aux visiteurs de remplir et d'envoyer un formulaire par e-mail au webmaster. Je ne sais pas exactement comment y ajouter la fonction qui permettra aux visiteurs d'y atacher une piece jointe. Svp aidez moi

    Mon e-mail:joeuitnijmegen@yahoo.fr

    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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    #!/usr/bin/perl
    $mailprog = "/usr/lib/sendmail" ;
    $mailto = 'webmaster@mondomaine.com' ;
    $subject = "E-mail" ;
    $formurl = "http://www.mondomaine.com/mailform.htm" ;
    $errorurl = "http://www.mondomaine.com/error.html" ;
    $thankyouurl = "http://www.mondomaine.com/merci.htm" ;
     
    sub redirect_url {
     my ( $url ) = shift ;
     print "Location: $url\n\n" ;
    }
    sub parse_form_data {
     my ($request_method, $input_string, $content_length) ;
     my (@vars, $indiv_var, $name, $value);
     my (%form) ;
     $request_method = $ENV{'REQUEST_METHOD'} ;
     $content_length = $ENV{'CONTENT_LENGTH'} ;
     # load the entire string into $input_string
     if ($request_method =~ /post/i) {
      $input_string = "" ;
      read( STDIN, $input_string, $content_length ) ;
     }
     else {
      $input_string = $ENV{ 'QUERY_STRING' };
     }
     unless (defined $input_string) {
      $input_string = "" ;
     }
     # put all the variable pairs (name=value) into an array
     @vars = split( /&/, $input_string );
     # process each individual name, value pair, putting them
     # into a hash for easy access
     foreach $indiv_var ( @vars ) {
      # separate the pair
      ($name, $value) = split( /=/, $indiv_var, 2 );
      # translate encoding
      $name =~ s/%([\da-fA-F]{2})/pack("C", hex($1))/eg;
      $name =~ tr/+/ /;
      unless (defined $value) {
       # just in case there was no equals as in ISINDEX
       $value = "" ;
      }
      $value =~ s/%([\da-fA-F]{2})/pack("C", hex($1))/eg;
      $value =~ tr/+/ /;
      # put the pair in the hash for easy access
      $form{$name} = $value ;
     }
     return wantarray ? %form : undef ;
    }
    sub send_email {
     my ($mailprog, $email, $name, $mailto, $subject, $message) = @_ ;
     $name =~ s/[\r\n].*//s;
     $email =~ s/[\r\n].*//s;
     if (open MAIL, "|$mailprog -t") {
      print MAIL "To: $mailto\n" ;
      print MAIL "From: \"$name\" <$email>\n" ;
      print MAIL "Reply-To: \"$name\" <$email>\n" ;
      print MAIL "X-Mailer: chfeedback.pl 2.2.1\n" ;
      print MAIL "Subject: $subject\n\n" ;
      print MAIL $message ;
      close MAIL ;
     }
     # ignore fails, just don't do anything
     return ;
    }
    # ----------- main program ------
    my %form = parse_form_data();
    my $email ;
    if (exists $form{"email"}) {
     $email = $form{"email"} ;
    }
    else {
     redirect_url( $formurl );
     exit ;
    }
    if ($email eq "") {
     redirect_url( $errorurl );
     exit ;
    }
    my $name = $form{"name"} ;
    if ($name eq "") {
     redirect_url( $errorurl );
     exit ;
    }
    my $tirtre = $form{'tirtre'} ;
    if ($tirtre eq "") {
     redirect_url( $errorurl );
     exit ;
    }
    my $ville = $form{'ville'} ;
    if ($ville eq "") {
     redirect_url( $errorurl );
     exit ;
    }
    my $precisions = $form{'precisions'} ;
    if ($precisions eq "") {redirect_url( $errorurl ); 
     exit ;
    }
     
    my $http_referer = $ENV{ 'HTTP_REFERER' };
    my $message =
     "Ceci est un e-mail qui vous a été envoyé à partir de:\n" .
     "$http_referer\n" .
     "------------------------- CONTENU DU E-MAIL ---------------\n\n" .
     "Tirtre:" . $tirtre .
     "\nNom:" . $name .
     "\nVille/Pays:" . $ville . 
     "\nE-mail:" . $email . 
     "\nContenu du message:" . $precisions .
     "\n\n--------------------------------------------------------------------------------\n" ;
    send_email ( $mailprog, $email, $name, $mailto, $subject, $message );
    redirect_url( $thankyouurl );

    Merci

  2. #2
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 879
    Par défaut
    Bienvenue à toi

    Je te conseille de lire les règles du forum, stipulant notamment l'utilisation des balises codes
    Merci d'avance de modifier ton thread en ce sens pour une meilleure lisibilité.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

Discussions similaires

  1. formulaire en piece jointe
    Par 7focus dans le forum VBA Access
    Réponses: 11
    Dernier message: 28/08/2013, 07h45
  2. Réponses: 3
    Dernier message: 12/02/2007, 18h39
  3. FORMULAIRE avec envoi de piece jointe
    Par chrissvm dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 20/08/2006, 17h35
  4. envoyer un formulaire en piece jointe dans outlook
    Par gadjou dans le forum Access
    Réponses: 12
    Dernier message: 01/08/2006, 17h36
  5. Formulaire d'envoie de pieces jointes
    Par tonton59 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 02/09/2005, 13h44

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