HTML-Ausgabe in CGI

Hallo,
ich bin in der CGI-Programmierung noch nicht soo versiert, deshalb hab ich folgende Frage:

Der User füllt beispielsweise ein Forumlar aus, die Daten werden verarbeitet und dann z.B. eine Bestätigung ausgegeben auf welcher nochmals die eingegeben Daten stehen. Bislang habe ich mir diese Bestätigung mit einem HTML Editor „gebastelt“ und an den entsprechenden Stellen den Variablen-Namen hingeschrieben. Diesen Quelltext habe ich nun per Copy&amp:stuck_out_tongue_winking_eye:aste in mein Perl Script eingefügt (innerhalb von print

Also wenn ich dich jetzt richtig verstanden habe, geht es dir jetzt nur um den html code.
Denn hast du jetzt in eine Variable gepackt, und jetzt werden die in dieses html code enthaltenen Variablen nicht mehr gezeigt?
Richtig so?

Also könnte es vielleicht sein, das Du nur einfach Anführungzeichen benutzt hast???
z.b.
$url=„xxx.htm“;
$html=„Die URL der Seite ist $url“;
ergibt
Die URL der Seite ist xxx.htm

Wenn Du aber schreibst
$html=‚Die URL der Seite ist $url‘;
wird die Seite nicht gezeigt

so wie ich das verstanden habe, schreibst du ein html-file, in dem sich die variablennamen befinden, und speicherst ihn. danach läßt du diesen file von dem perl programm einlesen und ausgeben. wenn du das so machst versteht perl die variablennamen im html-file als normalen text und ersetzt sie nicht durch entsprechenden werte. perl gibt einfach nur den text aus den er einliest und mit ihm auch die variablennamen eben so wie sie heißen und nicht den inhalt den sie haben.

die einzige möglichkeit für das dynamische erzeugen der seite durch einen perl-file ist dann wirklich, indem du den ganzen html code in den perl-file schreibst.
wenn du große passagen im html hast, in denen keine variablen vorkommen, könntest du diese irgendwie aus einem file einlesen und an den entsprechenden stellen ausgeben. die restlichen stellen müßtest du dann aber ins perl-script schreiben.

gruß…
…puhli

noch ne idee
mir ist grade noch was eingefallen:

du könntest natürlich das ganze html-file (mit den variablennamen) in einer datei speichern. dann liest du das file ein und läßt die variablennamen im html-file mit hilfe der regulären ausdrücke suchen und ersetzt diese durch deren werte (wir reden ja schließlich von perl - und wer kann das wenn nicht perl!?!).
allerdings ist diese variante nicht gerade die beste. der aufwand für das programm wäre ziemlich groß, für das was am ende raus kommt.
meiner meinung nach ist es immernoch das beste das ganze html in den perl-file zu schreiben, auch wenn dann der file größer wird.

moin.

wirf doch mal einen blick auf den thread „dynamische seite mit perl“ ein kleines stück weiter unten. ich würde dir das dort besprochene modul auch schicken.

holli

hallo,

du könntest die zeile evaluieren lassen:
open(DAT,„Datei“);
while()
{
$aktuellezeile = $_;
$ausgabe .= eval($aktuellezeile);
}
close DAT;
print $ausgabe;

Hat aber den nachteil, dass wenn jemand in die vorlage reinschreibt system(„rm *“); alle dateien gelöscht werden.

deshalb lieber mit regulären ausdrücken:
while()
{
$aktuellezeile = $_;
$aktuellezeile =~ s/$([a-z_][a-z0-9_])*/eval(’$’.$1)/sgioxe;
$ausgabe .= $aktuellezeile;
}

lg