Henning Strodthoff: variabler Link

Ich moechte aus einer Datenbank verschiedene html-Seiten erstellen. Diese werden in einem Ordner gesammelt und ins web gestellt.

Zu meinem Problem: Wie kann ich von einer Seite zur naechsten / vorherigen Seite linken OHNE den Namen der naechsten / vorherigen Seite zu kennen?

Vielen Dank fuer die Hilfe.
Henning Strodthoff

  1. Zu meinem Problem: Wie kann ich von einer Seite zur naechsten / vorherigen Seite linken OHNE den Namen der naechsten / vorherigen Seite zu kennen?

    Hallo !

    Mir fällt da nur eine cgi-Lösung ein.
    Per cgi Inhalt des Ordners einlesen und immer einen dementsprechenden Link auf die nächste Page setzen.

    Gruß
    Jörg

  2. Hi,

    Ich moechte aus einer Datenbank verschiedene html-Seiten erstellen. Diese werden in einem Ordner gesammelt und ins web gestellt.

    Zu meinem Problem: Wie kann ich von einer Seite zur naechsten / vorherigen Seite linken OHNE den Namen der naechsten / vorherigen Seite zu kennen?

    das kommt auf Deine Datenstruktur an. Ich gehe mal davon aus, daß Du CGI verwenden möchtest, denn ohne das wird es schwierig...

    Schreibe die Namen der Dateien in eine .txt-Datei (oder wie auch immer benannt), also etwa folgenden Inhalt:

    index.html
    uebersicht.html
    seite1.html
    fragen.html
    ...

    Du liest dann in einem Script diese Datei in ein Array, wertest den übergebenen Parameter (z.B. "script.pl?17") aus und verzweigst anschließend auf $array[$parameter]. In der Seite selber hast Du dann z.B. auf Seite 17 einen Link zu "script.pl?16" und einen zu "script.pl?18".

    Ich hoffe das hilft,

    Cheatah

    1. Hi Cheatah !

      Ich denke per SSI ist es einfacher.

      1. Script schaut von welcher Seite es aufgerufen wird
      2. Ordner lesen
      3. Ursprungsseite finden, folgende Seite als Link einfügen.

      Vorteil: keine extra txt-Datei, immer gleicher cgi-Aufruf

      Nachteil: Seiten werden alphabetisch aufgerufen, keine andere Reihenfolge möglich

      Gruß
      Jörg

      1. Hi,

        Ich denke per SSI ist es einfacher.

        man kann meine Lösung natürlich ebenso als SSI portieren, würde die Sache sogar vereinfachen. Aber:

        Vorteil: keine extra txt-Datei,

        Da sehe ich keinen Nachteil, man spart höchstens eine Datei.

        immer gleicher cgi-Aufruf

        Stimmt, mit SSI spart man sich das :-)

        Nachteil: Seiten werden alphabetisch aufgerufen, keine andere Reihenfolge möglich

        Nicht, wenn man eine Datei mit den Namen anlegt! Dort wird nach dem aktuellen Dateinamen gesucht und die vorherige und anschließende wird für "previous" und "next" benutzt.

        Cheatah

        1. immer gleicher cgi-Aufruf

          Was heisst das und wie funktioniert ein cgi-Aufruf. Die Idee scheint zu passen. Ich aber schlicht nicht in der Lage, sie umzusetzen. Am liebsten haettee ich ein Beispiel mit Variablen. Das koennte ich dann auf mein Problem anpasen.

          Ich bin uebrigens wirklich begeistert, wie schnell ich eine Antwort bekommen habe.

          Henning

          1. Hallo Henning !
            Wenn Du über Webspace mit einem cgi-bin-Verzeichnis verfügst und Dein Server SSI versteht (frage Deinen Provider) würde ich Dir (for nothing) das Script schreiben.
            Bei Interesse, melde Dich per eMail.
            Gruß
            Jörg

          2. Hi Henning,

            immer gleicher cgi-Aufruf

            Was heisst das und wie funktioniert ein cgi-Aufruf. Die Idee scheint zu passen. Ich aber schlicht nicht in der Lage, sie umzusetzen. Am liebsten haettee ich ein Beispiel mit Variablen. Das koennte ich dann auf mein Problem anpasen.

            nutze im Zweifelsfall Jörgs Angebot :-) aber hier ein kurzer Einblick:
            Der Server muß für SSI konfiguriert sein, gewöhnlich muß dann die Datei auf .shtml enden. In die Datei schreibst Du:

            <!--#exec "/cgi-bin/links.pl" -->
            (Ich hoffe, der Aufruf stimmt, ich bin nicht sehr SSI-erfahren...)

            Anschließend brauchst Du ein Script namens "links.pl", welches aus $ENV{'HTTP_REFERER'} die aufrufende Seite herausliest. Das Script öffnet dann eine Datei (halte ich für einfacher), liest die Daten ein, sucht die Zeile, die HTTP_REFERER entspricht, und gibt die beiden drum herum liegenden Links aus (bzw. nur einen davon, falls das obere/untere Ende erreicht ist). Nicht vergessen, vorher "Content-type: text/html\n\n" auszugeben.

            Mit einem Verzeichnis läuft das analog, Du öffnest es halt mit opendir(), liest mit readdir() und schließt mit closedir(). Die Reihenfolge steht dann aber - wie Jörg sagte - fest und ist streng alphanumerisch (A,B,C,...,a,b,c,...)

            Ich bin uebrigens wirklich begeistert, wie schnell ich eine Antwort bekommen habe.

            Wir tun unser bestes :-)

            Cheatah