PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [PHP] closedir() geht nicht



EvoGT
02.06.2004, 21:13
Zja, wie sicher alle wissen gehört mir ja die Seite www.anime-avas.de und ich wollts mir leicht
machen und ein script schreiben um die Anzahl aller vorhandenen Avatare zu ermitteln.

Hier erstmal der Link zum Script : Klick (http://www.anime-avas.de/avacounter.php).

Wie man sieht, gibts Probleme mit closedir() , obwohl ich die Pfade vollkommen richtig
angewandt habe.
Das ganze läuft auch einwandfrei aber die Fehlermeldung wird halt immer ausgegeben
bei jedem durchgan...sehr ärgerlich


<?php

/*Variablen werden initiiert*/

$Bildergesammtzahl=0;
$Ordneranzahl=0;
$Ordnernamen=array();
$i=0;


/*Anzahl der Ordner und
Namen der Ordner ermitteln*/

$Hauptordner=opendir('serien'); //Ordner wird bestimmt
while ($Ordner = readdir ($Hauptordner)) { //Beginn der Schleife
if ($Ordner != "." && $Ordner != ".." && $Ordner != "index.php") { //Ausschluss von bestimmten Datein und Ordnern
$Ordneranzahl=$Ordneranzahl+1; //Zähler der Ordneranzahl wird erhöht
$i=$i+1;
$Ordnernamen["$i"] = $Ordner;
}
} //Ende der Schleife
closedir($Hauptordner); //Schließen des Ordners

/*Ermitteln der Bilderanzahl
aus den einzelnen Unterordnern*/

for ($i = 1; $i <= $Ordneranzahl; $i++) { //Beginn der Äußeren Schleife

$Unterordner="serien/".$Ordnernamen[$i]."/avatare";
$Hauptordner=opendir($Unterordner);
while ($Ordner = readdir ($Hauptordner)) { //Beginn der Inneren Schleife
if ($Ordner != "." && $Ordner != "..") {
$Bildergesammtzahl=$Bildergesammtzahl+1; //Zähler der gesammten Bilderanzahl wird erhöht
}
} //Ende der Äußeren Schleife
closedir($Unterordner);
//Ende der Äußeren Schleife
}

echo "$Bildergesammtzahl Bilder in $Ordneranzahl Ordnern"; //Ausgabe der Anzahl der vorhandenen Bilder

?>

skandal
02.06.2004, 21:35
register_globals auf on setzen

EvoGT
02.06.2004, 21:37
Original von skandal
register_globals auf on setzen

geht ohne root-rechte schlecht.
muss auch anders gehen irgendwie..ich sehe ja kein syntaxfehler

skandal
02.06.2004, 21:39
In dem du in dem Ordner httpdocs eine Datei mit Namen
.htaccess
(der Punkt ist notwendig) und dem Inhalt
php_flag register_globals on
anlegst.

EvoGT
02.06.2004, 22:02
dann geht die gantze seite nicht mehr...serverfehler ^^°°°°°

EvoGT
02.06.2004, 22:09
Original von EvoGT
dann geht die gantze seite nicht mehr...serverfehler ^^°°°°°

habs anders gelöst^^

einfach ein "@" vor die closedir() und weg sind die fehlermeldungen *gg*



ok, hab den Fehler gefunden. closedir($Unterordner) geht nicht weil
$Unterordner kein geöffneter Ordner ist, sondern nur der text-string ._.
closedir($Hauptordner) ist richtig ^^ (geht jetzt auch ohne das @)

imported_scribble
03.06.2004, 15:35
register_globals sollte man übrigens soweit irgend möglich ausgeschaltet lassen, sonst macht man schnell große Sicherheitslücken auf. Außerdem hätte es, soweit ich beim kurzen Drübergucken sehen kann, sowieso nichts geändert, weil ja keinerlei Daten aus einem Formular, der URL, der Session, ... verarbeitet werden.

Bis dann,

scribble

skandal
03.06.2004, 16:43
Original von scribble
register_globals sollte man übrigens soweit irgend möglich ausgeschaltet lassen, sonst macht man schnell große Sicherheitslücken auf. Außerdem hätte es, soweit ich beim kurzen Drübergucken sehen kann, sowieso nichts geändert, weil ja keinerlei Daten aus einem Formular, der URL, der Session, ... verarbeitet werden.

Bis dann,

scribble


hehe, ich weiß ^^
n'paar leuts sind bereits auf die tricks reingefallen, der server fiel aber runter XDDD