Erwin: Absendebutton wird als XY Koordinate erkannt????

Hallo,
ich habe hier ein Problem mit dem Absenden eines Formularinhaltes:

form action="/cgi-bin/comments.pl" method=post>
<input type=hidden name="AnwenderName" value="Fester Wert"><br>
<input type=hidden name="Adresse" value="Wieder fester Wert"><BR>
<input type=image src="gutschein/grafik/gutschein_klein.gif" value="Absenden"></form>

Dieses möchte ich absenden.
mit diesem Script möchte ich es auslesen:

@Formularfelder = split(/&/, $Daten);
foreach $Feld (@Formularfelder)  
{
  ($name, $value) = split(/=/, $Feld);  
  $value =~ tr/+/ /;
  $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
  $value =~ s/<!--(.\n)*-->//g;      
  $Formular{$name} = $name;  
  $Formular{$value} = $value;
  print "$Formular{$name} = <b>$Formular{$value}</b>", "<br>\n";

Problem: Der Absendebutten input image wird als Wert erkannt und in der Formularausgabe erscheint x=23 und Y=41.
Was kann ich tun, damit der grafische Absendebutton nicht als Eingabewert erkannt wird und im Ergebniss nicht mehr auftaucht????

Vielen Dank im Voraus für Antworten.
Erwin

  1. Hallo,

    @Formularfelder = split(/&/, $Daten);
    foreach $Feld (@Formularfelder)

    »»  {

    ($name, $value) = split(/=/, $Feld);  
      $value =~ tr/+/ /;
      $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
      $value =~ s/<!--(.\n)*-->//g;      
      $Formular{$name} = $name;  
      $Formular{$value} = $value;
      print "$Formular{$name} = <b>$Formular{$value}</b>", "
    \n";

    Hat zwar nichts mit deinem 'Problem' zu tun, aber trotzdem: Du solltest das Modul CGI.pm einsetzen, und nicht selbst die Formularauswertung machen. Es hat viele Vorteile, und es ist seit längerer Zeit ein Standard-Modul, daß in jeder Perl-Distribution vorhanden ist.

    Problem: Der Absendebutten input image wird als Wert erkannt und in der Formularausgabe erscheint x=23 und Y=41.
    Was kann ich tun, damit der grafische Absendebutton nicht als Eingabewert erkannt wird und im Ergebniss nicht mehr auftaucht????

    Gar nichts. Ignorier einfach die Werte falls Du sie nicht benötigst.

    Grüße
      Klaus

    1. Hi,

      Problem: Der Absendebutten input image wird als Wert erkannt und in der Formularausgabe erscheint x=23 und Y=41.
      Was kann ich tun, damit der grafische Absendebutton nicht als Eingabewert erkannt wird und im Ergebniss nicht mehr auftaucht????

      Gar nichts. Ignorier einfach die Werte falls Du sie nicht benötigst.

      um genauer zu sein: Bei <input type=image> werden die Koordinaten als "name.x" und "name.y" bzw. einfach "x" und "y", falls kein name-Attribut angegeben ist, übergeben. Das ist der Sinn dieses Buttontyps.

      Cheatah

      1. Das Problem ist, daß ich die Eingaben in einem Formular wieder ausgebe.
        Ich möchte nicht immer x und y dort drin stehen haben.

        Wie kann man versteckte Felder über ein Script laufen lassen, wenn der Absendebutton grafisch ist??

        Bitte helft mir.

        erwin

        1. Hallo,

          Wie gesagt einfach ignorieren. Hier eine der (vielen) Möglichkeiten:

          #!/usr/bin/perl

          use CGI;
          use strict;

          my $query = new CGI;
          my @ausgabefelder = ('Name','Vorname','blablabla');

          print $query->header;
          print $query->start_html(-title=>'Ergebnisse');
          foreach my $feld (@ausgabefelder)
            {
            print "$feld = ".$query->param($feld)."<br>\n";
            }
          print $query->end_html;

          Alles klar? Nein? Erklärungen stehen in der Doku zu CGI.pm.

          Grüße
            Klaus