alive: Fehler bei Checkboxen

Hallo,

ich habe ein Problem bei mir werden die checkboxen immer mit dem definierten "aktivierten Wert" zurückgegeben, auch wenn sie gar nicht aktiviert sind.

Woran kann das liegen??

Ich habe den einfachen Form-Mailer verwendet, mit dem eigentlich laut Erläuterungen das Auslesen von checkboxen funktionieren sollte.

http://selfaktuell.teamone.de/tippstricks/cgiperl/form-mail/index.htm

Gruß

  1. hi,

    ich habe ein Problem bei mir werden die checkboxen immer mit dem definierten "aktivierten Wert" zurückgegeben, auch wenn sie gar nicht aktiviert sind.

    Woran kann das liegen??

    an deinem code ...?

    gruß,
    wahsaga

    --
    [ Hier könnte Ihre Werbung stehen! ]
    1. Hi,

      mein Code ist genau wie der im Beispiel hier auf der Seite!!

      Guckst Du...

      #!/usr/bin/perl -w

      -------> SMTP-Programm zum Versenden der Mail:

      $Sendmail_Prog = "/usr/sbin/sendmail";

      -------> Modul für CGI-Scripts einbinden:

      use CGI;

      -------> Modul für CGI-Scripts zum Einlesen der Formulardaten anwenden:

      $query = new CGI;
      @names = $query->param;

      -------> interne Daten aus den erwarteten hidden-Feldern auslesen:

      $delimiter = $query->param('delimiter');  # ---> Begrenzerzeichen zwischen name und value
      $mailto = $query->param('mailto');        # ---> Empfängeradresse
      $returnhtml = $query->param('return');    # ---> URL für Dankeseite
      $subject = $query->param('subject');      # ---> E-Mail-Subject

      -------> Text der E-Mail aus den Formulardaten ermitteln:

      $mailtext = "";
      foreach(@names) {
        $name = $_;
        @values = "";
        @values = $query->param($name);
        if($name ne "mailto" && $name ne "return" && $name ne "subject" && $name ne "delimiter") {
          foreach $value (@values) {
            $mailtext = $mailtext.$name;
            $mailtext = $mailtext.$delimiter;
            $mailtext = $mailtext.$value."\n";
          }
        }
      }

      -------> E-Mail versenden:

      open(MAIL,"|$Sendmail_Prog -t") || print STDERR "Mailprogramm konnte nicht gestartet werden\n";
      print MAIL "To: $mailto\n";
      print MAIL "Subject: $subject\n\n";
      print MAIL "$mailtext\n";
      close(MAIL);

      -------> Dankeseite an Browser senden:

      print "Location: $returnhtml\n\n";

      Gruß

      1. Hi,

        [...]

        Sehe da keine Checkboxen. Also auch kein Problem.

        Gruss, Rolf

        --
        KnowHow veröffentlichen statt Patentieren!
      2. Hi,

        $mailto = $query->param('mailto');        # ---> Empfängeradresse
        [...]
        open(MAIL,"|$Sendmail_Prog -t") || print STDERR "Mailprogramm konnte nicht gestartet werden\n";
        print MAIL "To: $mailto\n";

        *Nie*, absolut *niemals*, die Mailadresse, an die was versendet werden soll, einfach als Parameter übernehmen bzw. übergeben. Das Skript wird somit zum Sprungbrett für jeden Spammer!

        Bei Formmailern immer die Adresse fest im Code angeben:

        print MAIL "To: deine@mailadresse.de\n";

        Achja:

        foreach(@names) {
          $name = $_;

        kann man auch als

        foreach $name (@names){

        schreiben.

        HTH

        ortenau-s-bahner

        --
        ss:} zu:$ ls:} fo:| de:] va:) ch:? sh:( n4:# rl:? br:> js:| ie:( fl:{ mo:)
        1. Hi,

          $mailto = $query->param('mailto');        # ---> Empfängeradresse
          [...]
          open(MAIL,"|$Sendmail_Prog -t") || print STDERR "Mailprogramm konnte nicht gestartet werden\n";
          print MAIL "To: $mailto\n";

          *Nie*, absolut *niemals*, die Mailadresse, an die was versendet werden soll, einfach als Parameter übernehmen bzw. übergeben. Das Skript wird somit zum Sprungbrett für jeden Spammer!

          Das ist vollkommen richtig, also nicht machen.

          Bei Formmailern immer die Adresse fest im Code angeben:

          print MAIL "To: deine@mailadresse.de\n";

          Das muss ich verbessern ;-) so:

          print MAIL "To: deine@mailadresse.de\n";

          Also die Crux mit der Maskiererei... kann umgangen werden mit 'oifach gwodn':

          'rosti@vr-web.de';

          Gruss aus Mittelbaden, Rolf

          --
          KnowHow veröffentlichen statt Patentieren!
          1. Hi,

            Das muss ich verbessern ;-) so:

            print MAIL "To: deine@mailadresse.de\n";

            Also die Crux mit der Maskiererei... kann umgangen werden mit 'oifach gwodn':

            Grmpf! Immer dieses blöde double-quoting. Jeder steckt alles in doppelte Anführungszeichen, auch wenn es gar nicht nötig ist (ok, in dem Fall wegen dem \n) und verteilt dann lieber zwei Handvoll Backslashes als einfach einfach zu quoten.

            'ortenau-s-bahner'

            --
            ss:} zu:$ ls:} fo:| de:] va:) ch:? sh:( n4:# rl:? br:> js:| ie:( fl:{ mo:)
            1. Hi,

              Das muss ich verbessern ;-) so:

              print MAIL "To: deine@mailadresse.de\n";

              Also die Crux mit der Maskiererei... kann umgangen werden mit 'oifach gwodn':

              Grmpf! Immer dieses blöde double-quoting. Jeder steckt alles in doppelte Anführungszeichen, auch wenn es gar nicht nötig ist (ok, in dem Fall wegen dem \n) und verteilt dann lieber zwei Handvoll Backslashes als einfach einfach zu quoten.

              Achwas, ich stolpere auch regelmäßig darüber ;-)

              Das Letztemal hierbei
              $impressum = qq(
                  <pre>
                     eMail: rosti@vr-web.de
                  </pre>
              );

              print $impressum; # Internal Server Error

              Was solls *g

              Gruss vom Oberrhein, Rolf

              --
              KnowHow veröffentlichen statt Patentieren!
  2. Hallo,

    hat sich schon geklärt, hab den Fehler schon gefunden!!!

    Danke.

    Gruß

    1. hi,

      hat sich schon geklärt, hab den Fehler schon gefunden!!!

      wäre nett, wenn du für's archiv noch kurz mitteilen könntest, woran's lag.

      gruß,
      wahsaga

      --
      [ Hier könnte Ihre Werbung stehen! ]