<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento senza titolo</title>
</head>
<body>
<?php
require_once "config.php";//immagino che questi siano i dai di connessione comunque questo dovrebbe bastare
# Si e il file dove ci sono i dati del db con relativa connessione.
if(isset($_POST['go'])){
$nome = addslashes(trim($_POST['nome']));
$cl = addslashes(trim($_POST['cliente']));
$da_caricare=$_FILES['nome_file']['name'];
$desc = $_POST['desc'];//se esiste la trattiamo dopo # ok
$date = date("d/m/Y");
$ok_ko="";//metto a vuoto una stringa per gli errori
if(!is_array($da_caricare)){//verifico che sia stato caricato almeno un file
$ok_ko.="devi caricare almeno un file<br>";
}else{//ci sono dei file quindi verifico che siano permessi
$tipi_ammessi=array('jpg','gif','png','txt','pdf');// e/o altri
$ammessi="";
foreach($_FILES['nome_file']['name'] as $valore){
$estenzione=pathinfo($valore, PATHINFO_EXTENSION);
if(!in_array($estenzione,$tipi_ammessi)){
$ammessi.=" $valore ";
}
}
if($ammessi !=""){//ci sono dei file non consentiti
$ok_ko.="non è consentito caricare $ammessi<br>";
}
}
/*per accedere a questa parte uno deve essere loggato?
se si perche non prelevi il nome direttamente da log e lo inserisci in automatico
senza farlo riscrivere?
analogo per clente
*/
# Il caricamento verrà effettuato si tramite un pagina loggata, ma sara solo l'amministratore
# del sito o lo staff a caricare contenuti.
# Gli utenti normali potranno solo scaricare i file gia presenti sul sito,
# Nella loro area privata.
if($nome==""){//verifico che sia stato scritto il nome (vedi comm sopra)
$ok_ko.="non hai scritto il nome<br>";
}
if($cl==""){//verifico che sia stato selezionato il cliente
$ok_ko.="non hai selezionato il cliente<br>";
}
if($ok_ko !=""){//ci sono stati degli errori
//quindi avvisi e torni al form ripulito
echo $ok_ko;
echo "<meta http-equiv='Refresh' content='4; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
//puoi aumentare o diminuire il tempo di attesa es. ...content='3;... #ok
}else{//non ci sono errori
//per prima carico i file
$cartella="doc/";//se devi caricare in una cartella specifica
foreach($_FILES['nome_file']['name'] as $chiave => $valore){
//uso sempre nel nome del file caricato la chiave per mantenere la corrispondensa con l'eventuale descrizione
$file_da_caricare[$chiave]=$cartella.$_FILES['nome_file']['name'][$chiave];
$file_temporaneo=$_FILES['nome_file']['tmp_name'][$chiave];
if(move_uploaded_file($file_temporaneo,$file_da_caricare[$chiave])){
echo "$file_da_caricare file caricato <br>";
}
}
//e riempio la tabella
require_once "config.php";//immagino che questi siano i dai di connessione (prova a commentarolo) # esatto dati del db e relativa connessione
foreach($file_da_caricare as $ch => $val){
$sql = "INSERT INTO doc (id, nome, descizione, data, file) VALUES ('$cl','$nome','".$desc[$ch]."','$date','$val')";
$res = mysql_query($sql);
}
/*
e qui tutto l'ambaradan per l'invio dell'email
*/
}
}
?>
<form name="upload" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data">
<table width="100%" border="0" cellspacing="0" cellpadding="2">
<tr>
<td width="2%"> </td>
<td width="16%">nome</td>
<td width="26%"><input name="nome" type="text"></td>
<td width="10%"> </td>
<td width="8%"> </td>
<td width="38%"> </td>
</tr>
<tr>
<td> </td>
<td>selezione cliente</td>
<td><select name="cliente">
<?php
$ric = mysql_query("SELECT id, nome, cognome FROM clienti ");
while ($row = mysql_fetch_assoc($ric)) {
echo "<option value=" . $row['id'] . ">" . $row['nome']. " " . $row['cognome'] . "</option>";//???? # estraggo dal db tutti i clienti con nome, cognome e id
# in mo che quando devono caricare un file, gli basta selezionare i cliene dal menu a tendina, che si popolerà in automatico, quando
# verrà registrato un nuovo cliente.
}
?>
</select>
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td colspan="6">devi caricare almeno un file</td>
</tr>
<tr>
<td> </td>
<td> </td>
<td>descrizione del file</td>
<td>seleziona file</td>
<td> </td>
<td> </td>
</tr>
<?php
$max_file=3;//in queso modo se vuoi aumentare o diminuire lo fai con facilità
for($k=1;$k <=$max_file; $k++){
# qui c'è qualche errore, e ancora non sono riuscito a capire.... Hai voluto utilizzare stringa Heredoc per un motivo particolare, o solo per comodità?
echo '
<tr>
<td>$k</td>
<td> </td>
<td><input name="desc[$k]" type="text"></td>
<td><input name="nome_file[$k]" type="file" id="nome_file" size="40"></td>
<td> </td>
<td> </td>
</tr>';
}
?>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td><input type="submit" name="go" value="Carica"></td>
</tr>
</table>
</form>
</body>
</html>