Fahrtenbuch genial!
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 19.08.2003, 05:27   #1
TP-Junior
 
Registriert seit: Aug 2003
Ort: Schleswig Holstein
joewest macht alles soweit korrekt
Question

Fehler bei Auslesen und Anzeigen von Bildverzeichnissen


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

joewest ist offline   Mit Zitat antworten


Alt 19.08.2003, 12:03   #2
TP-Veteran
 
Benutzerbild von pauel
 
Registriert seit: Jan 2003
Ort: München
pauel hilft, wo's gehtpauel hilft, wo's geht
hi, ich glaube, dass das
PHP-Code:
$auswahl += 
so heissen müsste
PHP-Code:
$auswahl++ 
//edit: habs aber nicht getestet, ist nur eine vermutung!


grüße, Paul
pauel ist offline   Mit Zitat antworten
Alt 19.08.2003, 12:56   #3
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
@axo: ist das gleiche, nur eine andere schreibweise
anzahl = anzahl +1;
anzahl += 1;
anzahl++;

@joewest: wenn das nur sporadisch auftritt, kann es sein, dass die verzeichnisse unterschiedliche rechte haben?

p.s. die funktion ist ein wenig umständlich geschrieben...
__________________
Gehelft? Hier kannst du dich bedanken.

mike
mike ist offline   Mit Zitat antworten
Alt 19.08.2003, 13:07   #4
TP-Junior
 
Registriert seit: Aug 2003
Ort: Schleswig Holstein
joewest macht alles soweit korrekt
@ longfang:

die verzeichnisse haben die selben rechte die idee hatte ich auch schon, kommt auch nur bei verzeichnissen vor die das x.jpg beinhalten.

umständlich mag sein, bin nicht so der proficoder
joewest ist offline   Mit Zitat antworten
Alt 19.08.2003, 13:44   #5
TP-Veteran
 
Benutzerbild von pauel
 
Registriert seit: Jan 2003
Ort: München
pauel hilft, wo's gehtpauel hilft, wo's geht
ok, sorry wusst ich nicht. *nocheinbisschenschlechterfühlasehschonkrankheitsbedingt*
pauel ist offline   Mit Zitat antworten
Alt 19.08.2003, 14:15   #6
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
was sind das für x.jpg eigentlich? sind das bilder? Deine Aussage über Hinweise hat mich ein wenig verwirrt...
__________________
Gehelft? Hier kannst du dich bedanken.

mike
mike ist offline   Mit Zitat antworten
Alt 19.08.2003, 14:26   #7
TP-Junior
 
Registriert seit: Aug 2003
Ort: Schleswig Holstein
joewest macht alles soweit korrekt
ja das sind Bilder, (hier ein link )

Dieses Bild zeige ich nachher bei den Seiten mit dem Thumbs an, wenn die Bilder nicht von mir sind, sondern von dritten zur Verfügung gestellt werden.

Der Fehler tritt nicht jedes mal beim Aufrufen von goapics auf. Vielleicht ein paar mal F5 drücken, irgendwann tritt er dann auf. Oder liegt es an meinem lokalen Zugriff auf meinen Linuxserver (kann ich mir aber eigendlich nicht vorstellen).
joewest ist offline   Mit Zitat antworten
Alt 19.08.2003, 14:51   #8
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
verstehe. da wird dir gar kein bild mitübergeben.

wie gesagt. dein script ist ein wenig umständlich...
und in der behandlung des x vermute ich auch deinen fehler.

fixe mal folgendes:
PHP-Code:
while ($file readdir ($verz))

if(
$file!="." && $file!="..")
{
$anzahl+=1;
}
if (
$file=="x.jpg")
$infonr=$anzahl;
}
closedir($verz);


auf

while ($file readdir ($verz))

 if(
$file!="." && $file!=".." && $file!="x.jpg")
  
$anzahl+=1;
}
closedir($verz); 
...

nein vergisses.

geh folgendermassen vor:

auf der dhcp seite (in den base-links) findest du ein script, das dir Verzeichnisse rekursiv ausliest.

spiele mithlilfe dieses scriptes alle bildnamen inklusive dem verzeichnis (bekommst alles aus der funktion raus) in ein array.

counte das array
randomize
und hol dir die bildnamen aus dem array raus

dadurch hast du nur einmal Zugriff auf dein Dateisystem, den rest macht das Script = um Häuser performanter und höchstwahrscheinlich auch fehlerfrei...
__________________
Gehelft? Hier kannst du dich bedanken.

mike
mike ist offline   Mit Zitat antworten
Alt 25.08.2003, 16:13   #9
TP-Junior
 
Registriert seit: Aug 2003
Ort: Schleswig Holstein
joewest macht alles soweit korrekt

so besser?


hoffe ich habe nicht wieder so kompliziert geschrieben, sieht nun so aus der script:


<?PHP
function read_dir($dir,$xxx)
{
$aaa="http://www.goapics.de/stratoindex.html";
$handle = @opendir($dir);
$bild = array();
while ($file = @readdir ($handle))
{
if (eregi("^\.{1,2}$",$file))
{
continue;
}
if(is_dir($dir.$file))
{
$xxx=$xxx+1;
read_dir($dir.$file."/",$xxx);
}
else
{
$bild[] = $dir.$file;
}
}
closedir($handle);

$zaehler=count($bild)-1;
srand((double)microtime()*$zaehler);
$zufall=rand(0,$zaehler);
if (substr($bild[$zufall],-5)!="x.jpg" && $bild[$zufall]!="")
{
if ($xxx%9!=0)
{
$joker=strchr($bild[$zufall],"/");
$joker=substr($joker,1);
$joker=strchr($joker,"/");
$joker=substr($joker,1);
$joker2=strrchr($joker,"/");
$joker2=strlen($joker2)+2;
$joker=substr($joker,0, strlen($joker)-$joker2);

echo "<IMG src='thumb.php?image=".$bild[$zufall]."&x=100&y=100&aspectratio=1' align='absmiddle' border='1' hspace='5' vspace='5' alt=".$joker.">";
}
else
echo "<br>";
}
}
?>




und so der Aufruf im Html-Bereich:

<TD valign="Middle" align="center"><A href="party.php?mode=2001" target="main" style="color: Black;"><?php read_dir("fotos2/2001/",0) ?></A></TD>


wäre nett wenn dies nochmal einer überfliegen könnte.

Mfg

joewest
joewest ist offline   Mit Zitat antworten
Alt 25.08.2003, 16:22   #10
Registered User
 
Registriert seit: Feb 2002
Radoo.de macht alles soweit korrekt
.

Geändert von Radoo.de (18.10.2003 um 20:15 Uhr).
Radoo.de ist offline   Mit Zitat antworten
Alt 25.08.2003, 16:35   #11
TP-Junior
 
Registriert seit: Aug 2003
Ort: Schleswig Holstein
joewest macht alles soweit korrekt
Glaube das Zufallsbild kann wirklich "", also leer sein, dar ja auch der ordnername ins array eingelesen wird, oder?

danke für die super schnelle antwort
joewest ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
Fehler bei Auslesen und Anzeigen von Bildverzeichnissen Fehler bei Auslesen und Anzeigen von Bildverzeichnissen
« PHP Skript auf eigenem Rechner ausführen | mail anhang versenden »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:50 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67