variabler Link
Henning Strodthoff
- html
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
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
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
Hi Cheatah !
Ich denke per SSI ist es einfacher.
Vorteil: keine extra txt-Datei, immer gleicher cgi-Aufruf
Nachteil: Seiten werden alphabetisch aufgerufen, keine andere Reihenfolge möglich
Gruß
Jörg
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
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
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
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