Marcel: Perl in HTML einbinden

Hallo!

Ich habe folgendes Problem:

Ich habe mir ein Perlscript geschrieben. das mir das Datum des gestrigen Tages ermittelt.
Ich will jetzt, das dieses Datum in einem Textfeld in einer HTML Seite als value drin steht.

Kann man Perl auch wie JavaScript direkt in HTML einbinden? Und dann im Teil

<input type="text" value="Datum von gestern">

darauf zugreifen?

Danke schon mal im Voraus!!!

  1. Du kannst mit CGI/PERL ein HTML Dokument erstellen, aber diese Inlay-Funktion wie bei PHP bleibt wohl außen vor. Ich empfehle Dir für solche Sachen PHP zu nutzen.

    Falls Du es wirklich mit CGI/PERL lösen möchtest: Du musst an dieser Stelle ein externes Script aufrufen, dass als Rückgabewert das gewünschte Datum liefert. Halte ich eben für umständlich.

    Gruss
    Stefan

  2. Hallo!

    Kann man Perl auch wie JavaScript direkt in HTML einbinden? Und dann im Teil

    <input type="text" value="Datum von gestern">

    Klaro! Zum Bleistift mit SSI. Wie das geht steht in SELFHTML.

    Gruss, Rolf

    --
    SELFforum - Das Tor zur Welt!
    Theoretiker: Wie kommt das Kupfer in die Leitung?
    Praktiker: Wie kommt der Strom in die Leitung?
    1. Das ist ja super!!!
      Funzt bei mir aber nicht!

      so sieht mein perlscript aus:

      unter /srv/www/cgin-bin/gestern.pl

      #--------------------------------------------------------------
      #!/usr/bin/perl -w
      use CGI qw(:standard);
      use Time::Local;
      use CGI::Carp "fatalsToBrowser";
      #Ermittlung des gestrigen Datums
      my $gestern = time;
      $gestern-=86400;
      my ($Sekunden, $Minuten, $Stunden, $Monatstag, $Monat, $Jahr, $Wochentag, $Jahrestag, $Sommerzeit) = localtime($gestern);
      $Monat+=1;
      $Monat = $Monat < 10 ? $Monat = "0".$Monat : $Monat;
      $Monatstag = $Monatstag < 10 ? $Monatstag = "0".$Monatstag : $Monatstag;
      $Jahr+=1900;
      print "$Jahr-$Monat-$Monatstag";
      #--------------------------------------------------------------

      uns so der eintrag in meinem formular:

      <p>
      <input name="Ende" type="text" id="Ende" value="<!--#exec cgi="/cgi-bin/gestern.pl" -->">
      </p>

      Was ist denn da falsch?

      Gruß
      Marcel

      1. hai

        <input name="Ende" type="text" id="Ende" value="<!--#exec cgi="/cgi-bin/gestern.pl" -->">

        Was ist denn da falsch?

        Der Lösungsansatz! Dein Script darf nicht nur das Datum von gestern ausgeben sondern das komplette Form - mit aufgefüllten Values ;-)

        Rolf

        --
        SELFforum - Das Tor zur Welt!
        Theoretiker: Wie kommt das Kupfer in die Leitung?
        Praktiker: Wie kommt der Strom in die Leitung?
        1. Das macht natürlich Sinn, wenn ich mal genauer drüber nachdenke!!! ;-)

          Aber ich bin scheinbar zu blöd dafür, denn es geht trotzdem nicht.

          hier das perlscript:

          #---------------------------
          #!/usr/bin/perl -w
          use CGI qw(:standard);
          use Time::Local;
          use CGI::Carp "fatalsToBrowser";

          #Ermittlung des gestrigen Datums
          my $gestern = time;
          $gestern-=86400;
          my ($Sekunden, $Minuten, $Stunden, $Monatstag, $Monat, $Jahr, $Wochentag, $Jahrestag, $Sommerzeit) = localtime($gestern);
          $Monat+=1;
          $Monat = $Monat < 10 ? $Monat = "0".$Monat : $Monat;
          $Monatstag = $Monatstag < 10 ? $Monatstag = "0".$Monatstag : $Monatstag;
          $Jahr+=1900;

          print "<form name=form1 method=get action=/cgi-bin/createstat.cgi>";
          print "<p>Startdatum:</p>";
          print "<p><input name=Anfang type=text id=Anfang></p>";
          print "<p>Enddatum:</p>";
          print "<p><input name=Ende type=text id=Ende value=$Jahr-$Monat-$Tag></p>";
          print "<p>Anzahl der Einträge</p>";
          print "<p><input size=5 type=text name=top id=top></p>";
          print "<p><input type=submit name=Submit value=Erstellen></p>";
          print "</center></form>";

          #---------------------------------------------

          hier das htm file:

          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
          <html>
          <head>
          <title>Formular</title>
          <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
          </head>

          <body><center>
          <table width="75%" border="0">
            <tr>
              <td><center><br><font size=4>Bitte geben Sie das gewünschte Start- und Enddatum ein (JJJJ-MM-TT):</font></center></td>
            </tr>
            <tr>
              <td> </td>
            </tr>
            <tr>
              <td><center>
                <p> </p>
                <!--#config errmsg="SSI nicht anzeigbar!" -->
                <!--#exec="/cgi-bin/gestern.pl" -->
                </td>
            </tr>
          </table></center>
          </body>
          </html>

          #--------------------------------------------------------

          es kommt aber immer "SSI nicht anzeigbar!"

          aber warum?

          gruß
          marcel

          1. hai.

            Das macht natürlich Sinn, wenn ich mal genauer drüber nachdenke!!! ;-)

            ;-)

            Aber ich bin scheinbar zu blöd dafür, denn es geht trotzdem nicht.

            hier das perlscript:

            Hmm. So wie's aussieht, fehlt der header. Mach mal vor den ersten print's die Zeile rein:

            print "Content-type: text/html\n\n";

            Und noch ein kleiner Tipp: Anstelle der vielen print's mach _ein_ print:

            print qq(
             <form ....
             <input ...value="$yesterday_date">
             </form>
            );

            Gruss, Rolf

            --
            SELFforum - Das Tor zur Welt!
            Theoretiker: Wie kommt das Kupfer in die Leitung?
            Praktiker: Wie kommt der Strom in die Leitung?
    2. hi,

      Kann man Perl auch wie JavaScript direkt in HTML einbinden? Und dann im Teil
      <input type="text" value="Datum von gestern">
      Klaro! Zum Bleistift mit SSI. Wie das geht steht in SELFHTML.

      Das ist nur eine von mehreren Möglichkeiten. Es geht auch ohne SSI, allerdings muß der Server besonders ausgestattet werden. Das Konzept dafür heißt "embedded Perl", siehe http://perl.apache.org/embperl.

      Grüße aus Berlin

      Christoph S.

      1. use Mosche;

        Das Konzept dafür heißt "embedded Perl", siehe http://perl.apache.org/embperl.

        Oder HTML::Mason, was ich persönlich sehr gerne verwende:
        http://www.masonhq.com

        use Tschoe qw(Matti);

        --
          Anyone who quotes me in their sig is an idiot. -- Rusty Russell.