PHP: Script per upload di files
Da Wizard linux team wiki.
Semplice script che consente l'upload di file (qualsiasi tipo) all'interno di un sito. Ha la possibilità di definire gruppo di utenti (amministratori o utenti semplici); Gli amministratori hanno la possibilità di aggiungere nuovi files e di scaricare i files. Gli utenti hanno solo la possibilità di scaricare i files.
Contents |
Pag1.php
<?php
if(!isset($PHP_AUTH_USER))
{
Header("WWW-Authenticate: Basic realm=\"Accesso riservato\"");
Header("HTTP/1.0 401 Unauthorized");
echo "Accesso non autorizzato\n";
exit;
}
else
{
$utente_passwd = array (
"a15b9bbfd786da9bcca10a671944904f" => "d74c3ea40cb8b5b9e568de73665aabad",
//amminis:passwd_amminis
"eae1540b9d2ca73d19cc2d61266f46ee" => "08d3dc1eee1cf181448b31a8f7e76ea9",
//amminis2:passwd_amminis2
"b88d6b04a9dc38860301f6bdd81e5ccd" => "a09e34332ac69804ce18b88607bae88b",
//utente1:passwd_utente1
"f7a88d7c3168218b580aa68ab3030491" => "635c1f8cc4ad14e2ef648e85d9177918"
//utente2:passwd_utente2
);
$PHP_AUTH_USER = MD5($PHP_AUTH_USER);
$PHP_AUTH_PW = MD5($PHP_AUTH_PW);
if (($PHP_AUTH_USER == "") || ($PHP_AUTH_PW == ""))
{
Header("HTTP/1.0 401 Unauthorized");
echo "Accesso non autorizzato. Username/Password errati<br>Controlla le lettere
maiuscole/minuscole";
exit;
}
else if (strcmp($utente_passwd[$PHP_AUTH_USER],$PHP_AUTH_PW) == 0)
{
if (($PHP_AUTH_USER == "a15b9bbfd786da9bcca10a671944904f") || ($PHP_AUTH_USER ==
"eae1540b9d2ca73d19cc2d61266f46ee"))
{
echo "<html>
<head>
<title>Area Riservata (Beta version by HaVoC)</title>
</head>
<body>
";
echo "<center><img src=\"img/admin.jpg\">
<br>
<br>";
/*CODICE PER L'UPLOAD DI DOCUMENTI*/
if (!$func) {
$func = "one";
}
switch ($func) {
case one:
echo "<form method=\"post\" enctype=\"multipart/form-data\" action=\"pag1.php\">";
echo "<input type=\"file\" name=\"uploadedfile\" size=\"30\">";
echo "<input type=\"hidden\" name=\"max_file_size\" value=\"100000\">";
echo "<input type=\"hidden\" name=\"func\" value=\"two\">";
echo "<INPUT TYPE=\"IMAGE\"
SRC=\"img/upload_button.jpg\"
ALT=\"upload\">";
break;
case two:
if($uploadedfile<>"none") {
if(!copy($uploadedfile,"files/$uploadedfile_name")) {
print("Spiacente, upload file fallito<br>");
print("Il file potrebbe non esistere o essere troppo grande.");
print("Tornare indietro e provare di nuovo");
}
else {
print("File caricato con successo!<br>");
echo"<A HREF=\"pag1.php\">Torna indietro</A>";
$file = "logs_upload.htm";
$descriptor = fopen ($file, "a");
$info ='L\'utente: <b>'.$REMOTE_ADDR.'</b> ha uplodato il file: <b>'.$uploadedfile_name.'</b>
utilizzando: <b>'.$HTTP_USER_AGENT.'</b><br><br>';
fwrite($descriptor,$info);
fclose($descriptor);
}
}
break;
}
/*FINE CODICE UPLOAD DI DOCUMENTI*/
echo "<br><a href=\"logs_upload.htm\">Visualizza cronologia upload</a><br><br><br></center>";
}
/*AGGIORNO LA PAGINA OGNI 10 SECONDI PER CONTROLLARE LA PRESENZA DI NUOVI FILES*/
//echo"<meta http-equiv=\"refresh\" content=\"10;url=pag1.php\">";
/*CODICE PER LA VISUALIZZAZIONE DEI FILE UPLOADATI*/
echo "<center><img src=\"img/user.jpg\">
<br>
<br>";
$absolute_path = "/membri/xssmanx/loginscript/files/";
$dl = "http://xssmanx.altervista.org/loginscript/files";
$list = "<table width=\"700\" border=\"1\">
<tr>
<td width=\"28\"> </td>
<td width=\"377\"><center><img src=\"img/info.jpg\" width=\"377\" height=\"25\" /></center></td>
<td width=\"28\"> </td>
</tr>";
$dir = opendir($absolute_path);
while($file = readdir($dir)) {
if (($file != "..") and ($file != ".")) {
$list .= "<tr>
<td><center><img src=\"img/tb_pt.gif\"></center></td>
<td><a href='$dl/$file'>$file</a></td>
<td> </td>
</tr>";
}
}
$list .= "</table>";
echo $list;
echo"<br><br>";
/*FINE CODICE VISUALIZZAZIONE FILES UPLODATI*/
echo"<br><br><br><br><br><br><br><br>";
include('credit.php');
echo"</body>
</center>
</html>";
exit;
}
else
{
Header("HTTP/1.0 401 Unauthorized");
echo "Accesso non autorizzato. Username/Password errati<br>Controlla le lettere
maiuscole/minuscole";
exit;
}
}
?>
Modifiche a Pag1.php
NB = Prima di uplodare lo script è necessario apportare alcune modifiche al codice: 1) Modificare $absolute_path (riga 85) inserendo il percorso interno al server alla cartella di upload (in questo caso /files/); 2) Modificare $dl (riga 86) inserendo il percorso alla cartella di upload in formato URL; Per aggiungere nuovi utenti basta inserire nuovi campi allinterno dell'array $utente_passwd (criptando in md5 utilizzando siti come http://www.miraclesalad.com/webtools/md5.php). Logicamente i commenti a fianco potete eliminarli perché la funzione MD5 serve proprio per non mostrare in chiaro le credenziali d'accesso. Per definire invece un nuovo amministratore basta aggiungere l'hash dellutente allinterno della if (riga 27 di pag1.php);
Credit.php
<? echo "Powered by <a href=\"mailto:havoc1988@gmail.com\">HaVoC of ihteam.net</a>"; ?>
Questo invece sarebbe meglio non modificarlo =P
logs_upload.htm
<!-- Prima riga -->
File nel quale andranno a finire tutti i file caricati specificando IP, nome file caricato e user agent. Il codice che permette questo si trova da riga 65 a riga 69 di pag1.php Lo script utilizza anche delle immagini per rendere il tutto un po più user friendly.
'Njoy HaVoC

