Ich würde gerne die Rechte verteilen wollen.
Der Upload funktioniert sonst wunderbar, aber leider nur als Admin.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 | <?php defined ( 'main' ) or die ( 'no direct access' ); defined ( 'admin' ) or die ( 'only admin access' ); $design = new design ( 'Admins Area' , 'Admins Area' , 2); $design ->header(); include_once ( 'include/includes/func/upload.php' ); // Verzeichnisse aus dem Uploadordner auflisten (für Formular) function listdirs( $dir ) { $files = array_slice (scandir( $dir ), 2); $dirs = "<option value=\"keins\">keins</option>\n" ; foreach ( $files as $filenr => $file ) { if ( $_POST [ 'folder' ] == $file ) $sel = 'selected="selected"' ; else $sel = '' ; if ( is_dir ( $dir . '/' . $file )) $dirs .= "<option value=\"$file\" $sel>$file</option>\n" ; } return $dirs ; } // Verzeichnisinhalt auflisten function showdir( $uploadordner ) { global $sizelimituser ; if (! is_dir ( $uploadordner )) { echo 'Uploadverzeichnis existiert nicht.' ; return false; } elseif (! is_writeable ( $uploadordner )) { echo 'Uploadverzeichnis ist schreibgeschützt.' ; return false; } $dsize = 0; $pfiles = 0; $bool = true; $files = scandir( $uploadordner ); while ( $bool AND substr (current( $files ), 0, 1) == '.' ) { $pfiles ++; $bool = next( $files ); } $files = array_slice ( $files , $pfiles ); if (! $upload_htaccess AND ( $i = array_search ( 'index.html' , $files )) !== false) { unset( $files [ $i ]); } $dirvis = (dir_access( $uploadordner ) == true ? 1 : 0); echo "<b>Dateien in dem Verzeichnis <a href=\"$server$uploadordner\" target=\"_blank\">" . short_string( $server . $uploadordner , 70) . "</a>:</b><br /> Verzeichnis ist " . ($dirvis == 1 ? '' : 'nicht') . " sichtbar für alle.<br /> <script type=\"text/javascript\"> function senddel(id) { document.files.delid.value = id; document.files.submit(); } </script> <form name=\"files\" action=\"admin.php?upload\" method=\"post\"> <input type=\"hidden\" name=\"folder\" value=\"{ $_POST [ 'folder' ]}\"/> <input type=\"hidden\" name=\"delid\" value=\"-1\"/> <table width=\"100%\"> <tr class =\ "Chead\" align=\"center\"><th>Dateien</th><th width=\"90\">Größe</th><th width=\"50\">Löschen</th></tr>" ; foreach ( $files as $filenr => $file ) { if ( is_dir ( $uploadordner . $file )) { $fsize = dirsize( $uploadordner . $file . '/' ); } else { $fsize = filesize ( $uploadordner . $file ); } $dsize += $fsize ; echo "<tr class=\"Cnorm\"><td><a href=\"$server$uploadordner$file\" target=\"_blank\">" . short_string( $file , 43) . "</a></td><td align=\"right\">" . ( is_dir ( $uploadordner . $file ) ? 'DIR - ' : ' ' ). round ( $fsize / 1024, 1) . " K</td><td align=\"center\"><a href=\"javascript:senddel(" . ( $filenr + $pfiles ) . ");\"><img src=\"include/images/icons/del.gif\" alt=\"Löschen\" border=\"0\" \></a>" ; } if ( $sizelimituser > 1) { $percentage = intval ( $dsize / $sizelimituser * 100); $percentage2 = 100- $percentage ; $rest = round ( ( $sizelimituser - $dsize ) / 1024, 1) . " K" ; } $dsize = round ( $dsize / 1024, 1) . " K" ; echo "<tr class=\"Cdark\"><td>" .( $sizelimituser == 0 ? '' : "<table width=\"100%\" height=\"10\" title=\"Zu $percentage% ausgelastet, noch $rest verfügbar\"><tr><td bgcolor=\"red\" width=\"$percentage%\"></td><td width=\"$percentage2%\"></td></tr></table>" ). "</td><td align=\"right\">$dsize</td><td></td></tr>" ; echo "</table></form>" ; } // Optionen in die Datenbank eintragen if (isset( $_POST [ 'sub_opt' ])) { if ( is_dir ( $_POST [ 'uplfldr' ]) AND is_numeric ( $_POST [ 'uplsize' ])) db_query( "UPDATE `prefix_allg` SET v1 = '" . escape( $_POST ['uplfldr '], ' string ') . "' , v2 = '" . escape($_POST[' uplsize '], ' integer ') . "' , v3 = '" . escape($_POST[' dirsize '], ' integer ') . "' , t1 = '" . escape($_POST[' extensions '], ' string ') . "' , v4 = '" . ($_POST[' extlimit_on '] == ' on ' ? 1 : 0) . "' , v5 = '" . escape($_POST[' recht '], ' integer ') . "' , v6 = '" . escape($_POST[' htaccess '], ' integer ') . "' WHERE k = 'uploadmodul' "); else echo "Änderungen konnten nicht vorgenommen werden, überprüfe deine Angaben!<br />" ; } // Optionen aus der Datenbank auslesen $opt = db_fetch_assoc(db_query( "SELECT v1,v2,v3,v4,v5,v6,t1 FROM `prefix_allg` WHERE k = 'uploadmodul' LIMIT 1" )); $ordner = $opt [ 'v1' ] . '/' ; $upload_htaccess = $opt [ 'v6' ]; $sizelimituser = $opt [ 'v3' ]; // Ordner für die Anzeige wählen if (isset( $_POST [ 'folder' ]) AND $_POST [ 'folder' ] != 'keins' ) $ordner = $opt [ 'v1' ] . '/' . $_POST [ 'folder' ] . '/' ; // Datei/Verzeichnis löschen if (isset( $_POST [ 'delid' ]) AND $_POST [ 'delid' ] != '-1' ) { $files = scandir( $ordner ); $filenr = $_POST [ 'delid' ]; $err = error_reporting (0); if ( is_dir ( $ordner . $files [ $filenr ])) { $del = rmdir ( $ordner . $files [ $filenr ]); if ( $del == true) echo "Verzeichnis <b>{$files[$filenr]}</b> erfolgreich gelöscht<br />" ; else echo "Verzeichnis <b>{$files[$_POST['delid']]}</b> konnte nicht gelöscht werden, Verzeichnisse müssen leer sein damit man sie löschen kann.<br />" ; } else { $del = unlink( $ordner . $files [ $filenr ]); if ( $del == true) echo "Datei <b>{$files[$filenr]}</b> erfolgreich gelöscht<br />" ; else echo "Datei <b>{$files[$_POST['delid']]}</b> konnte nicht gelöscht werden<br />" ; } error_reporting ( $err ); } ?> <h2>Upload Modul</h2> <table width= "100%" border= "0" cellspacing= "0" > <tr> <td valign= "top" > <form name= "folder" action= "admin.php?upload" method= "post" > Ordner von: <select name= "folder" onchange= "this.form.submit()" > <?php echo listdirs( $opt [ 'v1' ]); ?> </select> </form><br /> <?php if ( $ordner == $opt [ 'v1' ]. '/' ) { $sizelimituser = 0; } showdir( $ordner ); ?> </td> <td valign= "top" > <form name= "config" method= "post" action= "admin.php?upload" ><table border= "0" cellspacing= "0" > <tr class = "Chead" ><th colspan= "2" >Optionen</th></tr> <tr class = "Cnorm" ><td>Uploadorder:</td><td><input name= "uplfldr" type= "text" value= "<? echo $opt['v1']?>" size= "45" /></td></tr> <tr class = "Cnorm" ><td>Uploadgröße (Bytes):</td><td><input name= "uplsize" type= "text" value= "<? echo $opt['v2']?>" size= "16" /></td></tr> <tr class = "Cnorm" ><td>Ordnergröße (Bytes):</td><td><input name= "dirsize" type= "text" value= "<? echo $opt['v3']?>" size= "16" /></td></tr> <tr class = "Cnorm" ><td>Dateierweiterungen:</td><td rowspan= "2" ><textarea name= "extensions" cols= "45" rows= "2" ><? echo $opt [ 't1' ]?></textarea></td></tr> <tr class = "Cnorm" ><td><input name= "extlimit_on" type= "checkbox" <? echo ( $opt [ 'v4' ] == 1 ? 'checked="checked"' : ' ' )?>> Beschränken</td> <tr class = "Cnorm" ><td>Recht:</td><td colspan= "2" ><select name= "recht" > <?php echo dblistee( $opt [ 'v5' ], 'SELECT * FROM `prefix_grundrechte` WHERE id < 0 ORDER BY id DESC' ); ?> </select></td></tr> <tr class = "Cnorm" ><td>Zugriffsrecht auf Ordner</td><td><input type= "radio" name= "htaccess" value= "1" <?php echo ( $opt [ 'v6' ] == 1 ? 'checked="checked"' : '' ) ?>/> htaccess / <input type= "radio" name= "htaccess" value= "0" <?php echo ( $opt [ 'v6' ] == 0 ? 'checked="checked"' : '' ) ?> /> index.html </td></tr> <tr class = "Cnorm" ><td><input type= "submit" value= "Übernehmen" name= "sub_opt" /></td><td></td></tr> </table></form> <br /> <b>Anmerkung:</b> <ul> <li><font color= "red" >Du solltest die Dateierweiterungen immer beschränken, da man sonst php Dateien hochladen könnte, mit denen man z.B. die Datenbank auslesen oder leeren könnte usw.</font></li> <li>Ordner (relativ zu index.php) muss existieren und die nötigen Rechte ( CHMOD 777) haben</li> <li>Erweiterungen (Groß-&Kleinschreibung ist dabei egal) durch Komma getrennt und ohne zusätzliche Leerzeichen eintragen z.B.:txt,jpg,gif</li> <li>Dateigröße in Bytes, wenn 0 keine Beschränkung von diesem Script -> Gefahr von Fehlern, da Webserver die Größe meist beschränkt</li> <li>Ordnergröße (Limit aller Dateien im Ordner) in Bytes, wenn 0 keine Beschränkung von diesem Script</li> <li>.htaccess ist empfohlen, wird allerdings nicht auf allen Servern unterstützt, deswegen gibt es noch die Variante ohne, wo eine index.html angelegt wird</li> </ul> </td> </tr></table> <?php $design ->footer(); ?> |
Hat wer ne Lösung?
betroffene Homepage: www.boses-ladder.de/