• User Attivo

    Creare script

    Salve ho trovato questi script sul forum, uno per l'upload con db ecco qui le pagine:

    OPEN.PHP
    h**p://zomer.altervista*org/open.txt

    WIEV.PHP
    h**p://zomer.altervista*org/wiev.txt

    WRITE_DB.PHP
    h**p://zomer.altervista*org/write.txt

    E fin qui tutto bene. Il secondo script che consente di creare delle miniature delle foto e ne modifica l'estensione cosi da richiamarle eccolo qui.

    CONFIG_GALLERY.PHP
    h**p://zomer.altervista*org/config_gallery.txt

    MAIN_GALLERY.PHP
    [php]
    <?php

        // Inclusione del file config_gallery.php per aquisire le variabili.
        include("config_gallery.php");
        
        // Recupero della variabile passata in get.
        // il valore "index" rappresenta l'indice della fotogallery, "view" la visualizzazione della singola foto.
        @$mode = $_GET['mode'];
        
        // Definizione delle variabili in base al valore di $mode
        if ($mode == "index" || empty($mode) || !isset($mode))
        {
            $quanto = $thumb_width;
        }
        elseif ($mode == "view")        
        {
                $quanto = $photo_width;
                $destination_path = $dir;    
        }
            
        // Aumenta la memoria utilizzabile fino a 128mb e il timeout a 4 minuti. 
        // Questo ci consente di creare le miniature senza avere un errore di timeout dal server
        ini_set("memory_limit", "128M"); 
        set_time_limit(240);    
                    
        // Se non esiste la cartella di destinazione delle miniature (vedi config_gallery.php) ne si forza la creazione
        if (!file_exists($destination_path)) 
        {
            mkdir($destination_path , 0777);
        }
        
        // Apertura della directory in cui sono contenute le foto a dimensione originale
        if ($handle = opendir($dir)) 
        {
           $i = 1; //Inizializzazione dell'indice
           // Letttura delle immagini conenute nella cartella $dir 
           while (false !== ($file = readdir($handle))) 
           {
                       list($width, $height, $type, $attr) = @getimagesize($dir.$file);        
                
                    // Se è una immagine "JPEG" continuo con la sua elaborazione 
                    // altrimenti si passa alla foto successiva
                    if($type == 2)
                    {
                           // Elaborazione delle nuove dimensioni (altezza e larghezza) in proporzione.
                           // Ciò consente di non alterare la qualità della immagine.
                           if($width > $height)
                           {  
                               $new_width = $quanto;
                               $new_height = ($quanto * $height) / $width;
                               $new_height = number_format($new_height, 0);
                           }      
                           elseif($height > $width)
                           {  
                               $new_height = $quanto;
                               $new_width = ($quanto * $width) / $height;
                               $new_width = number_format($new_width, 0);
                           }
                           elseif($height == $width)
                           {
                               $new_width = $quanto;
                               $new_height = $quanto;
                           }
                           
                           //Se si sta visualizzando una singola foto e questa è già stata ridimensionata si ignora questo passaggio, altrimenti la foto viene ridimensionata.
                           // L'"if" controlla se la foto in questione ha già le dimensioni desiderate. Se le dimensioni non sono uguali a quelle volute, verrà ridimensionata.
                           if ($mode == "view") 
                           {    
                               if ($new_height != $height && $new_width != $width) 
                               {
                                    isset($compression) ? $compression = $compression : $compression = 100; // In cso non sia settata la compressione (vedi config_gallery.php) gli si assegna il valore di default
                                    $destimg=imagecreatetruecolor($new_width,$new_height) or die("Problemi nelle creazioni dell'immagine");// Creazione Immagine
                                    $srcimg=ImageCreateFromJPEG($dir.$file) or die("Problemi nell'aprire l'immagine"); //Apertura Immagine Originale
                                    ImageCopyResampled($destimg,$srcimg,0,0,0,0,$new_width,$new_height,ImageSX($srcimg),ImageSY($srcimg)) or die("Problemi nel ridimensionamento"); //Ridimensionamento Nuova Immagine
                                    ImageJPEG($destimg, $destination_path.$file, $compression) or die("Problemi nel salvataggio"); //Salvataggio Nuova Immagine
                               }                           
                           }  
                           //Se si sta visualizzando l'indice delle foto (contenente le miniature) e queste sono già state ridimensionate si ignora questo passaggio, altrimenti la foto viene ridimensionata.
                           // l'"if" controlla se esiste già una miniatura, chiamata con lo stesso nome della foto originale, presente nella cartella di destinazione. Se non esiste viene creata la minatura
                           elseif (empty($mode))  
                           {
                               if (!file_exists($destination_path.'/'.$file)) //Se la miniatura non esiste verrà creata altrimenti si ignora questo passaggio
                                  {
                                    isset($compression) ? $compression = $compression : $compression = 100; // In cso non sia settata la compressione (vedi config_gallery.php) gli si assegna il valore di default
                                    $destimg=imagecreatetruecolor($new_width,$new_height) or die("Problemi nelle creazioni dell'immagine");// Creazione Immagine
                                    $srcimg=ImageCreateFromJPEG($dir.$file) or die("Problemi nell'aprire l'immagine"); //Apertura Immagine Originale
                                    ImageCopyResampled($destimg,$srcimg,0,0,0,0,$new_width,$new_height,ImageSX($srcimg),ImageSY($srcimg)) or die("Problemi nel ridimensionamento"); //Ridimensionamento Nuova Immagine
                                    ImageJPEG($destimg, $destination_path.$file, $compression) or die("Problemi nel salvataggio"); //Salvataggio Nuova Immagine                               
                                  }
                              }
                           
                            $image * = $file; //Creazione dell'array contenente le immagini
                               $i++; //Incremento dell'indice
                     }
                }     
               // Chiusura della cartella $dir
               closedir($handle);  
        }
        else 
        {
            // Se vi è un errore nell'aprire la cartella $dir allora viene stampato a video seguente paragrafo
            echo "<p align=\"center\">
                    Impossibile eseguire lo script. 
                    <br /> 
                    Accertati di aver impostato correttamente i parametri e
                    che la cartella (nome: \"<b>$dir</b>\" ) in cui sono contenute le foto esista
                 </p>";
        }
        
        //Se si sta visualizzando l'indice allora utilizzo la paginazione propria dell'indice
        if ($mode == "index" || empty($mode) || !isset($mode)) 
        {
            
            // Se si è scelto di utilizzare la paginazione (vedi file config_gallery.php) allora vengono stampati i links.
            // Altrimenti verranno visualizzate tutte le immagini nella stessa pagina.         
            if (empty($numperpagina)) 
            {
                $numperpagina = count($image);
            }
            isset($_GET['page']) ? $pageNum = $_GET['page'] : $pageNum = 1;
            
            $inizio = ($pageNum - 1) * $numperpagina; 
            $fine = $inizio + $numperpagina;
            
            $i = 1; //inizializzo l'indice
            foreach ($image as $id => $nome)
            {
                if ($i > $fine)
                {  
                  break;
                }
                
                if ($i >= $inizio)
                {   // stampa la miniatura
                    echo " <a href=\"?id=$i&amp;from=$pageNum&amp;mode=view\"><img src=\"".$destination_path.$nome."\" title=\"".$nome."\" border=\"0\" alt=\"foto\" /></a>";
                }
                   
                $i++; // incremento dell'indice
            }
            
            if ($fine > count($image))
            { 
                $fine = count($image);
            }        
            // Conto delle pagine
            $maxPage = ceil(count($image)/$numperpagina);
            
            
       .........ecc
    

    ?>
    [/php]Io vorrei integrare alcune funzioni del secondo script con quelle del primo, ora io non ci riesco, mi potreste aiutare? vi elenco funzioni interessate.
    :arrow:Creare miniature.
    :arrow:Poter richiamare l'immagine senza confusioni con l'esetensione (perchè da quanto ho capito nel secondo script trasforma l'estensione).
    Grazie! della vostra collaborazione 😉