come nn detto.
ho notato un grosso problema sull'assegnazione dei nomi delle immagini.
Codice PHP:
// form di caricamento
<form action="check_image.php" method="post" enctype="multipart/form-data">
            <table>
                <tr>
                    <td>Upload: </td>
                </tr>
                <tr>
                    <td><input type="file" name="file[]" /></td>
                </tr>
                <tr>
                    <td><input type="file" name="file[]" /></td>
                </tr>
                <tr>
                    <td>Caption: </td>   
                </tr>
                <tr>
                    <td><input type="text" name="caption" /></td>
                </tr>
                <tr>
                    <td>Category: </td>
                </tr>
                <tr>
                    <td>
                        <?php
                        
include_once 'config.php';
                        
$query "select * from category order by title asc";
                        
$result mysql_query($query) or die(mysql_error($link));
                        echo 
'<select name="category">';
                        echo 
'<option value="javascript:void(0)">Scegli la categoria</option>';
                        while (
$riga mysql_fetch_array($result)) {
                            echo 
"<option value=" $riga['title'] . ">" $riga['title'] . "</option>";
                        }
                        echo 
'</select>';
                        echo 
'

'
;
                        
?>
                    </td>
                </tr>
                <tr>
                    <td><input type="submit" name="upload" value="Upload" /></td>
                </tr>
            </table>
        </form>
Codice PHP:
<?php

include_once 'link.html';
include_once 
'config.php';
$maxSize 500//massima dimensione dei file in kilobyte
$acceptType = array(//tipi di file accettati, in questo caso solo immagini
    
'png' => 'image/png',
    
'jpe' => 'image/jpeg',
    
'jpeg' => 'image/jpeg',
    
'jpg' => 'image/jpeg',
    
'gif' => 'image/gif',
    
'bmp' => 'image/bmp',
    
'ico' => 'image/vnd.microsoft.icon',
);
$cartella "images/"//cartella dove vengono caricati i file nel server
$image_caption $_POST['caption'];
$image_category $_POST['category'];
$image_date date('Y-m-d');

function 
file_extension($filename) {
    
$path_info pathinfo($filename);
    return 
$path_info['extension'];
}

function 
singleUpload($i$cartella$maxSize$acceptType) {
    if (
$_FILES['file']['name'][$i] != "") {
        
$destinazione $cartella mysql_insert_id() . "_" $_POST['category'] . "." file_extension(basename($_FILES['file']['name'][$i]));
        if (
$_FILES['file']['size'][$i] <= $maxSize 1024) {// da levare appena il resto funziona
            
if (in_array($_FILES['file']['type'][$i], $acceptType)) {
                if (
move_uploaded_file($_FILES['file']['tmp_name'][$i], $destinazione)) {
                    return 
"File caricato con successo!";
                } else {
                    return 
"Errore nell'upload del file";
                }
            } else {
                return 
"Tipo di file non accettato!";
            }
        } else {
            return 
"Dimensione del file troppo grande, massima dimensione accettata: " $maxSize " kilobyte";
        }
    } elseif (isset(
$_POST['upload'])) {
        return 
"Nessun file inserito!";
    }
}

for (
$i 0$i count($_FILES['file']['name']); $i++) {
    echo 
"Risultato file " . ($i 1) . ": " singleUpload($i$cartella$maxSize$acceptType) . "
"
;
    
$query 'insert into images (image_caption,image_date,image_category) values ("' $image_caption '","' $image_date '","' $image_category '")';
    
$result mysql_query($query$db) or die(mysql_error($db));
}
?>
mi salva le immagini e mi scrive i dati giusti sul db.
il problema è invece nell'assegnamento del nome.
dovrebbe essere così:
id-dell'ultimo-record-inserito_nome-categoria_estensione.

invece mi da gli indici sballati:
il primo comincia con zero.
se cambio categoria ricomincia da 1, invece dovrebbe continuare nel conteggio.
insomma fa casino con gli indici e nn capisco perchè!