script upload non risponde

Ciao a tutti, ho un grosso problema..per la serie quando si ci mette la sfiga!

ho creato uno script in php per fare l'upload, download ed eliminazione dei file tutto in php senza db.

L'ho testato sul mio spazio web (linux, Apache) e funziona alla meraviglia, ora ho la necessità di riversarlo su windows server e IIS ma, come se non rispondesse!

il codice è questo:

$sizelimit = "no"; //Do you want a size limit, yes or no? 
$sizebytes = "200000"; //size limit in bytes 
$dl = "http://www.miosito.it/download"; //url where files are uploaded 
$absolute_path = "download"; //Absolute path to where files are uploaded 


switch($action) { 
default: 
echo" 
<html> 
<head> 
<title>Upload And Download</title> 
</head> 
<body> 
<a href=$PHP_SELF?action=upload>Upload File</a> 
<a href=$PHP_SELF?action=download>Download File</a> 

</body> 
</html>"; 
break; 
case "elimina": 
if (isset ($_GET['file']) && $_GET['file']) if (unlink ("./download/".$file)) echo "eliminazione riuscita!"; 
break; 
case "download": 
echo " 
<html> 
<head> 
<title>File Download</title> 
</head> 
<body><font face='' color='white' size='5'>Clicca per Scaricare</font>"; 
$list = "<table width=77% border=1 bordercolor=orange style=\"border-collapse: collapse\">"; 
$list .= ""; 
$dir = opendir($absolute_path); 


while($file = readdir($dir)) { 
if (($file != "..") and ($file != ".")) { 
$list .= "<tr><td width=90%><left><a href=$dl/$file><font face='' color='white'>$file </font></a></left></td><td width=\"10%\"><a href='".$_SERVER['PHP_SELF']."?action=elimina&file=".$file."'><font face='' color='white'><i>elimina</font></i></a></td></tr>"; 
} 
} 
$list .= "</table>"; 
echo $list; 
echo" 

</body> 
</html>"; 
break; 

case "upload": 
echo" 
<html> 

<head> 
<title>File Upload</title> 
</head> 

<body> 

<form method=POST action=$PHP_SELF?action=doupload enctype=multipart/form-data> 
<a href=$PHP_SELF?action=download> <font face='' color='white'>Download o Elimina File </font></a>
<br><br><font face='' color='white' size='5'>Seleziona il file da File da Caricare:</font><br> 
<font face='' color='white'><i>N.B. Il Nome del file NON deve contenere Spazi</i></font><br> 
<input type=file name=file size=30> 
<p><button name=submit type=submit> 
Upload 
</button> 
</form> 

</body> 

</html>"; 
break; 


//File Upload 
case "doupload": 
$dir = "dir"; 
if ($file != "") { 

if (file_exists("$absolute_path/$file_name")) { 
die("File already exists"); 
} 

if (($sizelimit == "yes") && ($file_size > $sizebytes)) { 
die("File is to big. It must be $sizebytes bytes or less."); 
} 


@copy($file, "$absolute_path/$file_name") or die("Il file non può essere copiato sul server"); 

} else { 
die("Devi selezionare un file"); 
} 
echo " 
<html> 
<head> 
<title>File Uploaded</title> 
</head> 
<body>"; 
echo $file_name." was uploaded"; 
echo "<br> 
<a href=$PHP_SELF?action=upload><font face='' color='white'>Upload un altro File</font></a> 
<a href=$PHP_SELF?action=download> <font face='' color='white'>Download File </font></a> 

</body> 
</html>"; 
break; 

} 
?>

in pratica aprendo la pagina in questione mi trovo d'avanti: upload Download, comunque clicchi resta sempre qua, anche se l'url nel browser diventa upload?action=upload.

ditemi voi se ci capite qualcosa, sto impazzendo!

inviato 10 anni fa
yusizu
modificato 10 anni fa
X 0 X

Hai verificato che $_GET['file'] contiene qualche cosa?

Ad una rapida occhiata sembra che non riceva i parametri.

Versione di php sul server windows?

risposto 10 anni fa
LonelyWolf
X 0 X

la versione di php e la 5, purtroppo come ho già detto lo script funziona alla grande sul mio spazio web ma ora su IIS no, magari devo configurarlo?

Ricordo che i provider che fanno hosting in genere affidano solo alla cartella public i permessi di scrittura 777 per ftp.

Devo fare lo stesso qui?...dovrei configurarlo io, sapreste darmi una mano?

grazie mille

risposto 10 anni fa
yusizu
X 0 X

dimenticavo forse vi può aiutare,

dopo una notte insonne sono riuscito ad ottenere qualche miglioramento.

Ora riesco a visualizzare con il browser la parte del codice relativo al form questo perchè ho creato delle variabili e le ho richiamate, ma cmq l'upload non riesco a farlo

Posto il codice modificato:

<?php

$sizelimit = "no"; //Do you want a size limit, yes or no? 
$sizebytes = "200000"; //size limit in bytes 
$dl = "http://www.miosito.it/"; //url where files are uploaded 
$absolute_path = "./download"; //Absolute path to where files are uploaded 


// HO CREATO QUESTE VARIABILI PERCHE' SEMBRAVA CHE NON LRECEPISSE IL $PHP_SELF?


$up = "upload.php?action=upload";
$down = "download.php?action=download";
$doupload ="upload.php?action=doupload";




switch($up) { 
default: 
echo" 
<html> 
<head> 
<title>Upload And Download</title> 
</head> 
<body> 
<a href=$PHP_SELF?action=upload>Upload File</a> 
<a href=$PHP_SELF?action=download>Download File</a> 

</body> 
</html>"; 
break; 
case "elimina": 
if (isset ($_GET['file']) && $_GET['file']) if (unlink ("./download/".$file)) echo "eliminazione riuscita!"; 
break; 
case "$down": 
echo " 
<html> 
<head> 
<title>File Download</title> 
</head> 
<body><font face='' color='white' size='5'>Clicca per Scaricare</font>"; 
$list = "<table width=77% border=1 bordercolor=orange style=\"border-collapse: collapse\">"; 
$list .= ""; 
$dir = opendir($absolute_path); 


while($file = readdir($dir)) { 
if (($file != "..") and ($file != ".")) { 
$list .= "<tr><td width=90%><left><a href=$dl/$file><font face='' color='white'>$file </font></a></left></td><td width=\"10%\"><a href='".$_SERVER['PHP_SELF']."?action=elimina&file=".$file."'><font face='' color='white'><i>elimina</font></i></a></td></tr>"; 
} 
} 
$list .= "</table>"; 
echo $list; 
echo" 

</body> 
</html>"; 
break; 

case "$up": 
echo" 
<html> 

<head> 
<title>File Upload</title> 
</head> 

<body> 

<form method=POST action=upload.php?action=doupload enctype=multipart/form-data> 
<a href=$PHP_SELF?action=download> <font face='' color='white'>Download o Elimina File </font></a>
<br><br><font face='' color='white' size='5'>Seleziona il file da File da Caricare:</font><br> 
<font face='' color='white'><i>N.B. Il Nome del file NON deve contenere Spazi</i></font><br> 
<input type='file' name='file' size=30> 
<input type='tetx' name='testo' size=30> 
<p><input type='submit' value='upload' name='submit'> 

</button> 
</form> 

</body> 

</html>"; 
break; 
//                                  IN PRATICA LO SCRIPT MI SI FERMA QUI!|
//File Upload 
case "$doupload": 
$dir = "dir"; 
if ($file != "") { 

if (file_exists("$absolute_path/$file_name")) { 
die("File already exists"); 
} 

if (($sizelimit == "yes") && ($file_size > $sizebytes)) { 
die("File is to big. It must be $sizebytes bytes or less."); 
} 


@copy($file, "$absolute_path/$file_name") or die("The file you are trying to upload couldn't be copied to the server"); 

} else { 
die("Must select file to upload"); 
} 
echo " 
<html> 
<head> 
<title>File Uploaded</title> 
</head> 
<body>"; 
echo $file_name." was uploaded"; 
echo "<br> 
<a href=$PHP_SELF?action=upload><font face='' color='white'>Upload un altro File</font></a> 
<a href=$PHP_SELF?action=download> <font face='' color='white'>Download File </font></a> 

</body> 
</html>"; 
break; 

} 
?>

grazie mille anticipatamente

risposto 10 anni fa
yusizu
X 0 X

è un problema di configurazione, il tuo script funziona solo se il register_global è a ON nel php.ini

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda