• User Attivo

    Problemi galleria

    Ciao a tutti, ho alcuni problemi con la creazione di una galleria di immagini, lo script funziona bene tranne per la creazione delle sotto cartelle che proprio non riesco a far funzionare e nella rinominazione delle foto, attualmente la foto viene rinominata nello stesso nome originale della foto ma, io invece vorrei rinominare le foto nello stesso numero progressivo dell'id della tabella del database, vi posto tutto il codice :

    <?php
    if(isset($_POST['Submit'])){
    // faccio un po' di inclusioni...
    require 'config.php';
    require 'function.php';

    // crea cartella
    $path_img = "../foto servizzi/".$id_path["$id"];//ricava l'id per nominare la cartella
    mkdir($path_img);//crea la cartella id numero1,2,3,...
    mkdir($path_img."/hotel");//crea la sottocartella foto
    mkdir($path_img."/thumb");//crea la sottocartella thumb
    stampa_msg("Operazione eseguita con successo");//controllo esito

    // Creo una array con i formati accettati
    $tipi_consentiti = array("image/gif","image/jpeg","image/png");

    // verifico che il formato del file sia tra quelli accettati
    if (in_array($_FILES['imagefile']['type'], $tipi_consentiti)){
    // copio il file nella cartella delle immagini
    copy ($_FILES['imagefile']['tmp_name'], $path_img . $_FILES['imagefile']['name']);

    // recupero i dati dal form
    $idhotel = addslashes($_POST['idhotel']);
    $descrizione = addslashes($_POST['descrizione']);
    $nome = addslashes($_FILES['imagefile']['name']);
    $path = $path_img . stripslashes($nome);
    $tipo = addslashes($_FILES['imagefile']['type']);
    
    // creo la miniatura
    makeThumb($path_img,$path,$nome,$tipo);
    
    // aggiorno il database
    $query = "INSERT INTO images (idhotel,descrizione,nome,tipo) VALUES('$idhotel','$descrizione','$nome','$tipo')";
    $res = mysql_query($query) or die (mysql_error());
    mysql_close($connessione);
    
    
    echo '<script language=javascript>document.location.href="javascript: history.go(-1)"</script>';
    

    }else{
    // stampo un messaggio di errore nel caso in cui il file sia di un formato non consentito
    echo "<div align=center>Impossibile eseguire l'upload - DEVI INSERIRE TUTTI I CAMPI.</div>";

    }

    }
    $url = htmlspecialchars($_SERVER['HTTP_REFERER']);
    echo ("<BR><BR><center><a href='$url'>TORNA INDIETRO</a></center>");
    ?>

    Grazie


  • User Attivo

    ragazzi ho fatto alcune modifiche nel codice, adesso nel database la foto viene numerata in base all'id progressivo della tabella ma la foto rimane sempre con lo stesso nome, vi posto il nuovo codice:
    [PHP]
    <?php

    require 'config.php';
    require 'function.php';

    // crea cartella
    $path_img = "../foto hotel/";

    // Creo una array con i formati accettati
    $tipi_consentiti = array("image/gif","image/jpeg","image/png");

    // verifico che il formato del file sia tra quelli accettati
    if (in_array($_FILES['imagefile']['type'], $tipi_consentiti)){
    // copio il file nella cartella delle immagini
    copy ($_FILES['imagefile']['tmp_name'], $path_img . $_FILES['imagefile']['name']);

    // recupero i dati dal form appena caricata
    $idhotel = addslashes($_POST['idhotel']);
    $descrizione = addslashes($_POST['descrizione']);
    $nome = addslashes($_FILES['imagefile']['name']);
    $path = $path_img . stripslashes($nome);
    $tipo = addslashes($_FILES['imagefile']['type']);
    			
    // creo la miniatura
    makeThumb($path_img,$path,$nome,$tipo);
    
    // aggiorno il database
    $query = "INSERT INTO images (idhotel,descrizione,nome,tipo) VALUES('$idhotel','$descrizione','$nome','$tipo')";
    $res = mysql_query($query,$connessione) or die (mysql_error($connessione));
    
    //recupera l'id dall'immagine
    $last_id = mysql_insert_id();
    
    // salva immagine con id associato della tabella
    $image_id = $last_id;
    imagejpeg($tipo, $path_img . '/' . $image_id  . '.jpg');
    imagedestroy($nome);
    
    $query2 = "UPDATE images  SET nome = '" . $image_id. "' WHERE id = '" . $last_id ."' ";
    $res = mysql_query($query2,$connessione) or die (mysql_error($connessione));
    
    list($path_img,$path,$nome,$tipo) = getimagesize($path_img . '/' . $image_id .
        '.jpg');
    
    if ($_POST['Submit']) {
    // make sure the requested image is valid
    if (isset($_POST['id']) && ctype_digit($_POST['id']) &&
        file_exists($path_img . '/' . $_POST['id'] . '.jpg')) {
        $tipo = imagecreatefromjpeg($path_img . '/' . $_POST['id'] . '.jpg');
    	}
    }
    echo '<script language=javascript>document.location.href="javascript: history.go(-1)"</script>';
    

    }else{
    // stampo un messaggio di errore nel caso in cui il file sia di un formato non consentito
    echo "<div align=center>Impossibile eseguire l'upload - DEVI INSERIRE TUTTI I CAMPI.</div>";

    }

    $url = htmlspecialchars($_SERVER['HTTP_REFERER']);
    echo ("<BR><BR><center><a href='$url'>TORNA INDIETRO</a></center>");
    ?>
    [/PHP]
    Qualcuno riesce a capire dove sto sbagliando?
    Grazie in anticipo


  • User Attivo

    allora ragazzi finalmete ho risolto il problema della rinominazione delle foto, adesso le foto prendono il nome dell'id della tabella, adesso preo' non riesco a cancellarle questo e' il codice:
    [PHP]<?php
    include 'config.php';

    if(!isset($_GET['id']))
    {
    exit('Nella pagina '.$_SERVER['PHP_SELF'].' non arrivato nessun id');
    }

    $query = "SELECT * FROM images WHERE id='".intval($_GET['id'])."' LIMIT 1";
    $risultato = mysql_query($query,$connessione) or die('Query select fallifa per il seguente motivo: '.mysql_error($connessione));
    if (mysql_num_rows($risultato)===1)
    {

    $row = mysql_fetch_array($risultato);

    $foto_da_cancellare = "../foto hotel/". stripslashes($row['nome']);          
    if(file_exists($foto_da_cancellare))      
        {      
        unlink($foto_da_cancellare) or die ('problemi nella cancellazione della foto');      
        }  
    else     
        {      
        exit('il file '.$foto_da_cancellare.' non esiste!');      
        }    
    mysql_query("DELETE FROM images WHERE id='".intval($_GET['id'])."' LIMIT 1") or die('Query delete fallifa per il seguente motivo: '.mysql_error()); 
    }               
    

    echo"
    <BR><BR>
    <center>
    <span class=gensmall>Cancellazione avvenuta con successo.</span>
    </center>";
    $url = htmlspecialchars($_SERVER['HTTP_REFERER']);
    echo ("<BR><BR><center><a href='$url'>TORNA INDIETRO</a></center>");
    ?> [/PHP]

    le foto adesso vengono rinominate cosi': 1.jpg e via dicendo, il problema e che la query riporta questo problema:
    il file ../foto hotel/1 non esiste!
    qualche idea ragazzi'
    Grazie