Datei Upload!
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anzeigen
datei
dateiname
dokument
fehler
fehlermeldung
formen
formular
gel
hauptverzeichnis
hochladen
image
leer ausgabe
meldung
ordner
setzten echo
unterverzeichnis
variable
verzeichnis
zugreifen
-
So ich hab ein prob mit meinem Dateiupload... ich hab mir einen Dateiupload von nem Tutoial zusammen gebastelt un den f?r mich dann mir comments ausgestattet damit ich drinn rumschauen kann aber egal...
Der normale Dateiupload funktioniert!
siehe: http://web258.server-drome.net/upload/index.php
... man kann ordner anlegen ... das hab ich auch gemacht der ordner hei?t "David" ... (zum testen)
Man kann jetzt in der index unten auf
../web/David klicken un dann kommt man in den odner david... so oben hat man wieder da formular zum hochladen... sobalt ich aber jetzt etwas hochlade kommt folgende Fehlermeldung:
Warning: copy(): SAFE MODE Restriction in effect. The script whose uid is 1234 is not allowed to access /srv/www/htdocs/web258/html/upload/web/David owned by uid 30 in /srv/www/htdocs/web258/html/upload/index.php on line 102
Warning: copy(web/David/3.jpg): failed to open stream: No such file or directory in /srv/www/htdocs/web258/html/upload/index.php on line 102
Information:
Dateityp: image/jpeg
Gr??e: 23,89 KB
Dateiname: 3.jpg
Was bedeutet das?! wo lioegt mein fehler
hier das script:
<?php /* Diese Datei muss in einem Verzeichnis sein in dem sich ein weiteres mit dem Namen "web" befindet. Das Verzeichnis "web" muss die entsprechenden Rechte haben (chmod 777). Written by Christian Fedder 08.02.2004 Hamburg Germany */ ?> <HTML> <HEAD> <TITLE>Upload</TITLE> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <SCRIPT language=JavaScript> <!-- function sicher(){ //Diese Funktion ist f?r die Formulare, aber eigentlich ?berfl?ssig. var antwort; antwort=confirm("Bist Du sicher, dass Du alle Felder wieder l?schen willst?"); if (antwort==true){ return antwort; } else{ return antwort; } } //--> </script> <style> <!-- input, textarea, select, file { border: 0px solid #000000; background: #ffffff; font: bold 11px Verdana, Arial, Helvetica, sans-serif; color: #000000; } td { font: bold 14px Verdana, Arial, Helvetica, sans-serif; font-size:10px; } a:link { text-decoration: none; font-size:10px; } a:visited { text-decoration: none; font-size:10px; } a:hover { text-decoration: none; font-size:10px; } a:active { font-size:10px; } //--> </style> </HEAD> <BODY> <br> <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 align="left" width="100%" align="center"> <td> <div align="center"> <?php // Dateiupload //------------------------------------------------------------------------------------------------------------------------------------ if ($flag==1) //Wenn das Formular abgeschickt wurde. { //Datei checken //-------------------------------------------------------- //Erst die Gr??e if($datei_size>200000) {$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)) {$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 = "web$writeurl"; //Verzeichnisname (ist immer "web") //Die Verzeichnisnamen kommen aus dem Formular weiter unten if (!file_exists($uvz)) //Wenn nicht vorhanden, dann anlegen { mkdir($uvz,0755); //mit den entsprechenden Rechten versehen } $name=$uvz."/".$datei_name; copy($datei, $name); //Kopieren der Datei auf den Server //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öß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 3 Sekunden automatisch.)<br><br>"; echo "<script language='JavaScript'> var gWindowCloseWait = 3; function zurueck() { window.location = (\"$_SERVER[PHP_SELF]?$_SERVER[QUERY_STRING]\"); } window.setTimeout(\"zurueck()\", gWindowCloseWait*1000); </script>"; } //-------------------------------------------------------------------- } //------------------------------------------------------------------------------------------------------------------------------------ // Verzeichnis anlegen //------------------------------------------------------------------------------------------------------------------------------------ if ($flag2==1) { if(!$verzname){$fehler.="Kein Verzeichnis eingegeben!<br>";} //Wurde ein Verzeichnis eingegeben? if ($verzname) { if(!eregi("^[a-zA-Z0-9]+$",$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 { mkdir("web/".$verzname); //Dann kann das Verzeichnis angelegt werden echo "<font size='4'>Verzeichnis '$verzname' wurde erstellt!</font>"; } } //------------------------------------------------------------------------------------------------------------------------------------ // Der Anfang der Seite //------------------------------------------------------------------------------------------------------------------------------------ if(!$flag) //Die Variablen $flag und $flag2 bekommen erst mit dem Abschicken des einen oder des anderen Formulares einen Wert. //Wird das Formular f?r den Dateiupload abgeschickt ist es $flag bei den Verzeichnissen ist es $flag2.. wer h?tte das gedacht. { //Nun kommt HTML mit einem ganz kleinen Teil PHP ?> </div> <form action='<? echo $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING']; ?>' method='post' enctype='multipart/form-data' name='form1' id="form1" onReset="return sicher()"> <!-- Die Formaction besteht aus der aktuellen Datei und einer Variable hinter dem "?" Hier wird ein m?gliches Unterverzeichnis angegeben in dem wir uns vielleicht gerade befinden. Denn dort soll die Datei ja auch rein. //--> <div align="center"> <input type="hidden" name="flag" id="flag" value=1> <!-- Hier kommt das versteckte Feld. Es bekommt den Wert 1 und wird in PHP dann als variable gesehen //--> <table border="0" cellpadding="0" cellspacing="0" width="400" bordercolor="#ffffff" style="border-collapse: collapse"> <tr> <td colspan="2">Datei w?hlen und abschicken<br> </td> </tr> <tr> <td width="54">Datei:</td> <td> <input name="datei" type="file" id="datei" size="30" value='<? echo $datei; ?>'> </td> </tr> <tr> <td> </td> <td><input type="submit" name="Submit" value="Hochladen"> <input type="reset" name="Reset" value="Zur?cksetzen"> </td> </tr> </table> </div> </form> <div align="center"> <?php //Nun das formular f?r die Verzeichnisse. Das erscheint nur, wenn man in dem Hauptverzeichnis ist... //Sonst k?nnte man ja unendlich viele Verzeichnisse anlegen. if ($uvz2 == "") { ?> </div> <form action='<? echo $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING']; ?>' method='post' enctype='multipart/form-data' name='form2' id="form2" onReset="return sicher()"> <div align="center"> <input type="hidden" name="flag2" id="flag2" value=1> <table border="0" cellpadding="0" width="400" cellspacing="0" bordercolor="#ffffff" style="border-collapse: collapse"> <tr> <td colspan="2">Verzeichnis anlegen</td> </tr> <tr> <td width="54">Name:</td> <td> <input name="verzname" type="text" id="verzname" size="30" value=""> </td> </tr> <tr> <td> </td> <td><input type="submit" name="Submit" value="Anlegen"> <input type="reset" name="Reset" value="Zur?cksetzen"> </td> </tr> </table> </div> </form> <div align="center"> <?php } } //Nun erst mal eine JavaScript Funktion welche noch ben?tigt wird. echo " <script language='JavaScript'> function del(url, datei) { if( confirm(\"Soll die Datei '\" + datei + \"' wirklich gel?scht werden?\") ) window.location = url; } </script>"; $writeurl = ""; //Wo sind wir? Haupt oder Unterverzeichnis? if ($uvz2) { $writeurl = "/".$uvz2; echo "<a href='$PHP_SELF'><< Home</a><br>"; } $uvz="web$writeurl"; // Das Hauptverzeichnis ist immer /web if (!file_exists($uvz)) //Wenn nicht vorhanden, dann anlegen { mkdir($uvz,0755); } 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 = ('index.php') </script>"; //Und wieder dahin zur?ck wo wir waren } } echo "<font size='3'>Aktuelles Verzeichnis:<br> <a href='$uvz' target='_blank'>/$uvz</a><p align='center'>Bisher hochgeladene Dateien:<br><hr width='400' color='#ffffff'></p></font><ol>"; //Anzeigen des Verzeichnisses und es folgt das Anzeigen der hochgeladenen Dateien $i = 1; $verzeichnis = opendir($uvz); while ($file = readdir($verzeichnis)) //Verzeichnis auslesen { if (is_file($uvz."/".$file)) { echo "<li><a href='$uvz/$file' target='_blank'>$file</a> - - "; //Datei(en) anzeigen $file = urlencode($file); echo " <a href=\"javascript:del('$PHP_SELF?sent=1&name=$file&uvz2=$uvz2','".urldecode($file)."')\"> <font color='#880000'>Löschen<hr></font></a></li>"; //M?glichkeit zum L?schen der Datei. Die JavaScriptfunktion del ist hierbei eine Abfrage ob wirklich gel?scht werden soll. //Klickt man ja, wird die URL ?bergeben mit der Variable $sent=1 Dieses wurde weiter oben ja bereits abgefragt. $i++; } } if ($i == 1) { echo "Keine Dateien vorhanden"; } closedir($verzeichnis); echo "</ol>"; if ($uvz2 == "") { //Das Gleiche f?r die Verzeichnisse nochmal if ($sent2==1) { shell_exec(rmdir($name)); echo " <script language='JavaScript'> window.location = ('index.php') </script>"; } echo " <script language='JavaScript'> function del2(url, verzeichnis) { if( confirm(\"Soll Das Verzeichnis '\" + verzeichnis + \"' wirklich gel?scht werden?\") ) window.location = url; } </script>"; echo "<font size='3'><p align='center'>Bisher angelegte Verzeichnisse:<br><hr width='400' color='#ffffff'></p></font><ol>"; //Auslesen der Verzeichnisse $dirlist=array(); $writeurl = ""; if ($uvz2) { $writeurl = "/".$uvz2; } $dir = "web$writeurl"; $dh=opendir($dir); if ($dh) { $i=1; while ($filename=readdir($dh)) { if (is_dir($dir."/".$filename) && $filename != "." && $filename != "..") { echo "<li><a href='$PHP_SELF?uvz2=$filename'>../".$dir."/".$filename."</a> - - "; echo " <a href=\"javascript:del2('$PHP_SELF?sent2=1&name=".$dir."/".$filename."','$filename')\"> <font color='#880000'>Löschen (Nur wenn leer.)<hr></font></a></li>"; //Ausgabe der Verzeichnisliste, wieder mit M?glichkeit zum L?schen. $i++; } } if ($i == 1) { echo "Keine Verzeichnisse vorhanden"; } closedir($dh); } else { //Fehlermeldung echo "Ein FEHLER ist aufgetreten und keiner wei? warum.... :-D"; } echo "</ol>"; } //------------------------------------------------------------------------------------------------------------------------------------ ?> </div></TD> <div align="center"> </TR> </TABLE> </div> </BODY> </HTML>
Das Tut is ?brigens von Christian Fedder...
Bitte um Hilfe!!! thx schon im vorraus!
MfG Matze
Beitrag ge?ndert am 13.04.2006 13:20 von ct2004 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ich habe nich wirklich Ahung davon aber ich k?nnte mir etwas vortsellen..
denn nach irgenden Klick kam das hier:
Zugriff verweigert!
Der Zugriff auf das angeforderte Verzeichnis ist nicht m?glich. Entweder ist kein Index-Dokument vorhanden oder das Verzeichnis ist zugriffsgesch?tzt.
Sofern Sie dies f?r eine Fehlfunktion des Servers halten, informieren Sie bitte den Webmaster hier?ber.
Pack in diesen ordner vll. einfach mal die Index datein noch mal...! -
du hast wahrscheinlich auf /web geklickt... das habe ich gesperrt damit ihr nicht meinen server durchforstet ^^
-
komisch... wenn ich ein ordner l?sche, sind irgentwie angeblich alle 3 angelegten weg...
-
ich hab grad alle 3 gel?scht... kein fehler im script
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage