- Home
- Categorie
- Coding e Sistemistica
- Coding
- problemi upload php
-
problemi upload php
Ciao a tutti ragazzi, ho da poco creato un sito web, as-salvatoretunno.it, e ho un problema con l'upload dei file.
Mi spiego meglio. Utilizzo uno script in php ceh mi permette di definire in quale direcotory finiranno i file caricati. Finchè il sito è stato ospitato su altervista l'upload funzionava anche se i file venivano caricati sempre nella cartella principale. Il mio sito adesso si trova in hosting su aruba e l'upload non va. Vi posto il codice e spero possiate aiutarmi grazie mille.[php]<?
/* Easy Uploader */
// set variables (SET THESE TO SUIT YOUR CIRCUMSTANCES):
// Upload directory (MUST HAVE TRAILING SLASH):
$uploaddir="/as-salvatoretunno.it/upload/";
// Your email
$youremail="[email protected]";
// Thank you page:
$thankspage="carica.php";// Set Upload thanks message for USER
$uptymessage="$realname, Grazie per aver caricato $file_name\n\n. A presto il Team Karate Valenzano (BA)";
// Set Upload thanks message for OWNER
$ownermessage="$realname [ $email ] ha caricato $file_name\n\ncontrolla i l'upload.";
// Email message on or off ? 1 = on, 0 = off
$emailmessages = "1";// start code (DO NOT CHANGE ANYTHING BELOW THIS LINE):
// Check for valid email address
$x = ereg("^0-9a-z@0-9a-z\.[a-z]{2,3}$",$email);
if($x==0)
// if no valid email address entered, display no email message
{
header("Location: errore.html");
}
else {// Check to see if valid file
if ($file == "none") {
// if no valid email address entered, display no file message
header("Location: errore.html");
}
else {
//directory to upload to
copy($file, $uploaddir.$file_name);
unlink($file);//return thank you page
Header("Location: $thankspage");
}
}
if ($emailmessages == "1") {
//mail you to let you know a new uploaded file
mail("$youremail", "Uploaded file", "$ownermessage");
//mail user to thank them
mail("$email", "Uploaded file", "$uptymessage");
exit;
}?>[/php]
-
Allora prova a configurare l'uploader in questo modo:
// Upload directory (MUST HAVE TRAILING SLASH): $uploaddir="upload/";
Inoltre, ti consiglio di inserire un controllo delle estensioni ad esempio nega l'inserzione di file php perche' potrebbero caricarti nel sito delle backdoor...
-
Grazie mille per la risposta, ci provo subito.
Per quantom riguarda il controllo sull'estesione, visto che non sono esperto di php ma sto cercando di impararlo ora, implemente un controllo sulla stringa o ci sono già funzioni che semplificano il lavoro?Grazie ancora per la disponibilità.
-
Allora ho provato a modificare lo script come mi hai detto ma continua a non effettuare l'upload.
Ho provato ad utilizzare anche il seguente script[php]<?php
// In PHP versions earlier than 4.1.0, $HTTP_POST_FILES should be used instead
// of $_FILES.$uploaddir = '/as-salvatoretunno.it/upload/';
$uploadfile = $uploaddir . basename($HTTP_POST_FILES['userfile']['name']);echo '<pre>';
if (move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "File is valid, and was successfully uploaded.\n";
} else {
echo "Possible file upload attack!\n";
}echo 'Here is some more debugging info:';
print_r($HTTP_POST_FILES);print "</pre>";
?>[/php]
Ma ancora nulla. Sto iniziando a pensare che il problema è di aruba.
-
Ciao mincio89, hai verificato che le cartelle interessate abbiano i permessi adeguati?
-
Mi hai fatto sorgere il dubbio.. l'ho appena fatto ma ha tutti i permessi sono attivi (scrittura, lettura, esegui ) quindi non penso sia questo il problema.
Grazie comunque per il suggerimento.
-
Prova a farti un echo di $uploadfile e vedi che ti tira fuori.
-
-
upload/ (echo della variabile $uploadfile)
Possible file upload attack!
upload/Here is some more debugging info:Array
(
[file] => Array
(
[name] => 6.JPG
[type] => image/jpeg
[tmp_name] => C:\PHP\upload\php1119.tmp
[error] => 0
=> 52774
))
questo è il risultato dell'upload