Larry: (CGI) HTML AN CGI, oder PLATZHALTER AN CGI?

Ursprüngliche Nachricht zum Thema:  (CGI) HTML AN CGI, oder PLATZHALTER AN CGI? von CK1, 10.Mai.2000, 01:10 Uhr
Die folgende Nachricht zum Thema stammt von: Larry,  dsbs@gmx.de, 10.Mai.2000, 18:15 Uhr

Hi,

Ich habe ein kleines Problem, wie kann ich mit einer HTML-SEITE
Platzhalter definieren, die später von meinem Perl Programm durch
Variablen erstetzt werden.

na, wenn die Platzhalter bekannt sind, ist das doch einfach...
einlesen und ersetzen:

foreach (@html_datei)

»»  {
»»  $_ =~ s/<!-- platzhalter -->/$ersetz1/g;
»»  $_ =~ s/<!-- platzhalter1 -->/$ersetz2/g;
»»  }

hierzu soll er Platzhalter definieren und die erstezte ich
(WIEEEE) durch Variablen..

Wenn die Platzhalter unbekannt sind, wirds schwieriger.. dann musst
du dir deinen eigenen Parser schreiben. Der muss den String auf
vorkommen bestimmter Signale (z. B. <!--var platzhalter -->)
duchsuchen, etwa so:

foreach (@html_datei)

»»  {
»»  $_ =~ /<!--var (.*) -->/;

»»  $platzhalter = $1;

»»  $_ =~ s/$platzhalter/$var{'$platzhalter'}/g;
»»  }

Wie du jetzt bestimmst, was du damit machst, weiss ich auch nicht,
dazu brauch ich naehere Infos:

  • Wie genau hast du dir das mit den Platzhaltern vorgestellt?
  • Sind die Variabel oder statisch?
  • usw, usw ,)

mfg
CK1

Also: Ich habe mir das wie folgt vorgestellt: Eine HTML Seite übergibt an einm CGI_Scipt USERNAME und EMAIL.
(mail_request.cgi?USERNAME=PETERPANSKI....)
In dieser HTML-DATEI befinden sich auch Paltzhalter: <USERNAME>{Wert}</USERNAME>
Nun mnöchte ich {Wert} durch etwas erstetzen. Das Problem ist, in unserer Schule gibt es 300 Rechner
für 1000 Schüler und jeder bekommt seine HTML-Seite, die er auch auf seiner Homepage integrieren soll.
Diese sollen die Schüler selber gestalten.
Wie komme ich an die Daten der HTML-SEITE heran?
Ich müsste teoretisch die Adresse kennen, die HTML_SEITE einlesen (Wie open?????) die Paltzhalter
ersetzen und die Daten zurück liefern in ihrem Layout.

