Rosewick: Upload

Hallöchen,
ich habe da ein grosses Problem und weiß nicht woran das liegt. bin noch frisch in Sachen PHP.

Problem:

ich habe ne site upload.php geschrieben, indem ich dateien in ein bestimmtes Verzeichnis(Vorgabe) hochladen kann. in diesem Verzeichnis kann ich auch neue Unterverzeichnisse erstellen. Aber ich kann in diesen unterverzeichnisse keine dateien hochladen, obwohl ich mkdir("ordner/",0777) benutzt habe. dieser Mod 0777 ist doch die Eigenschaft des Verzeichniss.d.H. das alle Zugriffe erlaubt sind, oder?? Irre ich mich?? wenn ich auf meinem Server schaue und die Eigenschaft anschau, sehe ich das dieses Verzeichniss auch diese eigenschaft hat(Volle Zugriffsrechte, lesen, schreiben,ausführen!)

Woran kann das liegen??

Kann mir jemand helfen??

  1. Kann mir jemand helfen??

    Dazu bräuchte ich mal das php-skript!
    kannst Du das mal posten?

    1. hi natürlich, hatte ich vergessen. Sorry

      Danke!!    ;-)

      hier der wesentliche teil ders script:

      <?php

      // Dateiupload
      //------------------------------------------------------------------------------------------------------------------------------------
      if ($flag==1) //Wenn das Formular abgeschickt wurde.
      {
          //Datei checken
          //--------------------------------------------------------
          //Erst die Größe
          if($datei_size>999999999) {$fehler.="Datei ist zu groß!<br>";}
          //Dann der Typ
          //if(($datei_type != 'text/html' && $datei) && ($datei_type != 'image/jpeg' && $datei) && ($datei_type != 'image/pjpeg' && $datei) && ($datei_type != 'image/gif' && $datei)&& ($datei_type != 'text/pdf' && $datei)) {$fehler.="Falscher Dateityp! " .$datei_type. "<br>" ;} //Typen können natürlich geändert werden
          //Und dann checken ob überhaupt eine Datei ausgewählt wurde
          if(!$datei){$fehler.="Keine Datei gewählt!<br>";}
          //Das Ganze in die Variable $fehler
          //--------------------------------------------------------
          if($fehler) //Bei Fehlern, Meldung ausgeben
          {
              $meldung="<h2 align='center'><font color='#880000'>" .$fehler. "</font></h2>"; //Die Fehlermeldung etwas verschönern  ;-)
              unset($flag); //Variable $flag wieder zurück setzten
              echo $meldung; //Fehlermeldung ausgeben
          }
          else
          {
            //Keine Fehler? Dann Datei hochladen
            //--------------------------------------------------------------------
            $writeurl = "";
            if ($uvz2 != "")
            {
                $writeurl = "/".$uvz2;
            }
             $uvz = "data_archive$writeurl"; //Verzeichnisname (ist immer "web")
             //Die Verzeichnisnamen kommen aus dem Formular weiter unten
             if (!file_exists($uvz)) //Wenn nicht vorhanden, dann anlegen
             {
                 mkdir($uvz,0777); //mit den entsprechenden Rechten versehen
             }
             $name=$uvz."/".$datei_name;

      //copy($datei, $name); //Kopieren der Datei auf den Server

      $j = 1;
              if(copy($datei, $name));

      else
                   {
                   echo "<font color = '#ff0000'>Datei '$datei_name' konnte nicht kopiert werden</font><br>";
                   $j++;
                   }
            if ($j == 1)
            {
             //Anzeigen der Dateigröße
             $sizer = $datei_size;
             $ending = "Byte";
             if ($sizer > 1000)
             {
                 //Berechnung der Dateigröße in KB
              $sizer = $sizer / 1000;
                 $sizer = number_format($sizer,2,",",".");
                 $ending = "KB";
             }
          // Ausgabe der Informationen
             echo "<font size='3'>Information:</font><br>";
             echo "Dateityp: $datei_type <br>";
             echo "Gr&ouml;&szlig;e: $sizer $ending<br>";
             echo "Dateiname: $datei_name<br>";
             echo "<font color='#ffffff'>Datei wurde erfolgreich hochgeladen!</font><br>";
             echo "<br><a href='$_SERVER[PHP_SELF]?$_SERVER[QUERY_STRING]'> <<< Zurück</a> (Nach 7 Sekunden automatisch.)<br><br>";
             echo "<script language='JavaScript'>
               var gWindowCloseWait = 7;
               function zurueck()
               {
                  window.location = ("$_SERVER[PHP_SELF]?$_SERVER[QUERY_STRING]");
               }
               window.setTimeout("zurueck()", gWindowCloseWait*1000);
               </script>";
         }
          }
          //--------------------------------------------------------------------
      }
      //------------------------------------------------------------------------------------------------------------------------------------

      // Verzeichnis anlegen
      //------------------------------------------------------------------------------------------------------------------------------------

      //Wo sind wir? Haupt oder Unterverzeichnis?
            $writeurl = "";
            if ($uvz2)
             {
                $writeurl = $uvz2;

      }
            $uvz="data_archive$writeurl"; // Das Hauptverzeichnis ist immer /web

      if ($sent==1) //Wenn Datei gelöscht werden soll.... Weiter unten.
            {
                $name = urldecode($name);
                $pfad = $uvz."/".$name;
                @unlink($pfad); //Pfad zusammenbasteln ;-)
              if ($uvz2 != "")
              {
                 echo " <script language='JavaScript'>
                   window.location = ('upload.php?uvz2=$uvz2') </script>";  //Und wieder dahin zurück wo wir waren
              }
              else
              {
                 echo " <script language='JavaScript'>
                   window.location = ('upload.php') </script>";   //Und wieder dahin zurück wo wir waren
              }
            }

      if ($flag2==1)
          {
              if(!$verzname){$fehler.="Kein Verzeichnis eingegeben!<br>";} //Wurde ein Verzeichnis eingegeben?
         if ($verzname)
         {
            if(!eregi("[1]+$",$verzname)){$fehler.="Ungültige Zeichen im Verzeichnisnamen<br>
            (Nur a-z und 0-9 erlaubt)<br>";} //Zeichen des anzulegenden Verzeichnisses prüfen
         }
            if($fehler)
            {
                $meldung="<h2 align='center'><font color='#880000'>" .$fehler. "</font></h2>"; //Fehlermeldung verschönern ;-)
                    unset($flag2); //Variable $flag2 wieder zurück setzten
                    echo $meldung; //Fehlermeldug ausgeben
            }
            else //Wenn es keine Fehler gab
            {
              $akt_vz= $uvz;
              $verzname_k="/home/www/web75/html/engineer05/".$akt_vz."/".$verzname;

      if(mkdir($verzname_k,0777))echo "verzeichnis '$verzname_k' wurde erstellt<br>";
                   else
                   {
                   echo "<font color = '#ff0000'>Verzeichnis '$verzname_k' wurde nicht nicht erstellt</font><br>";
                   }

      if(chmod($verzname_k,0777))echo "MODUS des Verzeichnis '$verzname_k' wurde umgestellt<br>";
                    else
                   {
                   echo "<font color = '#ff0000'>MODUS des Verzeichnis '$verzname_k' wurde nicht nicht umgestellt</font><br>";
                   }
            }

      }
      //------------------------------------------------------------------------------------------------------------------------------------


      1. a-zA-Z0-9 ↩︎

      1. $verzname_k="/home/www/web75/html/engineer05/".$akt_vz."/".$verzname;

        mach daraus mal:

        $verzname_k="./web75/html/engineer05/".$akt_vz."/".$verzname;

        Geht es dann?

        1. hi,

          das problem ist wenn ich schon per "server web-ftp" ordner in diesem Hauptverzeichnis angelegt habe und diese am Server alle rechte gegeben habe, dann kann ich dateien über upload.php hochladen.

          Habe ich aber über das Upload.php ein verzeichnis erstellt dann kann ich keine Dateien hochladen, obwohl alle rechte laut eigenschaft vorhanden sind?? Merkwürdig oder??

          aber ich probiere deinen Vorschlag mal gerade aus.  ;-)

          1. ne funktioniert erst gar nicht kann dann gar kein verzeichnis anlegen
            noch ne Idee??? :-)

            1. ne funktioniert erst gar nicht kann dann gar kein verzeichnis anlegen
              noch ne Idee??? :-)

              Wenn's per webftp geht und per ftp per php nicht, hast du mal versucht das mit einzubinden, oder besteht das schon:

              $con = ftp_connect("127.0.0.1",21);
              ftp_login($con,"user","password");
              Please do not forget, like I did!