HansM: CGI Automatisierung

Hallo,

Ich habe eine Internetseite mit einem Formular, dass die Daten an eine cgi postet. Wenn ich diesen Prozess automatisieren will und dabei alle Variablennamen kenne. geht das einfach so:?

cgi.cgi?Variable1=a&Variable2=b

Und wenn ich z.B. Radio-Buttons drinhab, wie würde ich das da machen?

  1. hallo HansM,

    Ich habe eine Internetseite mit einem Formular, dass die Daten an eine cgi postet. Wenn ich diesen Prozess automatisieren will und dabei alle Variablennamen kenne. geht das einfach so:?
    cgi.cgi?Variable1=a&Variable2=b

    Ich glaube, _so_ geht das nicht. Aber deine Fragestellung ist außerordentlich ungenau. Formulare sind normalerweise dazu da, daß ein Besucher dort irgendwas einträgt. Erst dann, wenn auf einen "Absenden"-button oder etwas Vergleichbares geklickt wird, wird das, was in "action=..." steht, aktiv und übermittelt die im Formular stehenden Daten an das entsprechende Script  -  gleichgültig, ob das Script dann PHP oder Perl oder irgendwas andres ist. Ein Formular, das "automatisch" bereits Daten abschickt, ohne daß Daten eingegeben wurden, kann ich mir nicht vorstellen.

    Und wenn ich z.B. Radio-Buttons drinhab, wie würde ich das da machen?

    Was hast du denn bisher probiert?

    Grüße aus Berlin

    Christoph S.

    1. Aber gerade das müsste doch theoretisch gehen oder?
      Das was ich erreichen will ist dass ich sagen wir ein vorgefertigtes Formular hab und das abgeschickt wird, ohne auf einen Submit Button zu klicken. Ob die Daten nun so abgeschickt werden indem man auf den Button drückt oder dadurch dass man genau das irgendwie (wie auch immer) automatisiert, sodass beim Aufruf einer HTML Seite sofort abgeschickt wird.

      (Weil so wie ich das bisher sehe kann man nur abschicken wenn man auf so einen Submit-Button klickt, stimmt das?)

      1. hallo HansM,

        Aber gerade das müsste doch theoretisch gehen oder?

        _Was_ müßte gehen, was willst du denn nun wirklich tun?

        (Weil so wie ich das bisher sehe kann man nur abschicken wenn man auf so einen Submit-Button klickt, stimmt das?)

        Nein. Selbstverständlich kann auch etwas automatisch an den Server zurückgeschickt werden. Meines Wissens geht das aber nicht über irgendwelche Formulare. Es funktioniert dann, wenn der Adreßaufruf selbst bereits auf einem Script landet. Die Menge und Qualität der damit erreichbaren Informationen ist allerdings begrenzt. _Was_ also willst du abfragen?

        Grüße aus Berlin

        Christoph S.

        1. So sieht die Form aus:

          <form action="http://irgeneinserver/script.cgi?&action=action" method="post">
          <input type="hidden" name="Variable1" value="12345678">
          <input type="hidden" name="Variable2" value="12345678">
          <input type="radio" name="radiobox" value="1" checked>Radiobox1
          <input type="radio" name="radiobox" value="2">Radiobox2

          <input type="submit" value="Action">

          </form>

          1. Das das Formular Daten per POST übergibt, können die Daten - wie gesagt - nicht an die URL angehängt werden.

            siehe auch: http://www.cgicorner.ch/cgi-bin/kb/kb.cgi?file=getpost.kb

            Gruss,
            Kanone

        2. Hallo,

          Aber gerade das müsste doch theoretisch gehen oder?

          _Was_ müßte gehen, was willst du denn nun wirklich tun?

          (Weil so wie ich das bisher sehe kann man nur abschicken wenn man auf so einen Submit-Button klickt, stimmt das?)

          Nein. Selbstverständlich kann auch etwas automatisch an den Server zurückgeschickt werden. Meines Wissens geht das aber nicht über irgendwelche Formulare. Es funktioniert dann, wenn der Adreßaufruf selbst bereits auf einem Script landet. Die Menge und Qualität der damit erreichbaren Informationen ist allerdings begrenzt. _Was_ also willst du abfragen?

          das ist Unsinn!
          Wenn Du damit den Unterschied Post zu Get meinst: ok.
          Aber auch ein Post läßt sich automatisch absetzen.

          Gruß
          Reiner

          1. Aber auch ein Post läßt sich automatisch absetzen.

            Hallo Reiner,

            wie machst du das dass du ein Post automatisch absetzt?

            Gruß HansM

            1. Aber auch ein Post läßt sich automatisch absetzen.

              Hallo Reiner,

              wie machst du das dass du ein Post automatisch absetzt?

              Gruß HansM

              Mit dem Modul LWP::UserAgent z.B. kannst Du beim Request Daten per Post absetzen.
              Guck Dir die Anleitung vielleicht mal auf http://www.cpan.org.

              Gruß
              Reiner

          2. hallo Reiner,

            das ist Unsinn!

            Die Bitte darum, eine gestellte Frage etwas präziser zu fassen, ist meines Erachtens niemals Unsinn.

            Wenn Du damit den Unterschied Post zu Get meinst: ok.
            Aber auch ein Post läßt sich automatisch absetzen.

            Ich habe bereits bestätigt, daß sich vieles automatisieren läßt  -  mit POST selbstverständlich ebenso wie mit GET. Der Sinn des Ganzen ist aber undurchschaubar. Formulare sind in der Regel dazu da, daß ein Besucher dort etwas einträgt  -  etwas auswählt (was mit Radiobuttons geschehen kann), einen Text schreibt ... Mir will ganz einfach der Sinn der Übung noch nicht einleuchten.

            Grüße aus Berlin

            Christoph S.

            1. hallo Reiner,

              das ist Unsinn!

              Die Bitte darum, eine gestellte Frage etwas präziser zu fassen, ist meines Erachtens niemals Unsinn.

              Verdreh meine Aussage nicht! "Unsinn" bezog sich nicht darauf, ich denke, das ist Dir auch bewußt.

              Wenn Du damit den Unterschied Post zu Get meinst: ok.
              Aber auch ein Post läßt sich automatisch absetzen.

              Ich habe bereits bestätigt, daß sich vieles automatisieren läßt  -  mit POST selbstverständlich ebenso wie mit GET. Der Sinn des Ganzen ist aber undurchschaubar. Formulare sind in der Regel dazu da, daß ein Besucher dort etwas einträgt  -  etwas auswählt (was mit Radiobuttons geschehen kann), einen Text schreibt ... Mir will ganz einfach der Sinn der Übung noch nicht einleuchten.

              Das scheint das Hauptproblem zu sein.

              Gruß
              Reiner

      2. (Weil so wie ich das bisher sehe kann man nur abschicken wenn man auf so einen Submit-Button klickt, stimmt das?)

        Nein, du kannst die Parameter auch in der URL per cgi.cgi?Variable1=a&Variable2=b übergeben (also ohne das Formular vorher auszufüllen), wenn sie vom Formular per GET übertragen werden!
        Klickst du auf den Submit-Button passiert auch nichts anderes, es wird die URL cgi.cgi?Variable1=a&Variable2=b gerufen.

        Gruss,
        Kanone

    2. Tag Christoph.

      Ich habe eine Internetseite mit einem Formular, dass die Daten an eine cgi postet. Wenn ich diesen Prozess automatisieren will und dabei alle Variablennamen kenne. geht das einfach so:?
      cgi.cgi?Variable1=a&Variable2=b
      Ich glaube, _so_ geht das nicht.

      Doch, so geht das unter den Voraussetzungen, dass ein Perlscript, das sich des CGI-Moduls bedient, zum Einsatz kommt. Dann ist die Methode der Formularverarbeitung ziemlich wurscht, das Modul erkennt automatisch, ob GET oder POST.

      [dsf 3.6]
      Siechfred

      --
      »Sie kochten heimlich mit Wasser und tranken öffentlich Wein.«
      1. morgens,

        cgi.cgi?Variable1=a&Variable2=b
        Ich glaube, _so_ geht das nicht.
        Doch, so geht das unter den Voraussetzungen, dass ein Perlscript, das sich des CGI-Moduls bedient, zum Einsatz kommt.

        Genau das hab ich anzumerken versucht. HansM will aber _nicht_ unmittelbat ein Script aufrufen, sondern ein Formular innerhalb eines HTML-Dokuments.

        Dann ist die Methode der Formularverarbeitung ziemlich wurscht, das Modul erkennt automatisch, ob GET oder POST.

        Schon richtig. Aber was kannst du in einem _unsichtbaren_ Formular außer ein paar Umgebungsvariablen schon abrufen? Formulare sind dazu da, daß der Besucher der Seite irgendwas ankreuzt, irgendeine Wertung trifft oder eventuell etwas schreibt  -  und daß _diese_ Daten dann nachfolgend dem aufzurufenden Script übergeben werden. Da du nicht wissen kannst, wie sich der Seitenbesucher entscheiden wird, läßt sich also ein Formularabruf nicht automatisieren.

        Neee, hier ist irgendwas verquer gedacht, und der Sinn dessen, was eigentlich erreicht werden soll, ist ganz einfach nicht definiert.

        Grüße aus Berlin

        Christoph S.

  2. Hallo,

    Ich habe eine Internetseite mit einem Formular, dass die Daten an eine cgi postet. Wenn ich diesen Prozess automatisieren will und dabei alle Variablennamen kenne. geht das einfach so:?

    cgi.cgi?Variable1=a&Variable2=b

    Jow. Genauso gehts!

    use CGI 'param';

    $xa = param('Variable1');
    $xb ? param('Variable2');

    Vorsicht: $a, $b sind PERL eigene Variablen. Ähjmm, Du redests doch über PERL im sinne von CGI !? :-)

    VLG, Rolf

    1. Hallo,

      Ich habe eine Internetseite mit einem Formular, dass die Daten an eine cgi postet. Wenn ich diesen Prozess automatisieren will und dabei alle Variablennamen kenne. geht das einfach so:?

      cgi.cgi?Variable1=a&Variable2=b

      Jow. Genauso gehts!

      use CGI 'param';

      $xa = param('Variable1');
      $xb ? param('Variable2');

      Vorsicht: $a, $b sind PERL eigene Variablen. Ähjmm, Du redests doch über PERL im sinne von CGI !? :-)

      VLG, Rolf

      Danke für deine Antwort :)
      Mein Problem ist ich kenne die CGI (zu der ich senden will) gar nicht :-)

      Ich sehe nur was für Variablennamen in einem Formular vorkommen (welches dann über einen Submitbutton an ein CGI Script weitergeschickt wird) und versuche so die Syntax für den Aufruf der CGI mit einer solchen Zeile (cgi.cgi?Variable1=a&Variable2=b
      ) mit meinen Werten für die Variablen zu erreichen. Nur das Problem ist dass in dem Formular auch ein Radiobutton vorkommt. Und bei dem habe ich keine Ahnung wie ich den "Wert" für diesen RadioButton weitergeben soll.

      So irgendwie:
      cgi.cgi?Variable1=a&Variable2=b&xyz=checked

      Nur Problem ist: ich habe zwei sloche Teile mit gleichem Namen aber unterschiedlichem Value.

      <input type="radio" name="xyz" value="1" checked>
      <input type="radio" name="xyz" value="2" unchecked>

      Wie mache ich das dass hier die richtigen Zustände (checked/unchecked) für die beiden (ja eigentlich zusammengehörenden) Radioboxen (oder wie die auch immer heißen) weitergebe?

      1. Hallo,

        Mein Problem ist ich kenne die CGI (zu der ich senden will) gar nicht :-)

        Du brauchst auf jeden Fall ein Script was serverseitig das Formular auswertet. Das ist ein CGI. Und das kann in verschiedenen Scriptsprachen geschrieben sein, beispw. in PERL.

        So irgendwie:
        cgi.cgi?Variable1=a&Variable2=b&xyz=checked

        Das Perl Modul CGI und die Funktion 'param' parst eine solche URI wie folgt:

        Variable1=a

        Name des Parameters: Variable1
        Wert des Parameters: a

        xyz=checked
        Name des Parameters: xyz
        Wert des Parameters: checked

        Nur Problem ist: ich habe zwei sloche Teile mit gleichem Namen aber unterschiedlichem Value.

        <input type="radio" name="xyz" value="1" checked>
        <input type="radio" name="xyz" value="2" unchecked>

        das CGI Modul in PERL macht es ganz einfach: die Funktion 'param' liest die Werte von Parametern gleichen Namens auf ein Array like this:

        @vals = param('xyz');

        es kommt also auf den Kontext an.

        Viele Grüße, Rolf

        1. 你好 Rolf,

          der OP moechte vermutlich einen POST-Request stellen. Das geht mit
          LWP::UserAgent (Dokumentation dazu gibts in perldoc lwpcook, leider ist
          perldoc.com gerade nicht erreichbar, deshalb gibt es keinen Link).

          再见,
           CK

          --
          Das Sein entsteht aus dem Nicht-Sein.
          http://wwwtech.de/