Annuncio con Upload foto

mizar1966

Nuovo Utente
3 Nov 2013
13
2
3
Ciao a tutti, chiedo un aiuto per modificare uno script php esistente e gia' funzionante per fare l'upload di piu' foto.
Lo script attualmente funziona correttamente solo se faccio l'upload di una sola foto, e memorizza il percorso nel database MySql mentre la foto in una directory chiamata "foto".
Quello che vorrei è poter aggiungere almeno 3 o 4 foto.
Vi riporto per intero lo script che aggiunge i dati nel databse e che fa anche l'upload:

Questo è la parte del form con l'input type file
HTML:
<form action="?q=aggiungi2" method="post" enctype="multipart/form-data">
Foto <input type="hidden" name="MAX_FILE_SIZE" value="<? echo "$maxfilesize";?>" /><input name="uploadfile" type="file" />
<input type="submit" name="submit" value="Inserisci Annuncio" /></form>

Questo è l'intero script che aggiunge, non vi allego il fiel config.php ceh contiene solo le variabili:
PHP:
<?
if($nome == "" || $titolo == "" || $email == "" || $categoria == "" || $annuncio == "")
{
echo "<b>Verificare i campi obbligatori:</b> ( Nome, Titolo, Email, Categoria, Annuncio )<br /><br /><a href='javascript:javascript:history.go(-1)'>Torna Indietro</a>";
}
else{
function pwdgen () {
srand(time());
$i=($QUERY_STRING)?($QUERY_STRING):"10";
while($i--) {
while(!ereg("[abcdefghjkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVXYZ2-9]",$chr=sprintf("%c",rand(48,127))));
$pwd .= $chr;
}
return $pwd;
}
if ($_FILES['uploadfile']['name'] == "") {
$foto1 = "";
$website = ereg_replace('http://', "", $website);
$password = pwdgen();
mysql_query ("INSERT INTO tab_pagina (data, orario, nome, cognome, email, indirizzo, citta, telefono, website, titolo, categoria, annuncio, prezzo, foto1, stato, password) VALUES ('$data', '$orario', '$nome', '$cognome', '$email', '$indirizzo', '$citta', '$telefono', '$website', '$titolo', '$categoria', '$annuncio', '$prezzo', '$foto1', 'inattesa', '$password')");
mail("$email","Portale GpG Annuncio","$sitoweb\n\n$titolo\n\nATTENZIONE, Ancora il tuo Annuncio è in fase di verifica, entro 24 ore sarà on-line, quindi riceverai ancora una Mail per la conferma e con i dati per  Modificare e/o Eliminare il tuo Annuncio\n\nGrazie\n\nStaff Guardia-Giurata.it ", "FROM:Portale GpG<$emailadmin>\r\nReply-To:<$email>\r");
?>
Grazie, l'annuncio è stato inserito correttamente, ma è ancora in fase di verifica ( Senza nessuna Foto )<br/>
Riceverai una E-Mail appena possible.<br/>

<? 
}
else
{
$uploadFile = $uploadDir .  $fotostamp . $_FILES['uploadfile']['name'];
if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $uploadFile) )
{
$website = ereg_replace('http://', "", $website);
$password = pwdgen();
mysql_query ("INSERT INTO tab_pagina (data, orario, nome, cognome, email, indirizzo, citta, telefono, website, titolo, categoria, annuncio, prezzo, foto1, stato, password) VALUES ('$data', '$orario', '$nome', '$cognome', '$email', '$indirizzo', '$citta', '$telefono', '$website', '$titolo', '$categoria', '$annuncio', '$prezzo', '$uploadFile', 'inattesa', '$password')");
mail("$email","Portale GpG Annuncio","$sitoweb\n\n$titolo\n\nATTENZIONE, Ancora il tuo Annuncio è in fase di verifica, entro 24 ore sarà on-line, quindi riceverai ancora una Mail per la conferma e con i dati per  Modificare e/o Eliminare il tuo Annuncio\n\nGrazie\n\nStaff Guardia-Giurata.it ", "FROM:Portale GpG<$emailadmin>\r\nReply-To:<$email>\r");
?>
Grazie, l'annuncio è stato inserito correttamente, ma è ancora in fase di verifica. ( Con una Foto allegata )<br/>
Riceverai una E-Mail appena possible.<br/>

<? 
}
else
{
echo "<b><i>Errore</i></b><br/>";
echo "Foto troppo grande (max. 50KB)!\n\nAggiungi una foto più piccola e riprova.";
}
}
}
?>

Spero nel vostro aiuto. Grazie,
 
Ultima modifica di un moderatore:
Ciao, quello che posso fare è postarti uno script funzionante che avevo scritto tempo fa
a te vedere di adattarlo al tuo
PHP:
<?php
// limite peso in byte (1MB)
$peso_file = 1024 * 1024;
// inizializziamo il messaggio
$messaggio = "Seleziona una o piu immagini:";
// estensioni ammesse
$estensioni = array("jpg", "png", "bmp", "gif");
// percorso destinazione la cartella deve esistere e il percorso deve essere corretto
$dir = "../images";
// verifichiamo che sia stato premuto il submit
if (isset($_POST['upload']) && $_POST['upload'] == "Carica immagini") {
    // azzeriamo il messaggio
    $messaggio = "";
    // recuperiamo e uniamo le informazionei sulle immagini
    $infoimages = array_combine($_FILES["image"]['name'], $_FILES["image"]['tmp_name']);
    // cicliamo le immagini
    foreach ($infoimages as $k => $v) {
        // nome del file
        $nomefile = strtolower($k);
        // controlliamo il peso immagine
        if (filesize($v) < $peso_file) {
            // recuperiamo l'estensione
            $estensionefile = pathinfo($nomefile, PATHINFO_EXTENSION);
            // controlliamo il tipo immagine
            if (in_array(strtolower($estensionefile), $estensioni)) {
                // controllo caricamento
                if (is_uploaded_file($v)) {
                    // spostiamo il file nella cartella immagini
                    if (!move_uploaded_file($v, "$dir/$nomefile")) {
                        $messaggio .= "<br/>Impossibile spostare il file $k";
                    } else {
                        $messaggio .= "<br/>Immagine $k caricata con successo";
                    }
                } else {
                    $messaggio .= "<br/>Errore nell'upload del file $k.";
                }
            } else {
                $messaggio .= "<br/>Tipo immagine non consentito : $k";
            }
        } else {
            $messaggio .= "<br/>Immagine $k non caricata : limite peso superato";
        }
    }
}
?>
<form enctype='multipart/form-data' method='post' action='<?php echo $_SERVER['PHP_SELF'] ?>'>
    <p>Immagini consentite "jpg", "png", "bmp", "gif"</p>
    <p>
        <input name="image[]" type="file" size="40" multiple="multiple"/>
        <input name="upload" type="submit" value="Carica immagini" />
    </p>
</form>
<p><?php echo $messaggio ?></p>
dovrebbe funzionare ma ti conviene testarlo pima
 

Discussioni simili