Seite 3 von 5

Verfasst: 22.09.2006 16:50
von Andavos
Immer noch die gleiche Meldung, in diser steht das es die Linie 554 ist, auf der steht:

Code: Alles auswählen

closedir($averz);
Muss man bei den Schrägstrichen was angeben?

Oder wie?
Wo muss ich überall im Code die Persönlichen daten angeben?

Verfasst: 22.09.2006 18:45
von Xwitz
Welcher Schrägstrich und welche persönlichen Daten? Der relative Pfad zum Verzeichnis muß bei "//Welcher Ordner wird ausgelesen?" und nach echo "<img src=\" eingetragen werden.

Der Code funktioniert bei mir:

Code: Alles auswählen

<?php 
         //Welcher Ordner wird ausgelesen? 
         $ordner = "verzeichnis/"; 
          
         //Welche Bildendungen sollen erkannt werden? 
         $endungen = array("gif","jpg","jpeg","png","bmp"); 
          
          
         /****** Bilder auslesen ******/ 
         $bilder = array(); 
$verz = opendir($ordner); 
while($uverz = readdir($verz)) 
{ 
if($datei != "." && $uverz != ".." &&  is_dir($uverz)) 
{ 
$averz = opendir($ordner."/".$uverz); 
while($datei = readdir($averz)) 
{ 
if($datei != "." && $datei != "..") 
            { 
            $datei_endung = substr( strrchr($datei,".") ,1); 
          
            //Ist die Datei-Endung in dem Array vorhanden? 
            if(in_array($datei_endung,$endungen)) 
              { 
              $datei = $uverz."/".$datei; 
              $bilder[] = $datei; 
              } 
            } 
         } 
closedir($averz); 
}} 
closedir($verz); 
          
         //Zufälliges Bild wählen 
         srand ((double) microtime() * 10000000); 
         $key = array_rand($bilder); 
          
         //Bild ausgeben: 
         echo "<img src=\"verzeichnis/".$bilder[$key]."\">"; 
         ?>

Verfasst: 23.09.2006 09:12
von Andavos
OK, jetzt geht es, allerdings kann ich nur einen Ordner aufrufen, aber ich wollte eigentlich das alle Bilder in einem Verzeichnis angezeigt werden, auch die, die ihrerseits wieder in einem Ordner sind, also so:

-Stammordner

Ordner im Stammordner mit Bilder drinn.

Ordner im Stammordner mit Bilder drinn.

Ordner im Stammordner mit Bilder drinn.

Ordner im Stammordner mit Bilder drinn.


Und alle Bilder die in diesen Ordnern drinn sind, sollten dann angezeigt werden. Ist das möglich?

Verfasst: 23.09.2006 10:25
von Xwitz
Edit: Aus irgendeinem Grund funktioniert das nur, wenn die Datei, entsprechend angepaßt, in dem Stammverzeichnis liegt. Ich weiß bisher nicht warum.

Verfasst: 23.09.2006 16:49
von Xwitz
Dann eben hintenrum, jetzt sollte es gehen (nur noch "verzeichnis/" anpassen).

Code: Alles auswählen

<?php 
         //Welcher Ordner wird ausgelesen? 
         $ordner = "verzeichnis/"; 
          
         //Welche Bildendungen sollen erkannt werden? 
         $endungen = array("gif","jpg","jpeg","png","bmp"); 
          
          
         /****** Bilder auslesen ******/ 
         $bilder = array(); 
