Sebastian: Tutorial zum benutzen des CGI-Moduls

Hi,

Ich suche ein Tutorial, möglichst in Deutsch, welches mir schlüssig und vernünftig die möglichkeiten des CGI-Moduls erklärt.

Wo finde ich sowas?

Wäre für Links und oder Tipps sehr dankbar.

Gruß Sebastian

  1. Ich suche ein Tutorial, möglichst in Deutsch, welches mir schlüssig und vernünftig die möglichkeiten des CGI-Moduls erklärt.

    Ich bin momentan gerade einen Artikel darüber am schreiben, aber der ist noch fertig.

    Hier ist was auf deutsch: http://www.elektronikschule.de/~grupp/perlcgi/cgipm/

    Struppi.

    1. hallo Struppi,

      Ich bin momentan gerade einen Artikel darüber am schreiben, aber der ist noch fertig.

      öhm ... fehlt da nicht ein "nicht"?

      Ich hab mir meine Übersetzung gleich ins Modul selbst reingeschrieben und kriege sie dann auch prompt mit perldoc angezeigt. Kann ich in dieser Form aber nicht online stellen.

      Hier ist was auf deutsch: http://www.elektronikschule.de/~grupp/perlcgi/cgipm/

      Ja, nett.

      Grüße aus Berlin

      Christoph S.

      1. Hallo Christoph S.

        warum kannst du die nicht online stellen ???

        1. hallo,

          warum kannst du die nicht online stellen ?

          Schau dir das Modul CGI.pm mal in einem Texteditor an, dann weißt du es.

          Grüße aus Berlin

          Christoph S.

          1. Naja, es ist etwas lang, aber dann schick mir das doch per mail:seb.esser@web.de

      2. Ich bin momentan gerade einen Artikel darüber am schreiben, aber der ist noch fertig.

        öhm ... fehlt da nicht ein "nicht"?

        yepp, ich habe gerade erst anfeangen.

        Ich hab mir meine Übersetzung gleich ins Modul selbst reingeschrieben und kriege sie dann auch prompt mit perldoc angezeigt. Kann ich in dieser Form aber nicht online stellen.

        Vieleicht hilft pod2html

        Hier ist was auf deutsch: http://www.elektronikschule.de/~grupp/perlcgi/cgipm/

        Ja, nett.

        Naja, sehr kurz. Ich werde mehr auf Tabellen und Listen eingehen, das ist eigentlich die Stärke (neben Formularen) des Moduls
        Es ist doch sehr praktisch, wenn man:
        print CGI::table( @rows );
        schreiben kann.

        Struppi.

        1. Naja, sehr kurz. Ich werde mehr auf Tabellen und Listen eingehen, das ist eigentlich die Stärke (neben Formularen) des Moduls
          Es ist doch sehr praktisch, wenn man:
          print CGI::table( @rows );
          schreiben kann.

          Ja und ich hab immer noch keinen wirklichen schimmer wie dat gehen soll.

          1. Es ist doch sehr praktisch, wenn man:
            print CGI::table( @rows );
            schreiben kann.

            Ja und ich hab immer noch keinen wirklichen schimmer wie dat gehen soll.

            Die Funktionen des Moduls können Parameter in vielfältiger Weise verarbeiten.

            a.) Funktion(a, b, c, ...)
                Hier musst du Wissen in welcher Reihenfolge die Parameter nötig sind

            b.) Funktion(-attribut_1=> 'wert', -attribut_2 => 'wert')
            Für Formularfelder optimal, da diese keinen Inhalt haben (von der HTML Seite aus gesehen). Die HTML Tags die erzeugt werden haben dann das Attribut mit dem Wert in der Form:
            <Funktion attribut_1="wert" attribut_2="wert">

            c.) Funktion( %HASH_REF, @ARRAY_REF )
            z.b. für Listen und Tabellen. Die Referenz auf den Hash erzeugt die Attribute, wie bei 2. und die Array Referenz erzeugt den Inhalt.

            Die einfachste Form ist z.b. so:

            use CGI;
            my @rows;
            foreach(qw/1 2 3 4 5 6/)
            {
                push @rows, "Wert: $_";
            }
            print CGI::ul( CGI::li( @rows ) );

            Willst du der Liste eine ID geben muss die Letzte Zeile geändert werden:
            print CGI::ul( {-id => 'liste'}, CGI::li( @rows ) );

            Oder ein Tabelle:

            use CGI;
            my @rows;
            foreach(qw/1 2 3 4 5 6/)
            {
                push @rows, CGI::td( [ "Wert:", $_ ] );
            }
            print CGI::table( CGI::Tr( @rows ) );

            td() erwartet als Parameter eine Listenreferenz und erzeugt die Anzahl von Tabellenzellen. Tr() erzeugt die Reihen.

            Wenn du jetzt z.b. eine Tabelle mit 2 verschiedenen Farben machen willst, muss du die Reihen schon in der schleife erzeugen:

            use CGI;
            my @rows;
            my $class = 'odd';
            foreach(qw/1 2 3 4 5 6/)
            {
                push @rows, CGI::Tr( {-class => $class }, CGI::td( [ "Wert:", $_ ] ));
                $class = $class eq 'odd' ? 'even' : 'odd';
            }
            print CGI::table( @rows  );

            Das Problem bzw. das etwas unverständliche ist, das table keine Referenz erwartet (es erzeugt sonst für jede Reihe eine Tabelle) sondern direkt eine Array.

            Du kannst aber trotzdem der Tabelle noch Attribute zufügen:

            print CGI::table( { -border => 1}, @rows  );

            Das ganze ist nicht einfach, aber im grossen und ganzen durchschaubar. Manchmal muss man ein bisschen rumprobieren ob jetzt eine Referenz oder nicht benötigt wird. Aber alles in allem ist das erzeugen von HTML code auf die Art wesentlich angenehmer als diese direkt auszugeben.

            usw.

            Struppi.

            1. Danke Struppi,
              das hat mir doch schon mal etwas weiter geholfen, den Rest tüftele ich aus.

        2. hallo Struppi,

          Ich hab mir meine Übersetzung gleich ins Modul selbst reingeschrieben und kriege sie dann auch prompt mit perldoc angezeigt. Kann ich in dieser Form aber nicht online stellen.
          Vieleicht hilft pod2html

          Nee, nicht wirklich. Ich hab ja gesagt "meine Übersetzung"  -  und die ist halt speziell auf mich und die Stellen zugeschnitten, an denen ich immer mal was nachschlagen muß. Ich brauch nicht mehr _alles_ , also steht da auch nicht alles drin und das würde anderen Leuten nicht wirklich weiterhelfen, wenn ich es online stelle.

          Hier ist was auf deutsch: http://www.elektronikschule.de/~grupp/perlcgi/cgipm/
          Ja, nett.
          Naja, sehr kurz.

          Immerhin gibts den link zur wesentlich ausführlicheren (englischsprachigen) Erklärung. Und einen Einstieg kann man damit schon schaffen.

          Ich werde mehr auf Tabellen und Listen eingehen

          Gibts das dann auch hier als Feature-Artikel? Ich könnte mir denken, daß das gut ankommen könnte.

          Grüße aus Berlin

          Christoph S.

          1. Ich werde mehr auf Tabellen und Listen eingehen

            Gibts das dann auch hier als Feature-Artikel? Ich könnte mir denken, daß das gut ankommen könnte.

            Ja, das soll ein Versuch dafür werden. Muss nachtürlich noch schauen was ihr schon geschrieben habt.

            Aber wie gesagt ich hab grad angefangen und noch ne ganze Menge anderer Sachen zu tun.

            Struppi.

            1. hallo Struppi,

              Gibts das dann auch hier als Feature-Artikel? Ich könnte mir denken, daß das gut ankommen könnte.
              Ja, das soll ein Versuch dafür werden. Muss nachtürlich noch schauen was ihr schon geschrieben habt.

              Mach erstmal. Und wenn du jemanden brauchst, der nochmal vor der Veröffentlichung draufkuckt, lädst du es halt suf eine temporäre Adresse hoch und mailst mir das. Tippfehler und sprachliche Korrekturen kann ich machen, sachlich/fachlich kann eigentlich nix schieflaufen, und da sind ja auch die Developer vor ...

              Aber wie gesagt ich hab grad angefangen und noch ne ganze Menge anderer Sachen zu tun.

              ;-)

              Haben wir doch beide an anderer Stelle grade für die Quickbar diskutiert.

              Grüße aus Berlin

              Christoph S.

  2. hallo,

    Ich suche ein Tutorial, möglichst in Deutsch, welches mir schlüssig und vernünftig die möglichkeiten des CGI-Moduls erklärt. Wo finde ich sowas?

    perldoc CGI auf der Kommandozeile tippen. Übersetzen mußt du es dir alleine, aber du kannst natürlich auch Google bemühen. Da findest du sehr schnell http://spotlight.de/zforen/prl/m/prl-1092310589-6751.html und darfst dich wundern, über welche hier im Forum sehr bekannte Namen du da stolpern wirst.

    Grüße aus Berlin

    Christoph S.