Ciao a tutti,
sto impazzendo con questo codice, vorrei che nello stesso form faccia:

1) il salvataggio nel DB dei dati:
codice, ragionesociale, nome, cognome, email, telefono, versione, patch, argomento, quesito, punto, data, allegato

2) invia l'email con l'allegato, sempre se l'hanno allegato, non è obbligatorio (controllando l'estensione e la dimensione)

Solo che salva i dati e invia l'email anche se l'estensione non è ammessa.
Mi potete dare una mano?

Quidi seguito il codice
codice:
<?php require_once('../../../Connections/PHPMySQL.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "richiesta")) {
  $insertSQL = sprintf("INSERT INTO richieste (codice, ragionesociale, nome, cognome, email, telefono, versione, patch, argomento, quesito, punto, data, allegato) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, NOW(), '{$allegato}')",
                       GetSQLValueString($_POST['codice'], "text"),
                       GetSQLValueString($_POST['ragionesociale'], "text"),
                       GetSQLValueString($_POST['nome'], "text"),
                       GetSQLValueString($_POST['cognome'], "text"),
                       GetSQLValueString($_POST['email'], "text"),
                       GetSQLValueString($_POST['telefono'], "text"),
                       GetSQLValueString($_POST['versione'], "text"),
                       GetSQLValueString($_POST['patch'], "text"),
                       GetSQLValueString($_POST['argomento'], "text"),
                       GetSQLValueString($_POST['quesito'], "text"),
                       GetSQLValueString($_POST['punto'], "text"));

  mysql_select_db($database_PHPMySQL, $PHPMySQL);
  $Result1 = mysql_query($insertSQL, $PHPMySQL) or die(mysql_error());

//Percorso dove raccoglieremo gli allegati
$percorso = "upload/";
//Codice Licenza
$codice = $_POST['codice'];
//Ragione Sociale
$ragionesociale = $_POST['ragionesociale'];
//Nome e Cognome
$nome = $_POST['nome'];
$cognome = $_POST['cognome'];
//Email
$email = $_POST['email'];
//Telefono
$telefono = $_POST['telefono'];
//Versione Programma
$versione = $_POST['versione'];
//Patch aggiornamento
$patch = $_POST['patch'];
//Argomento
$argomento = $_POST['argomento'];
//Quesito
$quesito = $_POST['quesito'];
//Punto da verificare
$punto = $_POST['punto'];
//Upload dell'allegato
move_uploaded_file($_FILES['allegato']['tmp_name'], $percorso.$_FILES['allegato']['name']);
//Messaggio
$oggetto = "Richiesta di assistenza tecnica online";
$messaggio = "
Codice Licenza: $codice

Ragione Sociale: $ragionesociale

Nome: $nome

Cognome: $cognome

Email: $email

Telefono: $telefono

Versione Programma: $versione

Patch aggiornamento: $patch

Argomento: $argomento

Quesito: $quesito

Punto da verificare: $punto



";
//Inclusione della libreria
require_once('class.phpmailer.php');
require_once('class.smtp.php'); 
//Creiamo un oggetto PHPMailer e ne settiamo le variabili
$mail = new PHPMailer();
$mail->From = $email;
$mail->FromName = '';
$mail->AddAddress("info@xxx.it");
$mail->AddBCC("xxx@gmail.com");
$mail->SetLanguage('it','phpMailer/language/');
$mail->IsHTML(true);
$mail->Subject = $oggetto;
$mail->Body = $messaggio;
$mail->AddAttachment($percorso.$_FILES['allegato']['name']);
$dimensione_massima=15000000; //dimensione massima consentita per file in byte -> 1024 byte = 1 Kb
$dimensione_massima_Kb=$dimensione_massima/1024;
$cartella_upload="upload"; //cartella in cui eseguire l'upload (controllare permessi scrittura)
// percorso cartella relativo $cartella_upload="../upload/";
$filtrare=1; //filtrare x estensioni ammesse? 1=si 0=no
$array_estensioni_ammesse=array('.zip','.jpeg','.gif','.pdf'); //estensioni ammesse

if(!isset($_FILES['allegato']) || $_FILES['allegato']['size']==0){
	echo "Nessun file selezionato per l'upload";
}elseif($_FILES['allegato']['size']>$dimensione_massima){
	echo "Il file selezionato per l'upload supera dimensione massima di $dimensione_massima_Kb Kb";
}else{
	$nome_file=$_FILES['allegato']['name'];
	$errore="";
	if($filtrare==1){
		$estensione = strtolower(substr($nome_file, strrpos($nome_file, "."), strlen($nome_file)-strrpos($nome_file, ".")));
		if(!in_array($estensione,$array_estensioni_ammesse)){
			$errore.="Upload file non ammesso. Estensioni ammesse: ".implode(", ",$array_estensioni_ammesse)."
";
		}
	}
	if(!file_exists($cartella_upload)){
		$errore.="La cartella di destinazione non esiste</br>";
	}
	
	if($errore==""){
		if(move_uploaded_file($_FILES['allegato']['tmp_name'], $cartella_upload.$_FILES['allegato']['name'])){
			chmod($cartella_upload.$_FILES['allegato']['name'],0777);
			//permessi per poterci sovrascrivere/scaricare
			echo "Operazione eseguita con successo. Upload riuscito.";
		}
	}else{
		echo $errore;
	}
if($mail->Send())
echo '

Email inviata correttamente! Torna indietro </p>';

	if(isset($_POST) && !empty($_POST) ) {
	//esco direttamente in ridirect
	}
     exit();

}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Modulo di assistenza tecnica online</title>
</head>

<body>
<form name="richiesta" action="<?php echo $editFormAction; ?>" method="POST" enctype="multipart/form-data" id="richiesta">
  <table width="500" border="1">
  <tr>
    <td colspan="2"><strong class="titolo">Modulo per richiedere assistenza tecnica online[/b]</td>
    </tr>
  <tr>
    <td width="167"><span class="obbligatori">*</span> Codice Licenza:
</td>
    <td width="317"><input name="codice" type="number" size="20" maxlength="5" /><a href="#" class="tt">[img]../../../images/Question_Mark2.png[/img]<span class="tooltip"><span class="top">Inserire il proprio codice licenza di 5 cifre!
</span><span class="middle"></span><span class="bottom">Il codice licenza si trova o sull'etichetta, posta sulla chiave hardware, oppure in cliccare su Informazioni su  del menu "?"</span></span></a>    </td>
    </tr>
  <tr>
    <td width="167"><span class="obbligatori">*</span> Ragione Sociale:</td>
    <td width="317"><input name="ragionesociale" type="text" size="20" id="ragionesociale" /></td>
    </tr>
  <tr>
    <td width="167"><span class="obbligatori">*</span> Nome:</td>
    <td width="317"><input name="nome" type="text" size="20" /></td>
    </tr>
  <tr>
    <td width="167"><span class="obbligatori">*</span> Cognome:</td>
    <td width="317"><input name="cognome" type="text" size="20" /></td>
    </tr>
  <tr>
    <td width="167"><span class="obbligatori">*</span> Email:</td>
    <td width="317"><input name="email" type="email" size="20" /></td>
    </tr>
  <tr>
    <td width="167"><span class="obbligatori">*</span> Telefono:</td>
    <td width="317"><input name="telefono" type="number" size="20" id="telefono"/>
     [img]../../../images/Question_Mark2.png[/img]<span class="tooltip"><span class="top"></span><span class="middle">Si prega di inserire solo caratteri numerici!</span><span class="bottom"></span></span>    </td>
    </tr>
  <tr>
    <td width="167"><label><span class="obbligatori">*</span> Versione Progetto INTEGRA:</label></td>
    <td width="317"><label for="versione"></label>
      <select name="versione" size="1" id="versione">
        <option selected="selected">5.2.x</option>
        <option>5.1.x</option>
        <option>4.4.x</option>
      </select> [img]../../../images/Question_Mark2.png[/img]<span class="tooltip"><span class="top"></span><span class="middle">Indicare per quale versione di si chiede assistenza!</span><span class="bottom"></span></span>    </td>
    </tr>
  <tr>
    <td><span class="obbligatori">*</span> Patch Aggiornamento:</td>
    <td><input name="patch" type="number" size="20" id="patch" maxlength="2" />[img]../../../images/Question_Mark2.png[/img]<span class="tooltip"><span class="top"></span><span class="middle">Indicare la patch aggiornamento di cui si chiede assistenza!</span><span class="bottom"></span></span> </td>
  </tr>
  <tr>
    <td width="167"><label><span class="obbligatori">*</span> Argomento:</label></td>
    <td width="317"><select name="argomento" size="1" id="argomento">
      <option selected>Generale</option>
      <option>Altro</option>
      <option>Installazione</option>
      </select>[img]../../../images/Question_Mark2.png[/img]<span class="tooltip"><span class="top"></span><span class="middle">Selezionare l'argomento più attinente!</span><span class="bottom"></span></span></td>
  </tr>
  <tr>
    <td width="167"><label><span class="obbligatori">*</span> Quesito:</label></td>
    <td width="317"><label for="quesito"></label>
      <textarea name="quesito" id="quesito"></textarea>[img]../../../images/Question_Mark2.png[/img]<span class="tooltip"><span class="top"></span><span class="middle">Scrivere in modo dettagliato il problema!</span><span class="bottom"></span></span></td>
  </tr>
  <tr>
    <td width="167"><label><span class="obbligatori">*</span> Punto da verificare:</label></td>
    <td width="317"><textarea name="punto" id="punto"></textarea>[img]../../../images/Question_Mark2.png[/img]<span class="tooltip"><span class="top"></span><span class="middle">Indicare il punto del progetto di cui si hanno problemi! </span><span class="bottom"></span></span></td>
    </tr>
  <tr>
    <td width="167">Allegato:</td>
    <td width="317"><input name="allegato" type="file" />[img]../../../images/Question_Mark2.png[/img]<span class="tooltip"><span class="top"></span><span class="middle">Allegare file esclusivamente in formato:</span><span class="bottom">.zip</span></span></td>
  </tr>
  <tr>
    <td colspan="2" align="center"><input name="submit" type="submit" id="submit" value="Invia" />
      <input name="Ripristina" type="reset" id="invia" value="Ripristina" />
      </td>    
  </tr>
</table>
  

I campi contrassegnati con <span class="obbligatori">*</span> sono obbligatori

  Premere [img]../../../images/Question_Mark2.png[/img]per le istruzioni di compilazione del modulo</p>
  <input type="hidden" name="MM_insert" value="richiesta" />
</form>
</body>
</html>

Grazie in anticipo a tutti,
ciao
Debora