Perl in HTML einbinden
Marcel
- perl
0 Stefan0 Erwin
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!!!
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
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
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
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
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
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
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.
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);