Max: Formulare was wird an Perl übergeben? (Nur Profis)

Hallo,

ich habe mal eine Frage:

Wenn ich ein HTML Formular an ein Perl-Script absende was wird da genau übermittelt?

Ich habe schon einiges getestet, mir scheint als ob nur Form-elemente die einen Name haben versandt werden.

also:

<INPUT value="123">  --> wird nicht versandt

<INPUT value="123" name="test">  --> wird versandt

aber: (nicht alles was einen Namen hat)

<irgendwas value="123" name="test">  --> wird nicht versandt

Was wird da eingentlich verschickt? Oder lese ich das nur falsch ein?

Werden alle Tags wie INPUT, SELECT und TEXTAREA verschickt oder nur die einen Namen haben?

Wer weis das genau oder wo steht das? Ich suche schon seit 3 Tagen vergebens.

Vielen Dank für einen Tipp

Tschüss Max

  1. Hi,

    Wenn ich ein HTML Formular an ein Perl-Script absende was wird da genau übermittelt?

    finde es doch selbst heraus (mal aus dem Lehrbuch):

      
    my $key;  
    my %args = read_params();  
      
    foreach $key (keys %args){  
      print $args{$key};  
    }  
      
    sub read_params {  
        my $input = '';  
        my %args;  
        read( STDIN, $input, $ENV{'CONTENT_LENGTH'} ) if ( $ENV{'CONTENT_LENGTH'} );  
        foreach my $parameter ( split /[&;]/, $input ) {  
            my ( $key, $val ) = split( /=/, $parameter );  
            $args{$key} = $val;  
        }  
        return %args;  
    }#read_params  
    
    

    hth, klaus

    1. Hallo,

      habe ich schon getestet es werden mit Parm nur die Felder mit Namen übergeben. Selbst doppelnamige werden nur eimal übergeben.

      Die Frage ist was passiert mit den ohne Namen kann man die per POST auch anderes einlesen?

      Tschüss Max

      1. Hi,

        habe ich schon getestet es werden mit Parm nur die Felder mit Namen übergeben.

        ja, eben. Schon mal einen HTTP-Request angesehen? Sieht man ausschnittsweise in der Adresszeile, wenn du eine lange URI hast:

        datei.cgi?p1=v1&p2=v2

        Langweilig wär's ja, wenn datei.cgi?=v1&=v2 dastehen würde...

        Selbst doppelnamige werden nur eimal übergeben.

        Nein, auch zweimal:

        datei.cgi?p1=v1&p1=v2

        Die Variable p1 existiert dagegen nur einmal, deshalb wird der erste Wert durch den zweiten überschrieben

        E7

        1. datei.cgi?p1=v1&p1=v2

          Die Variable p1 existiert dagegen nur einmal, deshalb wird der erste Wert durch den zweiten überschrieben

          Nur wenn man das schlechte Beispiel aus dem Lehrbuch verwendet, mit dem CGI Modul ist dies kein Problem:

          my @p1 = CGI::param('p1');

          Struppi.

          1. Hallo,

            eben nochmal getestet:

            Mit dem IE 6.0 ist es so das per GET nur Formularfelder mit Namen also (name=...) übertragen werden. Die stehen jederfalls in Perl per $ENV{'QUERY_STRING'}; nicht mehr da.

            Und mit param wird auch nichts übergeben. Habe eben alle Empfangenen param Felder ausgegeben.

            1. eben nochmal getestet:

              hätte ich wohl auch tun sollen.

              Struppi.

  2. hallo Max,

    ich habe mal eine Frage:

    Nunja, du willst ja nur Antworten von Profis.

    Wenn ich ein HTML Formular an ein Perl-Script absende was wird da genau übermittelt?

    Das tust du ja ganr nicht. Du sendest niemals ein Formular ab. Insofern solltest du bitte deine Frage präziser stellen. Und da du ganz profimäßig deine Frage unter "HTML" rubriziert hast, kann dir leider nur geantwortet werden, daß das mit HTML zunähst noch gar nix zu tun hat.

    Es gibt bestimmt noch andere Profis, die dir sinngemäß dasselbe sagen werden.

    Grüße aus Berlin

    Christoph S.

  3. Wenn ich ein HTML Formular an ein Perl-Script absende was wird da genau übermittelt?

    Alles was der Browser will.

    Ich habe schon einiges getestet, mir scheint als ob nur Form-elemente die einen Name haben versandt werden.

    Nein.

    Wer weis das genau oder wo steht das? Ich suche schon seit 3 Tagen vergebens.

    selfhtml weiß es
    http://de.selfhtml.org/servercgi/cgi/formularverarbeitung.htm

    Struppi.

    1. hallo Struppi,

      Wenn ich ein HTML Formular an ein Perl-Script absende was wird da genau übermittelt?
      Alles was der Browser will.

      Konkreter: alles, was der Browser entsprechend seinen Einstellungen versenden darf. Im übrigen ist es niemals das Formular selbst, das versendet wird, sondern es sind die Daten, die ins Formular eingetippt wurden. Allerdings kann ich sowas ja nicht genau wissen, weil ich kein Profi bin ;-)

      Grüße aus Berlin

      Christoph S.

  4. Hallo.

    Wie kommst du darauf, dass deine Frage nur Profis beantworten könnten? Das kann doch eigentlich jeder selbst zuhause am PC testen:

      
    <form action="index.html" method="get">  
     <input type="text">  
     <input type="text" name="inp">  
      
     <textarea></textarea>  
     <textarea name="txtarea"></textarea>  
      
     <input type="submit">  
    </form>  
    
    

    Das Ergebnis:

    index.html?inp=&txtarea=

    Was wird nun überliefert? Nur diese, die auch einen Namen haben! Unter welchem Namen soll denn sonst das alles übertragen werden?

    maumau

    1. Das Ergebnis:

      index.html?inp=&txtarea=

      Dann trag mal was in die Felder ein!

      Was wird nun überliefert? Nur diese, die auch einen Namen haben! Unter welchem Namen soll denn sonst das alles übertragen werden?

      unter keinem, trotzdem werden die Inhalte übertragen

      Struppi.

  5. echo $begrüßung;

    Wenn ich ein HTML Formular an ein Perl-Script absende was wird da genau übermittelt?

    Wenn dein Perl-Script einen Webserver darstellt...

    Ansonsten wird an den sich für den Request zuständig fühlenden Webserver theoretisch das versendet, was in der HTML-Spezifikation geregelt ist:

    HTML 4.0.1 - Kapitel [http://www.w3.org/TR/html4/interact/forms.html#h-17.13@title=Form submission]:

    17.13.2 Successful controls

    A successful control is "valid" for submission. Every successful control has its control name paired with its current value as part of the submitted form data set. A successful control must be defined within a FORM element and must have a control name.

    echo "$verabschiedung $name";

    1. Ich dachte mir es schon, hatte aber noch irgendwie gehofft das es anders geht. Danke

  6. mmm..., schade! ich stehe erst ganz kurz vor dem Profiniveau. kann darum leider nicht antworten. sonst hätte ich dir gern eine einfache lösung zukommen lassen. schade...

    1. Moin!

      mmm..., schade! ich stehe erst ganz kurz vor dem Profiniveau...

      Naja :)

      Ich hatte mir eine ziemlich ähnlich lautende Antwort verkniffen. Zumal der Effekt, dass man umsomehr Fragen hat, je mehr man Antworten hatte, sicherlich nicht nur bei mir auftritt:

      'Profi' - wann bitte ist man das?

      MFFG (Mit freundlich- friedfertigem Grinsen)

      fastix®

      --
      Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development
      1. Hallo fastix®,

        Ich hatte mir eine ziemlich ähnlich lautende Antwort verkniffen. Zumal der Effekt, dass man umsomehr Fragen hat, je mehr man Antworten hatte, sicherlich nicht nur bei mir auftritt:

        'Profi' - wann bitte ist man das?

        Wenn die anderen einen dafür halten. Ohne andere Leute, die zu dir aufsehen können braucht's keine Hierarchie, also auch keine Profis.

        Grüße aus Barsinghausen,
        Fabian

        --
        "It's easier not to be wise" - < http://www.fabian-transchel.de/kultur/philosophie/ialone/>
        1. Moin!

          Ohne andere Leute, die zu dir aufsehen können braucht's keine Hierarchie, also auch keine Profis.

          Du meinst, das Problem besteht einerseits darin, einen Deppen zu finden und auf der anderen Seite darin, denselben zu geben?

          MFFG (Mit freundlich- friedfertigem Grinsen)

          fastix®

          --
          Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development
          1. Hallo fastix®,

            Ohne andere Leute, die zu dir aufsehen können braucht's keine Hierarchie, also auch keine Profis.
            Du meinst, das Problem besteht einerseits darin, einen Deppen zu finden und auf der anderen Seite darin, denselben zu geben?

            Ja. Professionalitaet zeigt sich immer in Herumstochern auf höherem Niveau.

            Grüße aus Barsinghausen,
            Fabian

            --
            "It's easier not to be wise" - < http://www.fabian-transchel.de/kultur/philosophie/ialone/>
        2. hallo Fabian,

          Ohne andere Leute, die zu dir aufsehen können braucht's keine Hierarchie, also auch keine Profis.

          Ich hoffe stark, daß du doch zu mir aufsehen möchtest *SCNR*

          Grüße aus Berlin

          Christoph S.

        3. Hallo Freunde des gehobenen Forumsgenusses,

          Wenn die anderen einen dafür halten. Ohne andere Leute, die zu dir aufsehen können braucht's keine Hierarchie, also auch keine Profis.

          Richtig. Einer meiner Freunde hat von der technischen Seite des Internets fast keine Ahnung und
          hölt mich daher für den Ultimativ-Profi ;-)

          Gruß
          Alexander Brock

          --
          Ceterum censeo Carthaginem esse delendam
          1. hallo Alexander,

            Einer meiner Freunde [...] hölt mich

            Achso, die Evolution hat dich auf der Stufe des Höhlenmenschen stehengelassen. Sowas aber auch ...

            Grüße aus Berlin

            Christoph S.

            1. Hallo Freunde des gehobenen Forumsgenusses,

              Achso, die Evolution hat dich auf der Stufe des Höhlenmenschen stehengelassen. Sowas aber auch ...

              [...] ich meie damit nicht die Tippfehler, die jedem unterlaufen, und auch mir unterlaufen können. (Christoph Schnauß)

              Gruß
              Alexander Brock

              --
              /voodoo.css:
              #GeorgeWBush { position:absolute; bottom:-6ft; }