• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Bilderbox

Status
Für weitere Antworten geschlossen.

KöNiG

Neues Mitglied
Hallo!
Ich kenne mich so gut wie gar nicht mit Php aus. Und wollte trotzdem mal fragen ob jemand von euch den Code für eine Bilderbox parat hat.
Die Bilderbox sollte die Funktion haben, dass jedesmal zufällig aus einem Bilderordner zufällig ein Bild ausgewählt wir wenn man die Seite läd, und dieses Bild dann angezeigt wird. Wäre über schnelle Hilfe sehr dankbar!
 
[php:1:71f999a686]<?php
$folder = opendir('bla/bla');
$files = array();
$counter = 0;
while($file = readdir($folder))
{
$files[$counter] = $file;
$counter += 1;
}
srand((double)microtime()*1000000);
echo "<img src=\"".$files[rand(0, count($files))]."\" alt=\"\" />\n";
?>[/php:1:71f999a686]

könnten fehler drin sein einfach testen...

lernen :wink:
 
Ja zunächst danke für den Code.
Ich habe den nun 1 zu 1 kopiert. Weil ich mir nicht sicher bin wo ich was abändern muss.
Das ganze hab ich auf den Webspace geladen, es kommt allerding folgende Fehlermeldung:

Warning: opendir(bla/bla): failed to open dir: No such file or directory in /usr/export/www/vhosts/funnetwork/hosting/horrorklasse/versuch.php on line 10

Warning: readdir(): supplied argument is not a valid Directory resource in /usr/export/www/vhosts/funnetwork/hosting/horrorklasse/versuch.php on line 13

Also was muss ich genau abändern? :roll:
 
Natürlich!
Es gibt insgesamt in meinem versuch.php 23 Linien!
Das hier zählt ja auch noch dazu:

Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Unbenanntes Dokument</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
 
AHA stimmt ja

ich habe schon gesagt, dass ich keine ahnung habe aber könnte nicht sein, dass du hier "$files[$counter] = $file;" noch ein s hinzufügen musst ($files[$counter] = $files;?
 
du hast aber schon anstatt

$folder = opendir('bla/bla');

den richtigen pfad zu deinen dateien angegeben oder? Óò
er wird sonst schlecht ein bla/bla verzeichnis finden,
wenn gar keins angelegt ist.
 
@ fdw: ließ dir mal die fehlermeldung durch das ist schon richtig so es scheitert nur wie cOnestehesia sagt an der pfad angabe...
 
sodele hab das nun geändert. Funktionieren tuts aber immer noch nicht!

Fehlermeldung:
SecureSSI: Das Script (/usr/export/www/vhosts/funnetwork/hosting/horrorklasse/versuch.php) hat versucht ausserhalb von ihrem Userverzeichniss auf die Datei /Bilder/ zuzugreifen.
Dies ist nicht erlaubt!

Warning: opendir(): Sicherheitsverletzung: in /usr/export/www/vhosts/funnetwork/hosting/horrorklasse/versuch.php on line 10

Warning: opendir(/Bilder/): failed to open dir: Operation not permitted in /usr/export/www/vhosts/funnetwork/hosting/horrorklasse/versuch.php on line 10

Warning: readdir(): supplied argument is not a valid Directory resource in /usr/export/www/vhosts/funnetwork/hosting/horrorklasse/versuch.php on line 13

EDIT:
So habe nun was abgeändert. Nun kommen nur noch 2 Fehlermeldungen:

Warning: opendir(horrorklasse.ho.funpic.de/Bilder/): failed to open dir: No such file or directory in /usr/export/www/vhosts/funnetwork/hosting/horrorklasse/versuch.php on line 10

Warning: readdir(): supplied argument is not a valid Directory resource in /usr/export/www/vhosts/funnetwork/hosting/horrorklasse/versuch.php on line 13
 
du kannst nur ordner die relativ zu deinem erreichbar sind öffnen. also must du da ganze auch relativ angeben:

Bilder/
 
Ja okay. Also die Fehlermeldungen habe ich damit wegbekommen. Es zeigt mir allerdings kein Bild an. Wenn ich versuch.php öffne, dann sehe ich nur eine leere Seite. Also irgendwo muss noch was falsch sein.
Hier der Code:

Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Unbenanntes Dokument</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php
$folder = opendir('Bilder/');
$files = array();
$counter = 0;
while($file = readdir($folder))
{
$files[$counter] = $file;
$counter += 1;
}
srand((double)microtime()*1000000);
echo "<img src=\"".$files[rand(0, count($files))]."\" alt=\"\" />\n";
?> 
</body>
</html>
[/code]
 
häng mal an den code ran:
[php:1:9b69270f28]<?php
foreach($files as $i => $f)
{
echo $i.' => '.$f.'
';
}
?>[/php:1:9b69270f28]

was gibt es dir aus?
 
ok dann ersetzt:
[php:1:570b05a41d]<?php
echo "<img src=\"".$files[rand(0, count($files))]."\" alt=\"\" />\n";
?>[/php:1:570b05a41d]

durch:
[php:1:570b05a41d]<?php
echo "<img src=\"".$files[rand(2, count($files))]."\" alt=\"\" />\n";
?>[/php:1:570b05a41d]
 
Diese "2" steht für die Anzahl der Bilder oder? Also wenn da mehr Bilder drin sind muss ich auch diese Zahl erhöhen?

EDIT:
So habe die Sachen nun ersetzt, aber das Bild wird immer noch nicht angezeigt. Ich vermute dass der Pfad zu den Bilder falsch angegeben ist. Aber was muss ich da ändern?
 
Nein es ist folgendes:

Ich habe mir eine liste der dateien und ordner ausgeben lassen:
0 => .
1 => ..
2 => bahr.JPG
3 => bus.JPG

wie du sieht wird das verzeichnis selbst und das darüberliegende verzeichnis (. und ..) angezeigt. erst ab punkt 2 kommen die bilder!

also muss ich der zufallsfunktion sagen das sie nur zufallszahlen zwischen 2 und der anzah ausgeben soll weil sonst verzeichnisse eingefügt werden.

apropo du darfst keine weiteren verzeichnisse in diesen ordner packen sonst kommt der fehler wieder! wenn du das trotzdem willst muss ich ihn noch mal modifzieren...
 
nochmal überarbeitet:
[php:1:ae3d1b83fc]<?php
$path = 'Bilder/'; /* ziel pfad */

$folder = opendir($path);
$files = array();
$counter = 0;
while($file = readdir($folder))
{
if(!is_dir($file))
{
$files[$counter] = $file;
$counter += 1;
}
}
srand((double)microtime()*1000000);
echo "<img src=\"".$path.$files[rand(0, count($files))]."\" alt=\"\" />\n";
?>[/php:1:ae3d1b83fc]

so nun sollte es funktionieren... es können nun auch ordner im zielordner sein diese werden aber nicht angezeigt....
 
Yeah es klappt!
Nur ist es so, wenn man auf "aktuallisieren" klickt, dann kommt kein Bild mehr.
Kann man das auch noch ändern?
Außerdem hätte ich das Bilder gern nur in einer Größe von:
width="185" height="115"
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben