Muuntelin tuota yhtä mureakuhassa ollutta skriptiä joka teki kansiolistauksen. Lisäsin tähän chmodaus ja poisto nappulat.
Huom! Unix sydeemeissä pitää laittaa 0 chmodin eteen esim 0666 ja windows systeemeissä ainoat toimivat chmodit taitavat olla vain 666 ja 755 (ei nollaa niihin)
<?php session_start(); if (isset($_POST['chomo'])) { @chmod($_SESSION['chmod'], $_POST['chomo']); echo "Tiedosto CHMODattu."; } function deldir($file) { if (file_exists($file)) { @chmod($file,0777); if (is_dir($file)) { $handle = opendir($file); while($filename = readdir($handle)) { if ($filename != "." && $filename != "..") { deldir($file."/".$filename); } } closedir($handle); rmdir($file); } else { unlink($file); } } } function delfile($file) { $delete = @unlink($file); if (@file_exists($file)) { $filesys = eregi_replace("/","\\",$file); $delete = @system("del $filesys"); if (@file_exists($file)) { $delete = @chmod ($file, 0775); $delete = @unlink($file); $delete = @system("del $filesys");}}} $file_path = $_SERVER['REQUEST_URI']; $file_path = str_replace("/jee.php?fdel=./","",$file_path); $file_path = str_replace("/jee.php?ddel=./","",$file_path); $file_path = str_replace("/jee.php?chmod=./","",$file_path); $file_path = str_replace("%20"," ",$file_path); if (isset($fdel)) { delfile($file_path); Echo "Tiedosto poistettu."; } if (isset($ddel)) { deldir($file_path); Echo "Kansio poistettu."; } // CHMOD if (ereg("chmod",$_SERVER['REQUEST_URI'])) { ?> <form name="chmod" method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>"> <p> <input type="text" name="chomo"> Laita chmod arvo (esim. "0755").</p> <p> <input type="submit" name="Submit" value="Lähetä"> </p> </form><br> <?php $_SESSION['chmod'] = $file_path; die(); } // END OF CHMOD $piilotiedosto = "_vti_"; if($hakemisto == "") { //ASETUKSET $hakemisto = "./"; } ?> <html> <head> <title>Tiedostonhallinta</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <style type="text/css"> <!-- body {font-family: Arial;font-size: 13px;color: #000000;text-decoration: none;background-color: #CCCCCC;} td {font-family: Arial;font-size: 13px;} a:link {font-family: Arial;font-size: 13px;color: #000000;text-decoration: underline;} a:visited {font-family: Arial;color: #000000;text-decoration: underline;} a:hover {font-family: Arial;font-size: 13px;color: #000000;text-decoration: none;} a:active {font-family: Arial;font-size: 13px;color: #000000;text-decoration: none;} --> </style> </head> <body> <table border="0" bgcolor="#000000"> <tr bgcolor="#ABABAB"> <td><center><b>Nimi</b></center></td> <td> <center> <b>Koko</b> </center></td> <td><center><b>CHMOD</b></center></td> <td><center><b>Muokattu viimeksi</b></center></td> <td><center><b>Poista</b></center></td> </tr> <?php if(is_dir($hakemisto)) { $rp = opendir($hakemisto); if($hakemisto == ".") { $hakemisto = ""; } while($tied = readdir($rp)) { if (ereg($piilotiedosto, $tied)) { continue; } $chomod = (@substr(@base_convert(@fileperms($tied), 10, 8), 3)); $size = filesize($hakemisto."".$tied); $koko = round($size / 1024,1); if (empty($chomod)) { $chomod = "n/a"; } // jos chomodii ei löydy if (empty($koko)) { $koko = "n/a"; } else { $koko = "$koko kt"; } // jos kokoo ei löydy if(is_dir($hakemisto . "" . $tied)) { echo '<tr bgcolor="CECF63">'; echo '<td><a href="'.$_SERVER['PHP_SELF'] . "?hakemisto=" . $hakemisto . "" . $tied.'/">'.$tied.'</a></td>'; echo '<td>'.$koko.'</td>'; echo '<td><a href="'.($_SERVER['SCRIPT_NAME']).'?chmod='.($hakemisto).''.($tied).'">'.$chomod.'</a></td>'; echo '<td>'.date("d.m.y H:i",filectime($hakemisto . "" . $tied)).'</td>'; echo '<td><a href="'.($_SERVER['SCRIPT_NAME']).'?ddel='.($hakemisto).''.($tied).'">Poista</a></td>'; echo '</tr>'; }else{ echo '<tr bgcolor="#FFFFFF">'; echo '<td><a href="'.$hakemisto ."".$tied.'">'.$tied.'</a></td>'; echo '<td>'.$koko.'</td>'; echo '<td><a href="'.($_SERVER['SCRIPT_NAME']).'?chmod='.($hakemisto).''.($tied).'">'.$chomod.'</a></td>'; echo '<td>'.date("d.m.y H:i",filectime($hakemisto."".$tied)).'</td>'; echo '<td><a href="'.($_SERVER['SCRIPT_NAME'].'?fdel='.($hakemisto)).''.($tied).'">Poista</a></td>'; echo '</tr>'; } } closedir($rp); }else{ print("<h2>Hakemistoa " . $hakemisto . " ei löydy</h2>"); } ?> </table> </body> </html>
Näyttää kivalta.
Miks siihen tulee kaks sellast tiedostoo joita ei oo , mulle tuli sellaset ku:
. ,ja ..
.. tarkottaa edellist kansioo ja piste varmaanki päähakemistoo
. = se hakemisto missä olet juuri nyt
.. = hakemisto rakenteessa ylempi hakemisto
kysyisin miksi pitää käyttää pistettä (.)tiedoton nimessä (onko pakollista)... jos edellistä kansioo tarkoittaa ../ niin miks ./
ihmetellen nyypiö
Tää on hyvä!
Tietäskö kukaan miten voi poistaa nimettömän teksti tiedoston ilman napin painamista?
$file_path = str_replace("/jee.php?fdel=./","",$file_path);
????
Ku pistän chmod ni ei se sitä chmodi.
Onks tää mbnetis laillinen skripta?
Minun palvelimeni estää ainakin kaikki omat tiedostonhallinnat.
Ei poista, ei toimi, jos toimii, joku voi poistaa mun sivut...
Aihe on jo aika vanha, joten et voi enää vastata siihen.