Benvenuto nella nostra community, registra un account gratuito ADESSO!
Oltre 7000 persone hanno già registrato il loro account. Chiedi aiuto, conversa con aziende ed esperti del settore webhosting italiano.
Iscriviti subito! In meno di 2 minuti!




Risultati da 1 a 3 di 3
  1. #1
    HT Member
    Data Registrazione
    Aug 2010
    Messaggi
    35

    [Aiuto!!] Upload multiplo dei file con PHP

    Cia ragazzi, ho realizzato uno script in php che mi permette di selezionare un archivio ZIP contentente immagini e foto tramite lo sfoglia, di uploadarlo e scompattarlo in una cartella FTP il cui nome viene impostato direttamente dall'utente tramite il campo "Titolo". Cliccando su "Vai allo step successivo", il sistema ti fa l'elenco di tutte le fotografie caricate con tanto di nome ed anteprima. Se il tutto è corretto, basterà cliccare sul bottone "termina il caricamento" ed i nomi delle foto verranno anche scritte sul DB mysql. Ora lo script funziona perfettamente e non mi genera nessun errore di sistema od altro. Il problema è che nel database mi salva solamente il nome dell'ultima fotografia presente in lista tralasciando tutte le altre. Sto impazzendo perchè non riesco a capire qual è l'errore. Vi prego di darmi, se potete, una mano perchè sono disperato!
    Vi posto di seguito il codice PHP completo.

    Codice PHP:
    <?php
    session_start
    ();
    if(isset(
    $_SESSION['accesso']))
    {
    $nomepagina "Area di amministrazione"
    include(
    "../includes/connessione.php");
    include(
    "includes/header.php"); 
    ?>
    <body>
    <div id="grande">
     <?php include("includes/intestazione.php"); ?>
     <div id="principale">
            <!--INIZIO TABELLA-->
            <br /><h2>Gestione delle gallerie fotografiche</h2><br /><br />
            <table width="800" border="0" cellspacing="3" cellpadding="5" align="center">
              <tr>
                <td style="background:#CCC; padding:15px;">
                    <center> 
                      <input type="button" value="Torna nell'area riservata" name="torna" onClick="window.location.href='area_riservata.php';" />
                      <input type="button" value="Torna all'elenco delle foto"  name="torna2" onClick="window.location.href='gestione_foto.php';" />
                    </center>
                </td>
              </tr>
            </table>
      <br /><br />
      <?php
       $connessione
    =mysql_connect($dbhost,$dbusername,$dbpassword);
       
    mysql_select_db($dbnome,$connessione); 
       if(isset(
    $_POST['invia']))
       {
                
    // Definisco le variabili e faccio un replace per caratteri speciali
       
    $uploaddir "includes/upload/fotografie/";
       
    $uploadfile $uploaddir $_FILES['nome']['name'];
       
    $nomez=$_FILES['nome']['name'];
       
    $nomez=str_replace(".zip","",$nomez);
       
    $categoria $_POST['categoria'];
       
    $titolo $_POST['titolo'];
       
    $titolo str_replace("'""&acute;"$titolo);
       
       
    // Valido i campi
       
    if(empty($titolo) || empty($categoria)) {
       echo(
    "<script>alert('Alcuni campi obbligatori non sono stati compilati');</script>");
       }
       else{
       
       
    // Controllo che non ci siano stati errori nell'upload (codice = 0)  
       
    if (move_uploaded_file($_FILES['nome']['tmp_name'], $uploadfile)) {
         
          
    // Se tutto è andato bene carico i risultati nel database
                
    $conn "INSERT INTO album SET titolo = '$titolo', categoria = '$categoria'"
       
    mysql_query($conn) OR die('Query non valida: ' mysql_error());
       
    $id_album=mysql_insert_id();
       echo (
    '<script language="JavaScript" type="text/javascript">alert("Primo passaggio completato con successo!"); window.location="inserisci_foto.php?ricalcolo=nuovo&id_album='$id_album .'&categoria='$categoria .'&titolo='$titolo .'"</script>"');
       } else {
       echo (
    "<script language='JavaScript' type='text/javascript'>alert('Errore nel caricamento delle fotografie. Controlla che non ci siano problemi nel file ZIP.');</script>");
       }
       include(
    'librerie/pclzip.lib.php');
       
    $archive = new PclZip("$uploadfile");
       if (
    $archive->extract(PCLZIP_OPT_PATH"includes/upload/fotografie/$titolo",PCLZIP_OPT_REMOVE_PATH'') == 1) {
       
    //die("Error : ".$archive->errorInfo(true));
       
    echo ("<script language='JavaScript' type='text/javascript'>alert('Errore nella decompressione. Contattare Sito Smile');</script>");
       }
       }
       }
      
    ?>
              <center>Inserisci una nuova galleria fotografica:</center><br /><br />
              <?php if (!$_GET['ricalcolo']=="nuovo"){ ?>
              <form action="" method="post" enctype="multipart/form-data">
              <input type="hidden" name="MAX_FILE_SIZE" value="2000000"/>
              <table width="800" border="0" cellspacing="3" cellpadding="5" align="center" style="border:1px solid #666">
                  <tr>
                    <td style="border:1px solid #666;"><b>Categoria delle foto:</b></td>
                    <td style="border:1px solid #666;">
                     <select name="categoria" style="width:286px;">
          <option value="0">[Selezione una categoria]</option>
                            <?php
                            $conn 
    "SELECT * FROM categorie order by titolo";
          
    $risultato mysql_query($conn) or die('Errore nella query SQL');
          while(list(
    $id_categoria$titolo) = mysql_fetch_array($risultato))
          {
          
    ?>
                            <option value="<?php echo $id_categoria ?><?php echo $selezione ?>><?php echo $titolo ?></option>
                            <?php
          
    }
          
    ?>
                        </select>
                    </td>
                  </tr>
                  <tr>
                    <td style="background:#CCC; border:1px solid #666;"><b>File ZIP contenente le foto:</b></td>
                    <td style="background:#CCC; border:1px solid #666;"><input type="file" name="nome" size="30"></td>
                  </tr>
                  <tr>
                    <td style="background:#CCC; border:1px solid #666;"><b>Titolo cartella: (scrivere tutto attaccato)</b></td>
                    <td style="background:#CCC; border:1px solid #666;"><input type="text" name="titolo" size="30" value="<?php echo $titolo ?>"></td>
                  </tr>
                  <tr>
                    <td colspan="2" align="center" style="border:1px solid #666;"><input type="submit" name="invia" value="Vai allo step successivo"> <input type="reset" name="resetta" value="Resetta i dati"></td>
                  </tr>
                </table>
                </form>
            <br /><br />
            <?php
         
    }
       if(
    $_GET['ricalcolo']=="nuovo"){
     
       
    $conn "SELECT * FROM album WHERE id_album=" .$_GET['id_album'];
       
    $risultato mysql_query($conn) or die('Errore nella query SQL');
       while(list(
    $id_album$categoria$titolo) = mysql_fetch_array($risultato))
       {
       function 
    dir_list($directory FALSE)
       {
       
    $dirs= array();
       
    $files = array();
       if (
    $handle opendir("./" $directory))
       {
       while (
    $file readdir($handle))
       {
       if (
    is_dir("./{$directory}/{$file}"))
       {
       if (
    $file != "." $file != ".."$dirs[] = $file;
       }
       else
       {
       if (
    $file != "." $file != ".."$files[] = $file;
       }
       }
       }
       
    closedir($handle);
       
    reset($dirs);
       
    sort($dirs);
       
    reset($dirs);
       
    reset($files);
       
    sort($files);
       
    reset($files);
       if(
    $dirs == 1) {
       echo 
    "<strong>Cartelle:</strong>\n<ul>";
       while(list(
    $key$value) = each($dirs))
       {
       
    $d++;
       echo 
    "<li><a href=\"{$value}\">{$value}/</a>\n";
       }
       echo 
    "</ul>\n";
       }
       echo 
    "<form action='' method='post' enctype='multipart/form-data'>
       <strong>Immagini caricate nel server:</strong>\n<ul>"
    ;
       while(list(
    $key$value) = each($files))
       {
       
    $f++;
       echo 
    "<td><img src='{$directory}/{$value}' height='60' width='60' style='border:1px solid #000;' align='absimiddle'></td><td>&nbsp;&nbsp;<input type='text' size='60' value='{$value}' name='file_' id='file' readonly style='border:0; height: 40px; background:none;'><br></td>";
       }
       echo 
    "</ul>\n";
       if (!
    $d$d "0";
       if (!
    $f$f "0";
       
    /*echo "Sono presenti <strong>{$f}</strong> immagini per questa serata.</strong>\n";*/
       
    echo"<br><table width='86%' align='center'><tr><td style='background:#CCC; border:0' align='center'><br><input type='submit' value='Concludi il caricamento foto' name='invia2'><br><br></td></tr></table>
                </form>"
    ;
       }
       
    dir_list("includes/upload/fotografie/$titolo");
       
       
       if(isset(
    $_POST['invia2']))
       {
       
    //Definizione variabili
       
    $file $_POST['file'];
       
    $categoria $_GET["categoria"];
       
    $titolo $_GET["titolo"];
       
    $album $_GET["id_album"];
       
       
    // Se tutto è andato bene carico i risultati nel database
                
    $conn "INSERT INTO fotografie SET nome = '$file', titolo = '$titolo', categoria = '$categoria', album = '$album'"
       
    mysql_query($conn)
       OR die(
    'Query non valida: ' mysql_error());
       
    $id $_GET['id_foto'];
       echo (
    "<script language='JavaScript' type='text/javascript'>alert('Caricamento foto completato con successo!'); window.location='gestione_foto.php'</script>");   
       }
       }
       }
       
    ?>
        </div>
     <?php include("includes/footer.php"); ?>
    </div>
    </body>
    </html>
    <?php
    }else {
    ?>
     <script language="JavaScript" type="text/javascript">
            alert("Accesso non consentito. Rieffettua il login")
            window.location = "index.php"
        </script>
    <?php 

    ?>
    Grazie dell'eventuale aiuto



  2. #2
    Nuovo utente
    Data Registrazione
    Apr 2008
    Messaggi
    1

    Re: [Aiuto!!] Upload multiplo dei file con PHP

    Ora non ho molto tempo per risolverti il problema, ma ti do' qualche indicazione:

    Codice PHP:
    if(isset($_POST['invia2']))
       {
       
    //Definizione variabili
       
    $file $_POST['file'];
       
    $categoria $_GET["categoria"];
       
    $titolo $_GET["titolo"];
       
    $album $_GET["id_album"];
       
       
    // Se tutto è andato bene carico i risultati nel database
                
    $conn "INSERT INTO fotografie SET nome = '$file', titolo = '$titolo', categoria = '$categoria', album = '$album'"
       
    mysql_query($conn)
       OR die(
    'Query non valida: ' mysql_error());
       
    $id $_GET['id_foto'];
       echo (
    "<script language='JavaScript' type='text/javascript'>alert('Caricamento foto completato con successo!'); window.location='gestione_foto.php'</script>");   
       } 
    Qui tu, da quel che ho capito leggendo velocemente lo script, non hai più le informazioni che ti interessano (nonché la lista di file caricati) poiché passando al POST successivo (in maniera al quanto sporca) non li imposti da nessuna parte (si, negli input, ma non funziona esattamente così).
    La soluzione più veloce che mi viene in mente (non la più pulita!) é di saltare il 'Concludi caricamento foto' ed effettuare l'inserimento delle informazioni nel database, nello stesso ciclo che utilizzi per generare la tabella.

    Codice PHP:
    while(list($key$value) = each($files))
       {
       
    $f++;
       echo 
    "<td><img src='{$directory}/{$value}' height='60' width='60' style='border:1px solid #000;' align='absimiddle'></td><td>&nbsp;&nbsp;<input type='text' size='60' value='{$value}' name='file_' id='file' readonly style='border:0; height: 40px; background:none;'><br></td>";
       
    $conn "INSERT INTO fotografie SET nome = '$file', titolo = '$titolo', categoria = '$categoria', album = '$album'"
       
    mysql_query($conn)
       OR die(
    'Query non valida: ' mysql_error());
       } 
    Ripeto, non é la soluzione più pulita, anzi, direi quasi il contrario, ma mi pare che tu qui stia sbagliando il principio-ragionamento, quindi per salvarti in corner potrebbe andare.

  3. #3
    HT Member
    Data Registrazione
    Aug 2010
    Messaggi
    35

    Re: [Aiuto!!] Upload multiplo dei file con PHP

    Risolto, grazie pingoso!

Discussioni Simili

  1. pagina x upload file
    Di pinuzzo nel forum WebHosting - Primi passi
    Risposte: 9
    Ultimo Messaggio: 28-12-2008, 22:49
  2. Upload e condivisione di file
    Di emmedi nel forum Free WebHosting
    Risposte: 6
    Ultimo Messaggio: 11-04-2008, 20:46
  3. upload file
    Di malandrino nel forum WebHosting - Primi passi
    Risposte: 5
    Ultimo Messaggio: 24-12-2007, 14:01
  4. upload file compressi via plesk...
    Di sanderbox nel forum VPS - Virtual Private Server
    Risposte: 2
    Ultimo Messaggio: 06-11-2006, 09:47
  5. upload file compressi via plesk...
    Di sanderbox nel forum L'OTInformatico
    Risposte: 2
    Ultimo Messaggio: 06-11-2006, 09:47

Informazioni Discussione

Utenti che Stanno Visualizzando Questa Discussione

Ci sono attualmente 1 utenti che stanno visualizzando questa discussione. (0 utenti e 1 ospiti)

Tag per Questa Discussione

Segnalibri

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •