Dave: selfHTML's prinzip eines Gästebuchs: Probleme damit

Hallo,

ich habe erst vor einigen Tagen angefangen, mich ausgiebig mit

CGI/PERL unter der Anleitung von selfHTML zu beschäftigen. Jetzt habe

ich jedoch mit den einzelnen Teilen, die man da anscheinend noch

selbst modifizieren muss (nich dass ich was dagegen hätte, ehrlich,

ich finds sogar ausgesprochen gut dass das nicht wieder so ein fertig-

Teil ist), probleme. (Siehe

http://selfhtml.teamone.de/cgiperl/sprache/cgitypisch.htm#gaestebuch )

was passt jetzt hierdran noch nicht:

#!d:/wampp-0.2.1c/perl/bin/perl.exe -w

use strict;
use CGI;
my $cgi = new CGI;
use CGI::Carp qw(fatalsToBrowser);

my $usrname = $cgi->param('usrname');
my $usrtext = $cgi->param('usrtext');

open (DATEI, "<guestbook.htm");
my @Zeilen = <DATEI>;
close (DATEI);

my @NeuerEintrag;
push(@NeuerEintrag, "<!-- EINTRAG [".$usrname."] -->\n");
push(@NeuerEintrag, "<table border="1"><tr>\n");
push(@NeuerEintrag, "<th>von:</th><td>".$usrname."</td>\n");
push(@NeuerEintrag, "</tr><tr>\n");
push(@NeuerEintrag, "<td colspan="2">".$usrtext."</td>\n");
push(@NeuerEintrag, "</tr></table>\n");

#Hier fehlt wohl was, das Teil aus selfHTML funzt aber nicht so richtig.

open (DATEI, ">guestbook.htm";
print $cgi->header();
print "@NeueZeilen";
close (DATEI);

Vielen vielen Dank schon mal für eure Hilfe bei diesem Problem.

Dave

  1. Hi,

    was passt jetzt hierdran noch nicht:

    was genau ist denn Dein Problem?

    Cheatah

    1. was genau ist denn Dein Problem?

      Kommt immer drauf an was ich ändere. Also, wenn es ab und zu mal geht, dann überschreibt er immer den ganzen Text (bisherige Einträge & Grundgerüst der htmldatei). Mit dem Script z.Zt. (Da wo steht, dass was fehlt, stand immer:

      my @NeueZeilen;
      my $Zeile;
      foreach $Zeile (@Zeilen) {
       if(/^<!-- NEU -->/) {
        foreach(@NeuerEintrag) {
         push(@NeueZeilen,$_);
        }
         push(@NeueZeilen,"<!-- NEU -->\n");
       }
       else {
        push(@NeueZeilen,$Zeile);
       }
      }

      ) gibt er einfach nichts aus. es passiert nichts. Reicht das als Problembeschreibung?
      hoffe du kannst mir jetzt helfen

      Dave

      1. Hi,

        Also, wenn es ab und zu mal geht, dann überschreibt er immer den ganzen Text (bisherige Einträge & Grundgerüst der htmldatei).

        bist Du sicher, dass die HTML-Datei korrekt aufgebaut ist, also insbesondere auch das "<!-- NEU -->" allein in einer Zeile (_ohne_ Leerzeichen u.ä. davor oder danach) enthält?

        Mit dem Script z.Zt. gibt er einfach nichts aus.

        Nun, das von Dir eingangs genannte Script hat auch keinen Teil, der etwas entsprechendes ausgeben könnte.

        Cheatah

        1. Hi,

          Hi.

          bist Du sicher, dass die HTML-Datei korrekt aufgebaut ist, also insbesondere auch das "<!-- NEU -->" allein in einer Zeile (_ohne_ Leerzeichen u.ä. davor oder danach) enthält?

          Jep.

          Nun, das von Dir eingangs genannte Script hat auch keinen Teil, der etwas entsprechendes ausgeben könnte.

          Nicht?? und was ist dann mit dem Part ganz unten ( open Blabla;
          print blablabla; close blabla)

          Dave

          1. Hi,

            bist Du sicher, dass die HTML-Datei korrekt aufgebaut ist, also insbesondere auch das "<!-- NEU -->" allein in einer Zeile (_ohne_ Leerzeichen u.ä. davor oder danach) enthält?
            Jep.

            erstaunlich. Ich kann nur dazu raten, in diesem Zusammenhang _zweifelsfreie_ Klarheit zu gewinnen. Ansonsten fällt mir nämlich, vielleicht auch mangels genauer Kenntnis des Scripts und der Umstände (von diesem Typus Script halte ich nur eines, nämlich Abstand), keine Ursache ein.

            Nun, das von Dir eingangs genannte Script hat auch keinen Teil, der etwas entsprechendes ausgeben könnte.
            Nicht?? und was ist dann mit dem Part ganz unten ( open Blabla;
            print blablabla; close blabla)

            Es schreibt ein Array namens @NeueZeilen (btw: ein ungünstig gewählter Name, vrgl. perldoc perlstyle), welches exakt gar nichts enthält. Daher ist anschließend auch ebenso wenig in der Datei. Nebenbei bemerkt wurde das Array nicht mit 'my' deklariert.

            Cheatah