Logo Miki92

Donazioni

PayPal - Il sistema di pagamento online più facile e sicuro!

TOP 100

Advertising

Simulare la mod_autoindex (ovvero l'elenco dei files e delle cartelle di uno spazio web) con PHP anche dove questa mod è disabilitata
Versione per la Stampa

Scritto da Michelangelo il 28/07/2009 alle 11:40:02.

Questo breve script che segue permette di simulare la mod_autoindex di Apache che permette, per chi non lo sapesse, di elencare tutti i file e le directory di una determinata cartella se essa non possiede un file index.

Lo script è pensato e creato da Michelangelo Scotto (Miki92) per gli utenti di AlterVista.org in quanto su questo hosting la mod_autoindex è disattivata ma è possibile utilizzarla su un qualsiasi spazio web Windows o Linux anche se il concetto di compatibilità sembrerebbe migliore su Linux che su Windows.

Questo script richiede PHP 4 o superiore e 3 semplici icone (consigliate 22x22 gif o png) per personalizzare "l'indicizzazzione" dei files e delle cartelle.
Lo script creato da Miki92 è:

<?php

/* PHP's Apache Directory Simulator è uno script by Michelangelo Scotto (http://miki92.altervista.org/ - http://messenworld.altervista.org/
   - http://micscotto.altervista.org/), questo script permette di simulare le Directory Index ove è stato impedito per una modifica al file
   httpd.config di Apache. Questo script è stato pensato ed adattato per la community di AlterVista.org: progetto non ufficiale di AlterVista.
   Il progetto è pubblicato sotto una Licenza Creative Commons (http://creativecommons.org/licenses/by-nc-nd/3.0/deed.it), per aggiornamenti,
   release e news sul seguente script visitare http://miki92.altervista.org/php-apache-dir-simulator/ | Copyright © 2009 Michelangelo Scotto. */

// Inizio Configurazione Script -->

// $serversignature = $_SERVER['SERVER_SOFTWARE']." ".phpversion()." Server at ".$_SERVER['SERVER_NAME']." Port ".$_SERVER['SERVER_PORT'];   
$serversignature "Apache/2.2.8 (Win32) PHP/5.2.6 Server at localhost:8080";
$qsm "dircwd"// Query String, quello che sarà visibile nell'URL per esplorare le cartelle, default: dircwd => /?dircwd=directory_da_esporare/
$homeserver str_replace("\\","/",getcwd()."/"); // Path Assoluta di dove si trova questo script
$servericons "/scuola/icons/"// Path di dove sono collocate le icone da utilizzare
$exticons "gif"// Estensione delle icone
$nodirfil = array(basename($_SERVER['PHP_SELF']),"Thumbs.db","icons"); // Array con le directory / files da non indicizzare

// <-- Fine Configurazione Script

$cwd strtr(strip_tags(str_replace("\\","/",$_GET[$qsm])),array("../"=>"","./"=>"",$homeserver=>""," "=>""));
$titolo "PADS: PHP's Apache Directory Simulator";
$parent false;

if(empty(
$cwd)){ $cmd "/*"$titolo "Index Of /"; }else{ $cmd $cwd."/*"$titolo "Index Of /".$cwd$parent true; }
//echo "<fieldset style=\"width:39%\"><legend>DEBUG</legend>CWD: ".$cwd."<br />CMD: ".$cmd."<br />HOMESERV: ".$homeserver."<br />HOME.CWD: ".$homeserver.$cwd."<br />GET: ".$_GET[$qsm]."</fieldset>";

if(!file_exists($homeserver.$cwd)){ exit("Attenzione, directory non trovata!"); }
$expparent = @explode($cwd,$homeserver.$cwd);
$parentdirectory "?".$qsm."=".$expparent[0];

$glob glob($homeserver.ltrim($cmd,"/"));
if(!
$glob){ exit("Si è verificato un errore durante la lettura delle directory."); }

function 
File2Icon($filename){ global $servericons$exticons$expic explode(".",basename($filename)); $icona $servericons.$expic[1].".".$exticons; if(file_exists($icona)){ return $icona;
}else{ return 
$servericons."generic.".$exticons; }}
function 
PADS(){ global $homeserver$servericons$qsm$cmd$glob$cwd$nodirfil;

foreach(
$glob as $filegen){

if(
is_dir($filegen)){ $size "-"$icon $servericons."dir.gif"$alticon "DIR"$href "?".$qsm."=".$filegen; }else{ clearstatcache(); $size filesize($filegen); if($size 1000000){
$size ceil($size/1024). " KB"; }else{ $size round(($size/1024)/1024,1)." MB"; } $icon File2Icon($filegen); $alticon "ICO"$href "download.php?file=".$cwd."/".basename($filegen); }

if(!
in_array(basename($filegen),$nodirfil)){
echo 
'<tr><td valign="top"><img src="'.$icon.'" alt="['.$alticon.']" /></td><td><a href="'.$href.'">'.basename($filegen).'</a></td><td align="right">'.date("d-M-Y H:i",filemtime($filegen)).'</td>';
echo 
'<td align="right">'.$size.'</td></tr>';
}}} 
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type" />
<title>&lt;?php echo $titolo; ?&gt;</title>
<style type="text/css">
a:link, a:visited{
    color:#0000FF;
    text-decoration:none;
}
a:hover{
    color:#FF0000;
    text-decoration:underline;
}
h1{
    margin-bottom:0px;
    margin-top:0px;
}
#serversignature{
    font-family:Georgia, "Trebuchet MS", Arial, Helvetica, sans-serif;
    font-size:10pt;
}
</style>
<!-- PHP's Apache Directory Simulator by Miki92 -->
</head>

<body>
<h1><?php echo $titolo?></h1>
<table><tr><th><img src="<?php echo $servericons?>blank.gif" alt="[ICO]" /></th><th>Nome File</th><th>Ultima modifica</th><th>Dimensione</th></tr><tr><th colspan="5">
<hr /></th></tr>
<?php if($parent){ ?><tr><td valign="top"><img src="<?php echo $servericons?>back.gif" alt="[DIR]" /></td>
<td><a href="<?php echo $parentdirectory?>">Torna Indietro</a></td><td>&nbsp;</td><td align="right"> - </td></tr>
<?php PADS(); ?>
<tr><th colspan="5"><hr /></th></tr></table>
<span id="serversignature"><?php echo $serversignature?></span>
</body>

</html>


Naturalmente noi consigliamo di seguire gli aggiornamenti sul sito per eventuali versioni più aggiornate...comunque di seguito vi scrivo alcuni link utili:


Buon Divertimento!!!

Condividi



Tutti i campi sono obbligatori.
Nome:
Indirizzo e-mail1:
Commento2:
Ricarica Codice CaptchaRicopia questo codice qui sotto
Codice Captcha:

1 Il tuo indirizzo e-mail non verrà pubblicato ma occorre inserirlo.
2 Puoi inserire del codice JavaScript o PHP utilizzando i tag [php] e [/php].