Vielen Dank!!

  1. Hi,

    Nun mnöchte ich {Wert} durch etwas erstetzen. Das Problem ist, in
    unserer Schule gibt es 300 Rechner
    für 1000 Schüler und jeder bekommt seine HTML-Seite, die er auch
    auf seiner Homepage integrieren soll.
    Diese sollen die Schüler selber gestalten.
    Wie komme ich an die Daten der HTML-SEITE heran?
    Ich müsste teoretisch die Adresse kennen, die HTML_SEITE einlesen
    (Wie open?????) die Paltzhalter ersetzen und die Daten zurück
    liefern in ihrem Layout.

    wenn das ganze ein Unix- oder Linux-System ist, dann liegen die
    Userverzeichnisse normalerweise in

    /home/username

    Ansonsten leg dir eine entsprechende Strucktur an, sprich, du legst
    ein Verzeichnis

    c:\users\

    oder so an, in dem die Home-Verzeichnisse nach den Usernamen
    benannt sind. So waere der Pfad fuer den User "xyz" z. B.

    c:\users\xyz\

    bzw

    /home/xyz

    auf die Dateien des Users zugreifen.
    Die HTML-Dateien koennten dann ja z. B. in einem Verzeichnis

    c:\users\xyz\html

    bzw

    /home/users/html

    liegen. So koenntest du mit

    open(HTML_DAT,"/home/$username/html/html_datei.html") or die("$!);

    bzw.

    open(HTML_DAT,"c:\users$username\html\html_datei.html") or die("$!");

    zugreifen.

    In dieser HTML-DATEI befinden sich auch Paltzhalter: <USERNAME>
    {Wert}</USERNAME>

    Das mit dem Ersetzen hab ich ja oben schonmal beschrieben ,)
    Regulaere Ausdruecke sollten genau das machen, was du willst...
    sinnvoller waere nur, finde ich zumindest, folgende Strucktur:

    <!--username=wert -->

    da man hier leichter auf den Wert zugreifen kann.

    Also: Ich habe mir das wie folgt vorgestellt: Eine HTML Seite
    übergibt an einm CGI_Scipt USERNAME und EMAIL.
    (mail_request.cgi?USERNAME=PETERPANSKI....)

    aber achte bei Unix-/Linux-Systemen auf Gross- und Kleinschreibung...
    XYZ != xyz!

    mfg
    CK1

    1. Hi,

      Nun mnöchte ich {Wert} durch etwas erstetzen. Das Problem ist, in
      unserer Schule gibt es 300 Rechner
      für 1000 Schüler und jeder bekommt seine HTML-Seite, die er auch
      auf seiner Homepage integrieren soll.
      Diese sollen die Schüler selber gestalten.
      Wie komme ich an die Daten der HTML-SEITE heran?
      Ich müsste teoretisch die Adresse kennen, die HTML_SEITE einlesen
      (Wie open?????) die Paltzhalter ersetzen und die Daten zurück
      liefern in ihrem Layout.

      wenn das ganze ein Unix- oder Linux-System ist, dann liegen die
      Userverzeichnisse normalerweise in

      /home/username

      Ansonsten leg dir eine entsprechende Strucktur an, sprich, du legst
      ein Verzeichnis

      c:\users\

      oder so an, in dem die Home-Verzeichnisse nach den Usernamen
      benannt sind. So waere der Pfad fuer den User "xyz" z. B.

      c:\users\xyz\

      bzw

      /home/xyz

      auf die Dateien des Users zugreifen.
      Die HTML-Dateien koennten dann ja z. B. in einem Verzeichnis

      c:\users\xyz\html

      bzw

      /home/users/html

      liegen. So koenntest du mit

      open(HTML_DAT,"/home/$username/html/html_datei.html") or die("$!);

      bzw.

      open(HTML_DAT,"c:\users$username\html\html_datei.html") or die("$!");

      zugreifen.

      In dieser HTML-DATEI befinden sich auch Paltzhalter: <USERNAME>
      {Wert}</USERNAME>

      Das mit dem Ersetzen hab ich ja oben schonmal beschrieben ,)
      Regulaere Ausdruecke sollten genau das machen, was du willst...
      sinnvoller waere nur, finde ich zumindest, folgende Strucktur:

      <!--username=wert -->

      da man hier leichter auf den Wert zugreifen kann.

      Also: Ich habe mir das wie folgt vorgestellt: Eine HTML Seite
      übergibt an einm CGI_Scipt USERNAME und EMAIL.
      (mail_request.cgi?USERNAME=PETERPANSKI....)

      aber achte bei Unix-/Linux-Systemen auf Gross- und Kleinschreibung...
      XYZ != xyz!

      mfg
      CK1

      Danke!!!! Ich arbeite in der Regel mit Linux.
      Aber eine Frage habe ich immer noch, wie soll ich auf eine HTML-Seite zugreifen,
      wenn die Leute keinen HTTP Server haben?

      Danke auch für Deinen Hinweis mit den Platzhaltern!

      Larry

      1. Hallo Larry!

        Aber eine Frage habe ich immer noch, wie soll ich auf eine HTML-Seite zugreifen,
        wenn die Leute keinen HTTP Server haben?

        Du solltest die angesprochene Dir-Struktur in dem Verzeichnis des Webservers installieren.
        (unter linux bsp: /usr/local/httpd/htdocs/thewebpages/userxyz)
        dann kannst Du auch darauf zugreifen. Das musst du sowieso machen, da sonst keine
        Website über Server erreichbar ist...

        Bis denne,
        Dennis

        P.S.: Du brauchst nicht immer _alles_ zu übernehmen, was in der Antwort stand ;-)

        1. P.S.: Du brauchst nicht immer _alles_ zu übernehmen, was in der Antwort stand ;-)

          Danke, besser so?

          ;-) Tja, [Mm]an[n]* ist eben doch lehrnfähig! ;-)

          1. Danke, besser so?

            Seeeehr viel besser *g*. Viel Spaß bei der Einrichtung in der Schule..

            Bis denne,
            Dennis

            1. Wieso funktioniert
              folgendes nicht: open(HTML_DATA, "http://localhost/personal_mail.html");?

              Vielen Dank!

              1. Hi,

                Wieso funktioniert folgendes nicht:

                open(HTML_DATA, "http://localhost/personal_mail.html");?

                Weil "open" nur fuer lokale Dateien gedacht ist und kein Netzwerk-
                Interface hat... dafuer gibt es LWP ,)

                mfg
                CK1

                1. Weil "open" nur fuer lokale Dateien gedacht ist und kein Netzwerk-
                  Interface hat... dafuer gibt es LWP ,)

                  Und wie öffne ich dann eine HTML_DATEI, die auf einem anderen Rechner liegt
                  z.B. die Datei mail.html auf spike (mein Server)?
                  Kann ich die Daten dann genau wie mit open weiter verarbeiten?

                  Danke!

                  mfg Larry

    2. hi,

      bitte, larry, nicht unnoetig text quoten, thx...

      cua

      n.d.p.