Johnny: Formulare zählen

Hi!

Ich möchte folgendes erreichen:

Die über das Formular einer Webseite per CGI übermittelten Daten sollen automatisch nummeriert (gezählt) werden, d.h. das erste Formular hat eine Variable "nummer" mit Wert "1", das zweite hat "2", usw.

An dieser Aufgabenstellung knobele ich nun schon eine geschlagene Woche, obschon ja nur 1 und 1 zusammenzuzählen sind. ;()

Die Nummerierung kann auch nachträglich offline erfolgen, mit welchen Mitteln und Tricks auch immer - hat da jemand eine zündende Idee für mich?

Muchas Gracias
JOhnnY

  1. Hi,

    Die über das Formular einer Webseite per CGI übermittelten Daten sollen automatisch nummeriert (gezählt) werden, d.h. das erste Formular hat eine Variable "nummer" mit Wert "1", das zweite hat "2", usw.

    hm? Was heißt das "erste" Formular - meinst Du das erste auf einer HTML-Seite, die erste Anfrage von einem (einzigen) Formular, oder wie oder was?

    Falls ersteres: Nimm einen <input type="hidden" name="formularnummer" value="1">. Falls letzteres: Du musst das CGI-Script um den für einen Counter relevanten Code erweitern.

    Cheatah

    1. Hi,

      hm? Was heißt das "erste" Formular - meinst Du das erste auf einer HTML-Seite, die erste Anfrage von einem (einzigen) Formular, oder wie oder was?

      -----
      ich meine die erste Anfrage soll die Nummer Eins kriegen, die nächste Anfrage die Nummer zwei, etc...

      Falls letzteres: Du musst das CGI-Script um den für einen Counter relevanten Code erweitern.

      -----
      äh, ja... Sowas habe ich schon heftig gesucht in verschiedenen CGI-Verzeichnissen, bin aber nicht fündig geworden. Dazu kommt, daß ich überhaupt erst seit heute die Möglichkeit habe, CGIs einzusetzen - bin also ziemlich ahnungslos was CGIs angeht.

      Also CGI-Counter gibt´s ja tausende, CGI-Formmailer sind auch in großer Auswahl vorhanden, nur countende Formmailer hab isch net finden können...

      Hast Du vielleicht noch ein paar mehr Infos, wie ich das angehen kann, in einen CGI-Formmailer einen Counter einzubauen?

      Muchas Gracias
      JOhnnY

      1. Hi,

        ich meine die erste Anfrage soll die Nummer Eins kriegen, die nächste Anfrage die Nummer zwei, etc...

        okay, verstehe.

        Falls letzteres: Du musst das CGI-Script um den für einen Counter relevanten Code erweitern.
        äh, ja... Sowas habe ich schon heftig gesucht in verschiedenen CGI-Verzeichnissen, bin aber nicht fündig geworden.

        Nicht? Es gibt tausende Counter-Scripts. Ob die nun per SSI aufgerufen werden, graphische Ausgabe haben, im stillen Kämmerlein zählen oder was auch immer, kann Dir egal sein - irgendwo darin ist ein Code, der einen Wert hochzählt, und nur das brauchst Du.

        Dazu kommt, daß ich überhaupt erst seit heute die Möglichkeit habe, CGIs einzusetzen - bin also ziemlich ahnungslos was CGIs angeht.

        Dann lass Dir gesagt sein, dass Du a) nicht erwarten kannst, unvorgesehene Funktionen auf die Schnelle umsetzen zu können; und dass b) eine Vielzahl der frei verfügbaren Scripts grottenschlecht sind (insbesondere die von Matt Wright solltest Du *dringend* meiden; aber auch viele andere taugen nichts). Beides bedingt, dass Du Dich mit den Grundlagen beschäftigen solltest.

        Also CGI-Counter gibt´s ja tausende, CGI-Formmailer sind auch in großer Auswahl vorhanden, nur countende Formmailer hab isch net finden können...

        Wenn Du Speck findest und Eier hast, kannst Du Eier mit Speck machen, auch wenn Du nirgendwo Eier mit Speck kaufen kannst.[1]

        Cheatah

        [1] Ja, ich weiß, der Spruch geht eigentlich anders :-)

        1. Hi Cheatah,

          Dann lass Dir gesagt sein, dass Du a) nicht erwarten kannst, unvorgesehene Funktionen auf die Schnelle umsetzen zu können; und dass b) eine Vielzahl der frei verfügbaren Scripts grottenschlecht sind (insbesondere die von Matt Wright solltest Du *dringend* meiden; aber auch viele andere taugen nichts). Beides bedingt, dass Du Dich mit den Grundlagen beschäftigen solltest.

          -----
          jau, ich beschäftige mich gerne damit. Selbst gelöste Probleme sind immer ein schönes Erlebnis; je länger man knobelt, desto größer ist die Befriedigung, wenn es dann funktioniert - in diesem speziellen Fall habe ich dann noch eine gaaanz andere Lösung gefunden: Mein DOS kann nämlich doch rechnen, und so kann ich mir eine Batch-Datei basteln, die den Counter hochzählt wenn die übermittelten Formulare bei mir auf dem Rechner eintreffen. That´s cool! ;-))

          Was die schlechten freien Scripte angeht: Hast Du eventuell einen Tipp für mich für einen guten Formmailer oder wo es brauchbare Scripte gibt?

          Wenn Du Speck findest und Eier hast, kannst Du Eier mit Speck machen, auch wenn Du nirgendwo Eier mit Speck kaufen kannst.[1]

          -----
          <grins> Aaaainzigartig... ;-)

          Muchas Gracias
          JOhnnY

          1. Hallo,

            <grins> Aaaainzigartig... ;-)

            ----^
            dieser Tag wurde nicht geschlossen!  ;-)

            Odium

            1. Hi,

              <grins> Aaaainzigartig... ;-)
              ----^
              dieser Tag wurde nicht geschlossen!  ;-)

              <!ELEMENT grins - O (%inline;)*>

              Cheatah, SCNR :-)

              1. Heyyo,

                das mit den Batches war dann doch zu kompliziert...

                Nu hab ich mal einfach die Eier genommen und mit dem Speck zusammen gerührt und ... SCHWUPPS! - fertig ist der countende Formmailer!

                Perl iss ja auch gar nicht soooo undurchschaubar... ;-)

                Ich liebe Dinge, die funktionieren! Thankx!

                Johnny

                1. Hi,

                  Nu hab ich mal einfach die Eier genommen und mit dem Speck zusammen gerührt und ... SCHWUPPS! - fertig ist der countende Formmailer!

                  ich hoffe, es war die richtige Menge Fett in der Pfanne :-)

                  Perl iss ja auch gar nicht soooo undurchschaubar... ;-)

                  Vor allem hat es eine wahnsinnig gute Doku. Btw: Netter Fipptehler beim Hilfsverb ;-)

                  Ich liebe Dinge, die funktionieren! Thankx!

                  Hannibal Smith vom A-Team hat das ganz ähnlich formuliert ;-)

                  Cheatah

          2. Hi,

            Was die schlechten freien Scripte angeht: Hast Du eventuell einen Tipp für mich für einen guten Formmailer oder wo es brauchbare Scripte gibt?

            leider nein. Ich vertraue im Zweifel nur Scripts, die ich auch selbst geschrieben habe; von einigen grundlegenden Dingen (Perl-Module bei CPAN erachte ich als vertrauenswürdig; Code einiger hiesiger Regulars übernehme ich quasi ungeprüft...) abgesehen.

            Cheatah

      2. Hi,

        Hast Du vielleicht noch ein paar mehr Infos, wie ich das angehen kann, in einen CGI-Formmailer einen Counter einzubauen?

        Ganz einfach.
        Das CGI Script gibt das HTML Formular aus, und bevor es das tut, liest es eine (zB.) .txt Datei aus, in der du die Zahl immer reinspeicherst. Wenn jetzt wieder mal die Formulardaten abgeschickt werden, öffnest du wieder die .txt Datei, liest die Zahl aus, erhöhst sie um 1, speicherst sie zurück, und verarbeitest die Formulardaten, und das Spiel geht wieder von vorne los.

        $xNeTworKx.

        1. Hi,

          Das CGI Script gibt das HTML Formular aus, und bevor es das tut, liest es eine (zB.) .txt Datei aus, in der du die Zahl immer reinspeicherst. [...]

          entweder speicherst Du sofort nach dem Ermitteln des Wertes die höhere Zahl, was Lücken erzeugt; oder Du speicherst erst beim Empfang, was bei parallelen Formular-Generierungen dazu führt, dass der selbe Wert mehrfach vergeben wird. Die Zahl mehrfach für den selben Vorgang auszulesen ist auch nicht sinnvoll - entweder hat sie sich verändert, dann war das erste Mal egal, oder nicht, was aber auch nur mäßig interessant ist.

          Das Auslesen der Zahl muss genau dann passieren, wenn der Wert erhöht wird; und auch nur genau dann, wenn er erhöht werden _soll_.

          Übrigens ist das Schreiben in eine Datei _nicht_ "ganz einfach" :-)

          Cheatah

          1. Hi,

            entweder speicherst Du sofort nach dem Ermitteln des Wertes die höhere Zahl, was Lücken erzeugt; oder Du speicherst erst beim Empfang, was bei parallelen Formular-Generierungen dazu führt, dass der selbe Wert mehrfach vergeben wird. Die Zahl mehrfach für den selben Vorgang auszulesen ist auch nicht sinnvoll - entweder hat sie sich verändert, dann war das erste Mal egal, oder nicht, was aber auch nur mäßig interessant ist.

            Ja, das mit den Lücken ist mir beim "meinem" Forum aufgefallen. Man kann natürlich auf die Replys der Replys antworten, was ich so gelöst habe, daß ich eine Zähler bei <reply> </reply> mitzählen lasse,und beim antworten wird mit splice die Datei an der richtigen <reply> Stelle "gespaltet". Wenn man lang genug wartet, antwortet man plötzlich auf ein Posting, das um eines weiter oben ist.
            Vielleicht könntest du mir hierbei einen Tip geben, wie man das vielleicht besser lösen kann, weil ich muss im Vorhinein schon die Reply Nummern wissen, da das Script sonst nicht weis, worauf es antworten soll.

            $xNeTworKx.

            1. Hi,

              Vielleicht könntest du mir hierbei einen Tip geben, wie man das vielleicht besser lösen kann, weil ich muss im Vorhinein schon die Reply Nummern wissen, da das Script sonst nicht weis, worauf es antworten soll.

              wenn dem so ist, dass eine requestübergreifende Abhängigkeit besteht, dann fällt mir auch nur ein Weg ein, um die Lücken zu vermeiden: Werte verwenden, die überhaupt nicht nach einer Reihe aussehen, also z.B. kryptische Session-IDs. Der Zähler ist dann ein _zweiter_ Wert, der erst beim Versand in Anspruch genommen wird und somit deckungs- und lückenfrei ist.

              Cheatah

              1. Hi,

                wenn dem so ist, dass eine requestübergreifende Abhängigkeit besteht, dann fällt mir auch nur ein Weg ein, um die Lücken zu vermeiden: Werte verwenden, die überhaupt nicht nach einer Reihe aussehen, also z.B. kryptische Session-IDs. Der Zähler ist dann ein _zweiter_ Wert, der erst beim Versand in Anspruch genommen wird und somit deckungs- und lückenfrei ist.

                Hmmm, ich glaube ich weis ungefähr, wie du das meinst. Ich könnte mir das so vorstellen, daß zw. jedem <reply> </reply> zB ein <id>hjgh6t7tgf6f</id> ist, und beim Antworten eben wieder diese id gesucht wird, was aber wiederum Perl dazu zwingt, jedes <reply> </reply> mal durchzuprüfen, wo diese id vorkommt, aber ich glaube, ohne relationale Datenbank geht das auch nicht anders.

                $xNeTworKx.

                1. Hi,

                  Hmmm, ich glaube ich weis ungefähr, wie du das meinst. Ich könnte mir das so vorstellen, daß zw. jedem <reply> </reply> zB ein <id>hjgh6t7tgf6f</id> ist, [...]

                  japp, etwa so war das gemeint.

                  Cheatah