chdir ($ordner);
$verz = opendir("."); 
while($uverz = readdir($verz)) 
{ 
if($uverz != "." && $uverz != ".." &&  is_dir($uverz))
{ 
$averz = opendir($uverz); 
while($datei = readdir($averz)) 
{ 
if($datei != "." && $datei != "..") 
            { 
            $datei_endung = substr( strrchr($datei,".") ,1); 
          
            //Ist die Datei-Endung in dem Array vorhanden? 
            if(in_array($datei_endung,$endungen)) 
              { 
              $datei = $uverz."/".$datei;
              $bilder[] = $datei; 
              } 
            } 
         } 
closedir($averz);
}} 
closedir($verz); 
          
         //Zufälliges Bild wählen 
         srand ((double) microtime() * 10000000); 
         $key = array_rand($bilder); 
          
         //Bild ausgeben: 
         echo "<img src=\"".$ordner."/".$bilder[$key]."\">"; 
         ?>
Wenn auch im Stammordner Bilder liegen dann

Code: Alles auswählen

if($uverz != "." && $uverz != ".." &&  is_dir($uverz))
durch

Code: Alles auswählen

if($uverz != ".." &&  is_dir($uverz))
ersetzen.

Verfasst: 23.09.2006 20:47
von Andavos
Vielen Dank, es funktioniert einwandfrei!

Aber kann man da auch eine Adresse angeben?

z.b:
http://blablabla.de/bilder/

Geht das?

Verfasst: 24.09.2006 10:55
von Xwitz
Eine Adresse wofür?

Verfasst: 26.09.2006 17:28
von Andavos
also, dass ich Bilder von einem anderen Webspace anzeigen kann, da ich sie auf einem anderen Space habe, musste ich jetzt alle nocheinmal hochladen.... und das braucht jetzt natürlich Platz, deshalb würde ich gerne eine Adresse einfügen, aber geht das?

Verfasst: 26.09.2006 18:06
von Xwitz
Das geht natürlich nicht, sonst könnte man auch mal auf die Schnelle z.B. die config.php von einem fremden Forum lesen.

Es gibt aber andere Möglichkeiten:

Auf den Webspace mit den Bildern kommt die view.php mit folgendem Inhalt:

Code: Alles auswählen

<?php 
         //Welcher Ordner wird ausgelesen? 
         $ordner = "verzeichnis/"; 
          
         //Welche Bildendungen sollen erkannt werden? 
         $endungen = array("gif","jpg","jpeg","png","bmp"); 
          
          
         /****** Bilder auslesen ******/ 
         $bilder = array(); 
chdir ($ordner); 
$verz = opendir("."); 
while($uverz = readdir($verz)) 
{ 
if($uverz != "." && $uverz != ".." &&  is_dir($uverz)) 
{ 
$averz = opendir($uverz); 
while($datei = readdir($averz)) 
{ 
if($datei != "." && $datei != "..") 
            { 
            $datei_endung = substr( strrchr($datei,".") ,1); 
          
            //Ist die Datei-Endung in dem Array vorhanden? 
            if(in_array($datei_endung,$endungen)) 
              { 
              $datei = $uverz."/".$datei; 
              $bilder[] = $datei; 
              } 
            } 
         } 
closedir($averz); 
}} 
closedir($verz); 
          
         //Zufälliges Bild wählen 
         srand ((double) microtime() * 10000000); 
         $key = array_rand($bilder); 
          
         //Bild ausgeben: 

$endung = substr( strrchr($bilder[$key],".") ,1);
header("Content-Type: image/".$endung);
readfile ($ordner."/".$bilder[$key]);

         ?>
Der Pfad muß angepaßt werden.

Da wo das Bild angezeigt werden soll kommt statt dem ganzen Code nur folgendes rein:

Code: Alles auswählen

<img src="http://www.bilderdomain.de/view.php" alt="">
Dann hat aber jedes angezeigte Bild den gleichen Namen (falls jemand die Bilder speichern will). Der Pfad muß angepaßt werden.

Ich habe es bisher nicht getestet. Die Zeile

Code: Alles auswählen

header("Content-Type: image/".$endung);
könnte durchaus falsch/ungeeignet sein.

Ausprobieren!

Verfasst: 27.09.2006 17:45
von Andavos
Es ist aber nicht für das PHPbb-Forum, es ist für eine Private Website, da habe ich kein view.php!?