Ciao a tutti
ho creato questo script di upload, che non funziona... Non trovo l'errore e non stampa niente neanche con error_reporting a E_ALL!!
Vi posto il codice::
Codice PHP:
Ciao a tutti
ho creato questo script di upload, che non funziona... Non trovo l'errore e non stampa niente neanche con error_reporting a E_ALL!!
Vi posto il codice::
Codice PHP:
Ehi qualcuno ha cancellato tutte le risposte e il codice!! Mi avevano già risposto..
Vabè avranno avuto problemi con il db!
Ora lo ri-posto
E' molto strano! Mi da semplicemente pagina bianca senza caricare niente!!Codice PHP:
<?php
$file = $_FILES['img'];
$cons = array(
"image/jpeg",
"image/jpg",
"image/png",
"image/dib",
"image/bmp",
"image/jfif",
"image/jpe",
"image/tif",
"image/tiff",
"image/pjpeg"
);
if(!in_array($file['type'], $cons)){
define("DIR", "/membri/riupload/_altervista_ht/");
if (!in_array($file['type'],$cons))
{ // apro if principale
echo "Attenzione: hai selezionato un file che è in un formato non supportato! Torna indietro!";
} // chiudo if principale
else // apro else principale
{
if (isset($_POST['action']) and $_POST['action'] == 'upload') // inizio if 1
{
if (isset($file)) // inizio if 2
{
if ($file['error'] == UPLOAD_ERR_OK and is_uploaded_file($file['tmp_name'])) // inizio if 3
{
$cas = rand(0, 9);
$cas.= rand(0, 9);
$cas.= rand(0, 9);
$cas.= rand(0, 9);
$cas.= rand(0, 9);
$data = date("d-m-y");
$nome = basename($file['name']);
$nome = str_replace('.gif', '_'.$cas.'_'.$data.'.gif', $nome);
$nome = str_replace('.png', '_'.$cas.'_'.$data.'.png', $nome);
$nome = str_replace('.jpg', '_'.$cas.'_'.$data.'.jpg', $nome);
$nome = str_replace('.jpeg', '_'.$cas.'_'.$data.'.jpg', $nome);
$nome = str_replace('.pjpeg', '_'.$cas.'_'.$data.'.jpg', $nome);
$nome = str_replace('.bmp', '_'.$cas.'_'.$data.'.bmp', $nome);
$nome = str_replace('.dib', '_'.$cas.'_'.$data.'.bmp', $nome);
$nome = str_replace('.jpe', '_'.$cas.'_'.$data.'.jpg', $nome);
$nome = str_replace('.jfif', '_'.$cas.'_'.$data.'.jpg', $nome);
$nome = str_replace('.tiff', '_'.$cas.'_'.$data.'.tif', $nome);
$nome = str_replace('.tif', '_'.$cas.'_'.$data.'.tif', $nome);
$nome_e_dir = DIR.$nome;
$temp = basename($file['tmp_name']);
move_uploaded_file($temp, $nome_e_dir);
$ok = "La tua immagine è stata caricata al seguente indirizzo: http://tiupload.altervista.org/_altervista_ht/".$nome;
echo $ok;
} // chiudo if 3
else // apro else 3
{
echo "Errore interno: riprova...";
} // chiudo else 3
} // chiudo if 2
else // apro else 2
{
echo "Errore: non hai inserito nessun file...";
} // chiudo else 2
} // chiudo if 1
else // apro else 1
{
header("Location:form.htm");
} // chiudo else 1
} // chiudo else principale
}
?>
comincia con il mettere questo a inizio file:
Poi, secondo me il controllo è meglio se lo fai sull'estensione, visto che il mimetype è riempito dal browser, e potrebbe essere diverso.codice:error_reporting(E_ALL); // report all errors ini_set("display_errors", 1);
La sicurezza che il file che ti arriva sia realmente un'immagine non ce l'hai nè con l'estensione nè con il tuo metodo, però con l'estensione fai + in fretta.
Per il resto senza errori è difficile dire cosa succeda.
Prova a vedere se con il codice che ti ho dato vedi + informazioni, altrimenti stampa a video gli array $_POST e $_FILES e cerca di capire dove si blocca.
ciao
Quoto il mio primo messaggio:
"...neanche con error_reporting a E_ALL..."
A parte il controllo dell'estensione, non capisco perchè non carica i file!
Ho dato alla cartella _altervista_ht i permessi 777!
e io riquoto il mio:
Hai messo anche l'ini_set? se display_errors è settato a zero puoi mettere anche una preghiera tibetana in error_reporting che non succede nulla :-)error_reporting(E_ALL); // report all errors
ini_set("display_errors", 1);
Se l'hai già messo come ti ho detto prima, prova a stampare con print_r l'array $_FILES e l'array $_POST, vedi cosa arriva alla pagina php.
ciao
Se error_reporting ti dico che è a E_ALL vuol dire che avrò anche display_errors a 1 se ci ragioni un po'!!
Comunque dal MIME Type si può fare benissimo il controllo..
Oramai tutti i browser mettono gli stessi MIME Type
gif è image/gif
png è image/png
jpeg (jpg, jfif) è image/pjpeg o image/jpeg
eccetera..
Comunque se non vuoi aiutarmi chiedo a qualcun'altro!
Ciao!!
Che cosa restituisce questo codice?
Codice PHP:
<pre><?php
define("DIR", "/membri/riupload/_altervista_ht/");
var_dump(is_dir(DIR));
var_dump(is_writable(DIR));
?></pre>
ma sei fuori di testa?Se error_reporting ti dico che è a E_ALL vuol dire che avrò anche display_errors a 1 se ci ragioni un po'!!
1. Una cosa non implica per forza l'altra.
2. Fin'ora ti aiutato, senza nessun tono polemico, quindi vedi di abbassare le orecchie.
Se ti sto aiutando non posso dare per scontato che tu abbia messo l'error reporting a 1, altrimenti faccio delle supposizioni sul possibile errore dando per scontato qualcosa che non hai fatto.
Se ci ragioni un po' forse non sei cosi esperto come vuoi fare intendere non dovresti avere bisogno di aiuto per un compito cosi banale, comunque per quanto mi riguarda puoi anche arrangiarti.
Beh in effetti è vero, scusa..Originariamente inviato da gianiaz
ma sei fuori di testa?
1. Una cosa non implica per forza l'altra.
2. Fin'ora ti aiutato, senza nessun tono polemico, quindi vedi di abbassare le orecchie.
Se ti sto aiutando non posso dare per scontato che tu abbia messo l'error reporting a 1, altrimenti faccio delle supposizioni sul possibile errore dando per scontato qualcosa che non hai fatto.
Se ci ragioni un po' forse non sei cosi esperto come vuoi fare intendere non dovresti avere bisogno di aiuto per un compito cosi banale, comunque per quanto mi riguarda puoi anche arrangiarti.
Il problema è che ero già arrabbiato di mio..
Ancora scusa