PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Verschiedene Bilder per Link ins selbe Dokument laden


heav
27.09.2004, 22:31:34
Moin,

folgende Situation: Ich hab ca. 250 Bilder, die alle sowohl als Thumbnails als auch in groß vorliegen. Wenn man ein Thumbnail anklickt soll sich ein Popup öffnen indem das Bild angezeigt wird. So jetzt könnte ich 250 HTML-Dateien mit jeweils einem Bild und 250 Links auf diese Dateien anlegen. Ist aber zu umständlich.

Jetzt dachte ich mir, dass könnte man vielleicht mittels PHP lösen. So das ich nur einen Link auf eine Datei habe und ich in dem Link angeben kann welches Bild in dieses Popup geladen werden soll. Im Quelltext des Popups muss halt dann irgendeine PHP-Funktion an die Stelle, an der das Bild angezeigt werden soll.

Was ich suche ist also so ein PHP-"Script", nur leider hab ich von der ganzen Materie noch nicht wirklich viel Ahnung.


Kann mir evtl. jemand helfen?
Wäre nett, danke!

c4
28.09.2004, 08:06:09
Dafür ein Skript zu suchen kostet mehr Zeit, als es selber zu schreiben...

Was brauchst Du?
- Inhalt eines Verzeichnisses auslesen:
--> http://php.net/opendir (das Beispiel)
Diesen Inhalt gibst Du als Links aus.
Klickt man darauf, wird das Bild angezeigt.

Da es nicht empfehlenswert ist, das Verzeichnis immer und immer wieder auszulesen (schon bei wenigen Besuchern gleichzeitig sehr langsam), solltest Du den Inhalt des Verzeichnisses in einer Datei speichern:
--> http://php.net/fwrite
Anschließend liest Du mit file() immer nur den Inhalt dieser Datei ein, geht schneller.
--> http://php.net/file

Wenn ein Nutzer auf einen Link geklickt hat, dann vertraue ihm NICHT, dass er wirklich auf ein Bild verweist. Am einfachsten ist es wohl, immer zu überprüfen, ob der gewählte Dateiname in der Datei vorkommt.
Kannst Du mit den beiden Funktionen machen:
--> http://php.net/file
--> http://php.net/join
--> http://php.net/strstr
Steht Dir PHP 5 zur Verfügung, kannst Du statt file() und join() auch file_get_contents() nutzen:
--> http://php.net/file_get_contents


So, alle Klarheiten restlos beseitigt? :)

heav
28.09.2004, 17:39:55
Also das mit dem /opendir hab ich versucht, aber das lies mir ja das komplette Verzeichnis aus. Ich glaub, das ist auch garnicht das was ich gesucht hab.



Ich will folgendes: Ich schreib einen Link in der Form
<a href href="bilderrahmen.php?picture=xyz.jpg">

Und in der Datei bilderrahmen.php steht was vonwegen "zeige hier das an was nach picture= in dem link stand", also die datei xyz.jpg

Irgendwie so hab ich das vor Zeiten mal gesehen!?? Oder täusch ich mich?

xabbuh
28.09.2004, 21:47:31
Variablen, die über die URL an ein Script übergeben werden, befinden sich in dem Superglobalen Array $_GET. Wenn du also das Script mit bilderrahmen.php?picture=xyz.jpg aufrufst, könntest du das Bild folgendermaßen anzeigen:


<?php
print '<img src="' . $_GET['picture'] . '">';
?>

heav
28.09.2004, 21:52:08
Exakt das was ich gemeint hab, tausend Dank!

xabbuh
28.09.2004, 21:55:36
Da der User den Link, mit der die Datei aufgerufen wird, im Prinzip nach belieben manipulieren kann (schließlich kann er die Adresszeile nach Belieben ändern), solltest du vor dem Anzeigen des Bildes überprüfen, ob die Datei, die angezeigt werden soll, überhaupt existiert (http://www.php.net/file_exists). Wenn dies nicht der Fall ist, lässt du zum Beispiel ein Fehlermeldung oder ein Standardbild anzeigen.