Ergebnis 1 bis 3 von 3

Thema: Formular mit Perl auslesen und verschicken

  1. #1
    Gast

    Standard Formular mit Perl auslesen und verschicken

    Hallo zusammen.

    Bislang benutzte ich stets ein kleines (von einem Bekannten gemachtes) Perlskript zum versenden von Formulardaten.
    Ich selber habe keine Ahnung von Perl und konnte lediglich die Empfanger- u. Absenderdaten entsprechend ändern (was mir bisher aus ausgereicht hat).

    Jetzt möchte ich aber mit Hilfe zweier Radiobuttons den Empfanger bestimmen.
    D.h. der Absender kreuzt entweder den Button "Buch" oder "Musik" an, und das Formular wird entsprechend an "buch@xxx.xx" oder "musik@xxx.xx" geschickt.
    So ist mein Plan.
    Leider habe ich nicht die geringste Ahnung, wie ich mein jetziges Skript verändern bzw. erweitern muss.

    Code:
    #!/usr/bin/perl
    $email_prog="/usr/sbin/sendmail";
    
    ##########Daten vom Script lesen#########################
         
    if ($ENV{'REQUEST_METHOD'} eq 'POST') {
    #print "Content-type: text/html\n\n";
    
    ################Formular einlesen##########################
       read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
    open(MAIL,"|$email_prog -t");
    print MAIL "from: xxx\@xxx.de\n";
    print MAIL "to: yyy\@yyy.de\n";
    print MAIL "subject: zzzzz\n\n";
    
    ##############Split the name-value pairs####################
      @pairs = split(/&/, $buffer);
       foreach $pair (@pairs) {
          ($name, $value) = split(/=/, $pair);
          $value =~ tr/+/ /;
          $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
          $value=~ s/</\&lt;/g;
          $value=~ s/>/\&gt;/g;
          $value=~ s/;/,/g;
          $value=~ s/"/''/g;
          $value=~ s/\n/ /g;
          $value=~ s/\r//g;
          $value=~ s/&#40;015&#41;//g;
          $value=~ s/&#40;012&#41;//g;
    
          $FORM&#123;$name&#125; = $value;
    ###########Feld einlesen################################
       $textstring = $name . " = " . $FORM&#123;$name&#125;."\n";
       print MAIL $textstring ."\n";
      &#125;
    &#125;   
    close&#40;MAIL&#41;;
    print "Location&#58; http&#58;//www.yyy.de/thx.htm\n\n";
    Gibt es hier vielleicht einen gnädigen Skripter, der mir weiterhelfen will?

    Schonmal danke im Vorraus
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Meister(in)
    Registriert seit
    15.01.2007
    Ort
    Hannover
    Beiträge
    382
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    also es gibt da ein schönes perl modul, um formulare abzuarbeiten... aber da dus immer so machst, ändern wir lieber nicht allzuviel... "don't touch a running sytsem"



    Code:
    #!/usr/bin/perl
    $email_prog="/usr/sbin/sendmail";
    
    ##########Daten vom Script lesen#########################
    
    if &#40;$ENV&#123;'REQUEST_METHOD'&#125; eq 'POST'&#41; &#123;
    #print "Content-type&#58; text/html\n\n";
    
    ################Formular einlesen##########################
       read&#40;STDIN, $buffer, $ENV&#123;'CONTENT_LENGTH'&#125;&#41;;
    ##############Split the name-value pairs####################
      @pairs = split&#40;/&/, $buffer&#41;;
       foreach $pair &#40;@pairs&#41; &#123;
          &#40;$name, $value&#41; = split&#40;/=/, $pair&#41;;
          $value =~ tr/+/ /;
          $value =~ s/%&#40;&#91;a-fA-F0-9&#93;&#91;a-fA-F0-9&#93;&#41;/pack&#40;"C", hex&#40;$1&#41;&#41;/eg;
          $value=~ s/</\&lt;/g;
          $value=~ s/>/\&gt;/g;
          $value=~ s/;/,/g;
          $value=~ s/"/''/g;
          $value=~ s/\n/ /g;
          $value=~ s/\r//g;
          $value=~ s/&#40;015&#41;//g;
          $value=~ s/&#40;012&#41;//g;
    
          $FORM&#123;$name&#125; = $value;
    ###########Feld einlesen################################
       #hier hängen wir nun immer den text an eine variable an
       $textstring .= $name . " = " . $FORM&#123;$name&#125;."\n\n";
      &#125;
    &#125;
    ###########Mail abschicken################################
    
    #hier prüfen wir, an wen die mail gehen soll
    #empfaenger ist der radiobutton
    if &#40;$FORM&#123;'empfaenger'&#125; eq 1&#41; &#123;
       $empfaenger = "asd\@blub.de";
    &#125;else &#123;
       $empfaenger = "huhu\@muinchhause.de";
    &#125;
    #nun wollen wir die mail schreiben
    
    open&#40;MAIL,"|$email_prog -t"&#41;;
    print MAIL "from&#58; xxx\@xxx.de\n";
    print MAIL "to&#58; ".$empfaenger."\n";
    print MAIL "subject&#58; zzzzz\n\n";
    print MAIL $textstring ."\n";
    close&#40;MAIL&#41;;
    print "Location&#58; http&#58;//www.yyy.de/thx.htm\n\n";
    es wird nun einfach geprüft, welchen wert der radiobutton hat (hier empfaenger) und dementsprechend wird der empfaenger ausgewählt... vieleicht nicht die schönste lösung, aber er sollte problemlos klappen

  3. #3
    Gast

    Standard

    Vielen Dank!
    Genau so sollte es sein.

Ähnliche Themen

  1. html-formular per Mail verschicken
    Von Nessie im Forum HTML & CSS Forum
    Antworten: 7
    Letzter Beitrag: 05.05.2008, 22:05
  2. kostenlos sms verschicken
    Von im Forum Computer - Internet Forum
    Antworten: 9
    Letzter Beitrag: 13.11.2007, 10:37
  3. Problem mit Formular und Perl
    Von R2D21990 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 4
    Letzter Beitrag: 02.02.2007, 16:47
  4. Browser auslesen in eine Formular??
    Von uhrturm im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 4
    Letzter Beitrag: 12.04.2005, 01:05
  5. Formular erstellen zum Speichern und Auslesen
    Von vvb im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 18.01.2005, 14:50

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •