Ciao a tutti e grazie in anticipo per l'attenzione.
PROBLEMA: ho letto che a partire da un form .html e creando un file .php posso far caricare agli utenti del mio sito delle foto in una cartella dedicata. Dovrebbe essere abbastanza semplice il tutto (avendo trovato online del codice già scritto che mi pare faccia al caso mio) nonostante io non abbia mai studiato il .php ma, pur andando vicino a farlo funzionare, mi servirebbe un aiuto.
PAGINA SITO: http://rcdb.altervista.org/upload.html
MIO LIVELLO CONOSCENZA HTML: discreto
MIO LIVELLO CONOSCENZA PHP: scarso
CODICE .HTML INSERITO NELLA PAGINA WEB DI ALTERVISTA:
Codice HTML:
<html> <body><form enctype="multipart/form-data" action="http://RCDB.ALTERVISTA.ORG/UPLOAD.PHP" method="post"> <input name="userimage" type="file" /> <input type="submit" value="Carica foto" name="send"></td></form></body> </html>
FILE .PHP PER TRASFERIRE LE FOTO NELLA CARTELLA "UPLOAD":
Codice PHP:
<?php
//Impostazioni varie da modificare a piacimento
$dimensione_max = '12600000'; // Dimensione massima delle foto
$upload_dir = 'http://RCDB.ALTERVISTA.ORG/UPLOAD'; // Cartella dove posizione le foto
$estensioni = array ("png", "jpg", "gif"); // Tipi di File consentiti
$noSubmitSend = 'Nessun upload eseguito!'; // Messaggio di errore quando viene richiamato direttamente lo script PHP
$wrongExt = 'Estensione file non valida!'; // Messaggio di errore per tipo di file non consentito
$tooBig = 'Il file eccede la dimensione max!'; // Messaggio di errore per file troppo grande
$thatsAll = 'Foto caricata con successo!'; // Messaggio di OK per upload corretto
$wrongUp = 'Something wrong here!'; // Messaggio di errore quando lo script non riesce ad eseguire l'upload
//***************************************
// Controllo il submit del form HTML...
if(isset($_POST['send'])) {
$file = $_FILES['userimage']['name'];
// Controllo il tipo di file...
if(in_array(array_pop(explode('.',$file)),$estensioni)) {
// Controllo la dimensione del file...
$dimensione_file = $_FILES['userimage']['size'];
if ($dimensione_file > $dimensione_max) {
print $tooBig;
} else {
doUpload($file, $upload_dir);
}
} else {
print $wrongExt;
}
} else {
print $noSubmitSend;
}
function doUpload($file, $upload_dir) {
global $thatsAll;
$nomefile = $_FILES['userimage']['tmp_name'];
$nomereale = $_FILES['userimage']['name'];
$nomereale = htmlentities(strtolower($nomereale));
if (is_uploaded_file($nomefile)) {
$newname = ($nomereale);
$ext = end(explode('.',$nomereale));
$filename = explode('.',$nomereale);
if (file_exists($upload_dir.'/'.$nomereale)) {
$filename[0] .= '.';
for ($a=0;$a<=9;$a++)
$filename[0] .= chr(rand(97,122));
$newname = $filename[0] . '.' . $ext;
}
$newname = str_replace(' ', '_', $newname);
@move_uploaded_file($nomefile,($upload_dir.'/'.$newname));
print $thatsAll;
} else print $wrongUp;
}
?>
DOMANDE:
1) Io ho creato una cartella qui: "RCDB.ALTERVISTA.ORG/UPLOAD" però, nel codice .php, dove c'è da compilare il campo "$upload_dir = " non so bene cosa devo mettere. Devo far precedere l'indirizzo da http:// o ftp:// oppure seguire queste istruzioni (vedere le ultime due righe del post di koraz)?
2) Nel codice .html laddove devo compilare il campo "action= " mettendo il file .php, devo solo scrivere il nome del file o tutto il percorso come ho fatto io?
3) E' corretto nel complesso quello che sto facendo? Vedete altre cose che non vanno?