Finde den Fehler nicht.
Folgendes Problem auf meiner Webseite:
www.goapics.de
auf der Startseite werden Bilder aus dem jeweiligen Jahr per Zufallszahl angezeigt. Habe die Seite leider auf einem wampp (win & apache) geschrieben, dort lief auch alles. Nun auf meinem Linuxserver kommt es unregelmässig zu "roten Ausrufezeichen" anstatt der Bilder.
In den Bildverzeichnissen gibt es Bilder mit beliebigen Titel, und gelegendlich ein Bild mit Namen x.jpg.
Dieses enthält einen Hinweis auf Fremdbilder und soll auf der ersten Seite nicht mit angezeigt werden, sondern erst bei der Thumbsansicht.
Es kommt durch meinen Code irgendwie z.B. zu diesem Aufruf ohne Datienamen:
(z.B: http://joewest.dyndns.tv/thumb.php?image=fotos2/2002/WONDERLAND02/&x=100&y=100&aspectratio=1)
Der Phpcode sieht so aus
<?php
function bild($jahr)
{
// Anzahl ermitteln
$verz=opendir ("fotos2/".$jahr);
$anzahl=0;
while ($file = readdir ($verz))
{
if($file!="." && $file!="..")
$anzahl+=1;
}
closedir($verz);
// Zufallszahl
srand(microtime()*1000000);
$zufall = rand(1,$anzahl);
//
$verz=opendir ("fotos2/".$jahr);
$anzahl=0;
while ($file = readdir ($verz))
{
if ($file!="." && $file!="..")
$anzahl+=1;
if($anzahl==$zufall)
$zufallordner=$file;
}
closedir($verz);
$verz=opendir ("fotos2/".$jahr."/".$zufallordner);
$anzahl=0;
$infonr=0;
while ($file = readdir ($verz))
{
if($file!="." && $file!="..")
{
$anzahl+=1;
}
if ($file=="x.jpg")
$infonr=$anzahl;
}
closedir($verz);
$verz=opendir ("fotos2/".$jahr."/".$zufallordner);
$zufall=0;
srand(microtime()*1000000);
$zufall = rand(1,$anzahl);
if ($zufall==$infonr) $zufall-=1;
$anzahl=0;
while ($file = readdir ($verz))
{
if ($file!="." && $file!="..")
{
$anzahl+=1;
if($anzahl==$zufall)
$zufallfile=$file;
}
}
closedir($verz);
return "fotos2/".$jahr."/".$zufallordner."/".$zufallfile;
}
for($i=0; $i<8; $i++)
{
$bilder[$i][" 2000 "] = bild("2000");
}
for($i=0; $i<8; $i++)
{
$bilder[$i][" 2001 "] = bild("2001");
}
for($i=0; $i<8; $i++)
{
$bilder[$i][" 2002 "] = bild("2002");
}
for($i=0; $i<8; $i++)
{
$bilder[$i][" 2003 "] = bild("2003");
}
Jemand eine Idee
