tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
6
ZUGRIFFE
362
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    key cee key cee ist offline Mitglied
    Registriert seit
    Apr 2007
    Ort
    Bochum
    Beiträge
    12
    Hallo,
    Benutzer sollen Bilder hochladen können, bis jetzt hat das auch geklappt,
    aber da nicht jeder User den gleichen Ordner haben soll, möchte ich mir das Verzeichnis (bzw. den Ordnernamen) aus der Datenbank holen.
    Wenn es noch nicht besteht soll es mit mkdir() erstell werden, aber es kommt immer wieder die Fehlermeldung:
    Warning: mkdir(fileadmin/Anzeigen/Werkstoffe/test) [function.mkdir]: No such file or directory in /html/fileadmin/php_dateien/profil_aendern.php on line 67
    Ich habe versucht einige der Lösungen hier im Forum auszuprobieren, bis jetzt aber ohne jeden Erfolg.

    Vielleicht sieht jemand, wo mein Denkfehler liegt:
    PHP-Code:
    ...
    $zahl $_POST['zahl'];
    ...
    // DATENBANKKONTAKT
    $host "...";     //Host der Datenbank
    $user "...";          // Benutzername
    $password "...";  //Passwort
    $datenbank "...";       //Datenbankname
    $kontakt mysql_connect($host$user$password);  // Connect zur DB
    mysql_select_db($datenbank);             // Auswaehlen der DB


    // SQL - Abfrage für Verzeichnisüberprüfung
    $result mysql_query("SELECT TABELLE1.*, TABELLE2.* FROM TABELLE1, TABELLE2
    WHERE TABELLE1.WERT1='
    $zahl'
    AND HER_TABELLE1.WERT1=TABELLE2.WERT2"
    );
      while(
    $row mysql_fetch_array($result)) {
       
    // Anzahl der Felder ermitteln
      
    $j mysql_num_fields($result);
      for(
    $i=0;$i<$j;$i++) {
        
    // Name des aktuellen Feldes ermitteln
        
    $k mysql_field_name($result,$i);
        
    // Dem Feldnamen einen Wert zuweisen
        
    $$k $row[$k];
        }
    // for ENDE
    }// while ENDE

    // Verzeichnisüberprüfen ggf. anlegen
    $VERZEICHNIS "../fileadmin/Anzeigen/$WERT3/$WERT4";
    echo 
    $VERZEICHNIS;

    if (!
    file_exists($VERZEICHNIS) || !is_dir($VERZEICHNIS)) {
      
    mkdir($VERZEICHNIS);
      echo 
    "<br>Ordner wird angelegt<br>";
    }
    // if ENDE

    else {
      print 
    "<br>Ordner besteht bereits<br>";
    }
    // else ENDE

    ... 
    lg
    Key cee
     

  2. #2
    Avatar von tobee
    tobee tobee ist offline Grolba.com media
    Registriert seit
    Jul 2005
    Ort
    Karlsruhe
    Beiträge
    1.700
    Blog-Einträge
    131
    Ich glaube du musst erst den Überordner (Werkstoffe) und dann den Unterordner (test) erstellen.
     

  3. #3
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Wie mir scheint scheinst Du gleich eine ganze Verzeichnisstruktur damit anlegen zu wollen, was so natuerlich nicht geht.
    Wenn Du willst, dass das der komplette Baum erstellt wird musst Du den dritten Parameter ($recursive) von mkdir() nutzen.

    Ansonsten faellt mir auf, dass Dein Script in /html/fileadmin/php_dateien/ ausgefuehrt wird und ../fileadmin/Anzeigen/$WERT3/$WERT4 erstellen will.
    Meiner Meinung nach fehlt da nochmal ../ am Anfange, denn mit dem .. was Du jetzt hast landest Du in fileadmin.
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  4. #4
    key cee key cee ist offline Mitglied
    Registriert seit
    Apr 2007
    Ort
    Bochum
    Beiträge
    12
    Dankeschön für die Antworten.


    Habe nun das mit dem ../ und $recursive verändert:
    PHP-Code:
    // Verzeichnisüberprüfen ggf. anlegen
    $VERZEICHNIS "../../fileadmin/Anzeigen/$WERT3/$WERT4";
    echo 
    $VERZEICHNIS;
    if (!
    file_exists($VERZEICHNIS) || !is_dir($VERZEICHNIS)) {
      
    mkdir($VERZEICHNIS$recursive true);
      echo 
    "<br>Ordner wird angelegt<br>";
    }
    // if ENDE 

    Es wird nun der gewünschten Ordner angelegt!

    Aber die Datei wird dort nicht gespeichert.

    ...naja ich schätze mal es liegt an den Rechten,
    denn als ich den Ordner öffnen wollte, kam eine Fehlermeldung:
    Beim Öffnen auf dem FTP-Server ist ein Fehler aufgetreten. Stellen Sie sicher, dass Sie die erforderlichen Zugriffsrechte für den Ordner haben.

    Details:
    550 Failed to change directory

    Dann werde ich erstmal auf Suche gehen!

    Danke für Eure Hilfe.
     

  5. #5
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Du setzt den Parameter falsch ein.
    Wie gesagt, es ist der 3. Parameter. Schau mal in die Hife dazu. dafuer hab ich die ja verlinkt.
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  6. #6
    key cee key cee ist offline Mitglied
    Registriert seit
    Apr 2007
    Ort
    Bochum
    Beiträge
    12
    Zitat Zitat von Dennis Wronka
    Du setzt den Parameter falsch ein.
    Wie gesagt, es ist der 3. Parameter. Schau mal in die Hife dazu. dafuer hab ich die ja verlinkt.
    Hm...
    Ich hatte es schon ungefähr so versucht:
    PHP-Code:
    mkdir($VERZEICHNIS,0777TRUE); 
    Aber es erschien dann diese Fehlermeldung:
    Warning: mkdir() expects at most 2 parameters, 3 given in /html/fileadmin/php_dateien/profil_aendern.php on line 67

    Ich habe es nun einfach mal anders versucht...
    PHP-Code:
    if (!file_exists($VERZEICHNIS) || !is_dir($VERZEICHNIS)) {
      
    mkdir($VERZEICHNISTRUE);
      
    chmod($VERZEICHNIS0777);
      echo 
    "<br>Ordner wird angelegt<br>";
    }
    // if ENDE 
    ...und bis jetzt konnte ich keine Fehler ausmachen, es funktioniert.
     

  7. #7
    Avatar von tobee
    tobee tobee ist offline Grolba.com media
    Registriert seit
    Jul 2005
    Ort
    Karlsruhe
    Beiträge
    1.700
    Blog-Einträge
    131
    Funktionen und Tipps zur Fehlerbehebung:
    error_reporting()
    debug_backtrace()
     

Ähnliche Themen

  1. Probleme bei Verzeichniserstellung
    Von Sprint im Forum PHP
    Antworten: 6
    Letzter Beitrag: 11.06.09, 09:02
  2. Antworten: 3
    Letzter Beitrag: 08.04.09, 11:45
  3. CHMOD Probleme bei mkdir();
    Von JimmyLikesSka im Forum PHP
    Antworten: 1
    Letzter Beitrag: 23.01.08, 16:10
  4. Frage zur Verzeichniserstellung
    Von funnyzocker im Forum PHP
    Antworten: 13
    Letzter Beitrag: 16.04.06, 17:36
  5. mkdir
    Von Refereen im Forum PHP
    Antworten: 3
    Letzter Beitrag: 27.09.04, 16:01