Verzeichnis anlegen und überprüfen?!

Kumaro

Mitglied
Hi, ich habe mal wieder ein kleines Problem

Folgende Situation:

Ich schreib ein Script zum hochladen von Eventbildern. Wenn man jetzt ein Event auswählt, anhand der ID, dann soll überprüft werden ob ein Ordner mit der EventID schon vorhanden ist, wenn ja sollen die Bilder da mit rein und wenn nicht dann soll der Ordner im Überordner Gallery erzeugt werden.

Doch leider funktioniert das alles nicht ...

$event_id = $_POST['eventid'];

// Ein neuer Ordner, wenn noch nicht vorhanden, mit dem Eventnamen muss erzeugt werden

if (!is_dir("/Gallery/".$event_id) ) {
mkdir("../Gallery/".$event_id, 0700);
echo("Verzeichnis angelegt");
}
else {
echo ("Verzeichnis ist schon vorhanden");
}


Ich hoffe ihr könnt mir sagen was ich hier falsch mache... weder erkennt er einen vorhandenen Ordner noch erzeugt er einen neuen Ordner

Please Help
 
Moin!

Als erstes solltest Du sicherstellen, dass $event_id auch einen Wert enthält - falls nicht wird das Skript wohl nie einen Ordner anlegen. Andernfalls stell sicher, dass Du Dich im richtigen Arbeitsverzeichnis befindest - es kann gut sein, dass die Ordner nur woanders erstellt wurden. Um dem vorzubeugen solltest Du absolute Pfadangaben bevorzugen.

Nebenbei: Du solltest Dir bewusst sein, dass Die Funktion is_dir() ihr Ergebnis cached und Du eventuell diesen Cache löschen musst.

Ausserdem ist 0700 nicht wirklich ein guter Wert für den Zugriffsmodus. Wenn das Skript nicht ausschließlich auf einer Windows-Maschine laufen soll, wäre 0744 vielleicht eine bessere Wahl...

Greetz
Enum
 
Hi danke das du mir helfen willst.
Also event_id enthält einen wert... und wenn ich is_dir weglasse und dafür !file_exist nehme ? funktioniert das mit Verzeichnissen?
 
Tach nochmal!

Also es ist ziemlich egal ob du is_dir() oder file_exists() nimmst - sofern sich in dem übergeordneten Verzeichnis ausschließlich Ordner befinden. Aber das wird dein Problem nicht lösen.
mkdir() gibt TRUE/FALSE bzw. Erfolg/Miserfolg zurück. Probier's mal mit
PHP:
if(!is_dir("/Gallery/$event_id"))
{
  echo mkdir("../Gallery/$event_id", 0700)? "Verzeichnis angelegt!\n": "Anlegen fehlgeschlagen!\n";
}
else
{
  echo "Verzeichnis ist schon vorhanden!\n";
}
Im Übrigen unterscheiden sich die Pfadangaben:
Code:
"/Gallery/$event_id"
"../Gallery/$event_id"

Gruß
Enum
 
Zuletzt bearbeitet:
PHP:
if(!is_dir("/Gallery/$event_id"))
{
  echo mkdir("../Gallery/$event_id", 0700)? "Verzeichnis angelegt!\n": "Anlegen fehlgeschlagen!\n";
}
else
{
  echo "Verzeichnis ist schon vorhanden!\n";
}

oder mit:
if(file_exists("Gallery/".$event_id)) > wobei "/" oder "../" oder "./" vor Gallery einen Unterschied macht und hier in verschiedenen Versionen weiter oben vorkommt.
{
echo 'Verzeichnis ist vorhanden!';
}
else
{
if (mkdir("Gallery/".$event_id));
}
und vielleicht noch prüfen ob $event_id vorhanden ist.
echo $event_id;
 
Zurück