Ankündigung

Einklappen
Keine Ankündigung bisher.

Experte Gesucht - Ordner auf dem Webserver löschen sich von selbst?!

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Experte Gesucht - Ordner auf dem Webserver löschen sich von selbst?!

    Hallo zusammen und im Voraus schonmal vielen Dank für eure Mühe.
    Einige Beiträge konnten mir in letzter Zeit hier schon ein paar Mal helfen, nur leider muss ich dieses Mal was Fragen.

    Ich habe ein umfangreiches Skript für meine Firma geschrieben, welches es ermöglicht Artikel von Grund auf anzulegen, dieser ist in Zwei Schritten aufgeteilt.
    1. Roh-Anlage (Artikel wird Grob angelegt - Kategorie, Bestellnummer, Größen, Farben, Bilder)
    2. Detaillierte-Anlage (Artikel wird detailliert beschrieben - Titel, Beschreibung, Material etc.)
    In dem ersten Schritt lege ich die Bilder in folgender Struktur auf dem Server ab:

    Code:
    ../bilder/rohanlage/Kategorie($sku_kat)/Artikelnummer($sku_num)


    Nach dem erfolgreichen Anlegen eines Artikels im Schritt 2 führe ich die Funktion move_rohanlage_images aus.
    Diese Funktion verschiebt die Bilder aus dem Rohanlage Ordner in den Pfad:

    Code:
    ../bilder/$sku_kat/
    Anschließend sollen die Ordner im Rohanlage Pfad gelöscht werden.
    Das klappt soweit auch alles super. Das Programm lief nun auch über 3 Wochen einwandfrei durch.


    Allerdings tritt seit 1,5 Wochen nun ein merkwürdiger Fehler auf, den ich absolut nicht rausfinden kann.
    Zwischendurch bemerken wir plötzlich dass mehrere Ordner einfach fehlen aus der Rohanlage. Und zwar folgende quasi.


    Code:
    ../bilder/rohanlage/Kategorie/
    Heißt im Normalfall möchte ich die Unterordner löschen. Das klappt ja auch.
    Aber aus i-einem Grund löschen sich auch die "Überordner" davon, was nirgends geplant ist.

    Wir sind uns nicht 100%ig sicher, aber wir sind der Meinung dass die Ordner auch mal verschwunden sind, als keiner der beiden Skripte ausgeführt worden.
    Da ich von der Codeseite her aus, keine Fehler finden kann habe ich angefangen rumzuprobieren. Im Internet habe ich gelesen, dass Ordner dann nicht gelöscht werden können wenn sich darin Inhalte befinden für die man nicht ausreichend Berechtigung hat. Gesagt getan, ich habe in jedem Kategorieordner also eine Datei abgelegt und jegliche Rechte entzogen. Leider ohne Ergebnis.
    Dann habe ich mal unseren Hoster kontaktiert, ob ihm i-was einfallen würde oder er i-wie ne Möglichkeit besitzt, rauszufinden, wann und von wem die Ordner gelöscht werden - Er hat leider auch keine Idee.

    So noch zur Info, ich weiß nicht ob es von Bedeutung ist.
    In dem Ordner liegen zurzeit 20 Kategorienordner. Im Schnitt fehlen 1-4 Ordner, das variiert einfach.
    Allerdings fehlen immer die selben Ordner. Es sind 5 Stück, die da immer sich quasi abwechseln. (KL, TS, JM, PH, RO).
    Die Ordner haben alle die gleichen Rechte (755).
    Und es passiert so ca. 2-3 Mal am Tag (Merke es halt nur während der Hauptarbeitszeit)



    Wenn also jemand was dazu weiß, oder er einfach nur eine Idee hat, bitte lasst es mich wissen.
    Vielen Lieben Dank und liebe Grüße,
    René



    PHP-Code:
    function move_rohanlage_images($sku_num$sku_kat){

        while(
    $sku_num[0] == '0'){
            
    $sku_num substr($sku_num1strlen($sku_num)-1);
        }

        
    $dir '../bilder/rohanlage/'.$sku_kat.'/'.$sku_num.'/';
        
    $new_dir '../bilder/'.$sku_kat.'/';
        
    $new_dir_tn '../bilder/'.$sku_kat.'/tn/';


        if (
    is_dir($dir)){
            if (
    $handle opendir($dir)) {
                
    $i 0;
                while (
    false !== ($entry readdir($handle))) {
                    if( 
    $entry != '.' && $entry != '..') {
                        
    $srcfile $dir.$entry;
                        
    $dstfile $new_dir.$entry;
                        if(
    $i == 0){
                            
    vorschaubild_erzeugen ($dir.$entry$new_dir_tn.$entry'120''120' );
                        }
                        
    rename($srcfile$dstfile);

                        
    $i++;
                    }
                }
                
    closedir($handle);
            }
            
    loesche_ordner_mit_inhalt($dir);
        }
    }

    function 
    loesche_ordner_mit_inhalt($dir) {
        if (
    is_dir($dir)) {
            
    $objects scandir($dir);
            foreach (
    $objects as $object) {
                if (
    $object != "." && $object != "..") {
                    if (
    filetype($dir."/".$object) == "dir"loesche_ordner_mit_inhalt($dir."/".$object); else unlink($dir."/".$object);
                }
            }
            
    reset($objects);
            
    rmdir($dir);
        }


  • #2
    Baue dir einen eigenen Log auf, der mit einem Zeitstempel alle Dateioperationen (rename, rmdir, unlink..) deines Skrips dokumentiert. Nur wenn du diese Hausaufgabe ordentlich erledigst, ein Ordner verschwindet und du keinen Einrag in deinem Log findest kannst du halbwegs sicher sein, daß die Ursache bei anderen zu suchen ist.

    Wenn sich die Anzahl der Dateioperationen in Grenzen hält, kannst du anstelle eines eigenen Logs auch meine debug Klasse (s. Signatur) mißbrauchen.
    Diese erstellt HTML-Dateien, die du per Browser verfolgen kannst. Nachteil, die Dateien werden schnell sehr groß.

    Edit: Nimm absolute Pfade und vermeide relative Pfadangaben welche mit ../ oder ./ beginnen.

    Edit: Vermeide bitte in Zukunft Formulierungen wie "Experte gesucht" oder "Hilfeee" in deiner Überschrift.

    Kommentar


    • #3
      Da löscht sich nix von selbst. Du prüfst die übergebenen Parameter nicht. Ruftst du die Funktion mit leeren Parametern auf move_rohanlage_images('','');, löschst du alles aus dem rohanlagen Ordner. Jemand der es Böse meint ruft die Funktion mit / oder ../../../ auf.

      Kommentar

      Lädt...
      X