Ciao a tutti.
Sto realizzando un form in html che è un modulo di assunzione con molti campi e non riesco a gestirlo con php. Il form dovrebbe dare la possibilità, tra le altre cose, di allegare e ridimensionare un immagine e poi salvare il tutto in pdf con l'uso della classe fpdf. Il problema è che essendoci tante condizioni da verificare sono andato in palla è non riesco a verificarle tutte nel modo giusto. Scrivo il codice
codice:
require("../../includes/fpdf.php");
/********************************************************/
$nome=strip_tags($_POST['nome']);
$cognome=strip_tags($_POST['cognome']);
$luogo_nascita=strip_tags($_POST['luogo_nascita']);
$data_nascita=strip_tags($_POST['data_nascita']);
$residenza=strip_tags($_POST['residenza']);
$indirizzo=strip_tags($_POST['indirizzo']);
$cellulare=strip_tags($_POST['cellulare']);
$fisso=strip_tags($_POST['fisso']);
$email=strip_tags($_POST['email']);
$istruzione=strip_tags($_POST['istruzione']);
$stato_civile=strip_tags($_POST['stato_civile']);
$figli=strip_tags($_POST['figli']);
$patente=strip_tags($_POST['patente']);
$esperienze_lavoro=strip_tags($_POST['esperienze_lavoro']);
$cessazione_rapporti=strip_tags($_POST['cessazione_rapporti']);
$occupazione=strip_tags($_POST['cessazione_rapporti']);
$obiettivi_lavorativi=strip_tags($_POST['obiettivi_lavorativi']);
$inglese=$_POST['inglese'];
$francese=$_POST['francese'];
$tedesco=$_POST['tedesco'];
$os=$_POST['os'];
$office=$_POST['office'];
$militare=$_POST['militare'];
$esperienze_formative=strip_tags($_POST['esperienze_formative']);
$altre_informazioni=strip_tags($_POST['altre_informazioni']);
$spostarsi=$_POST['spostarsi'];
$notturni=$_POST['notturni'];
$piano_ferie=$_POST['piano_ferie'];
$festivi=$_POST['festivi'];
/********************************************************/
$allowed_types = array("image/gif","image/x-png","image/pjpeg","image/jpeg"); // i formati di immagine permessi
function chkEmail($email)  
{  
     // elimino spazi, "a capo" e altro alle estremità della stringa  
    $email = trim($email);  
  
     // se la stringa è vuota sicuramente non è una mail  
     if(!$email) {  
         return false;  
     }  
   
     // controllo che ci sia una sola @ nella stringa  
     $num_at = count(explode( '@', $email )) - 1;  
     if($num_at != 1) {  
         return false;  
     }  
   
     // controllo la presenza di ulteriori caratteri "pericolosi":  
     if(strpos($email,';') || strpos($email,',') || strpos($email,' ')) {  
         return false;  
     }  
   
     //controllo se la stringa rispetta il formato classico di una mail?  
     if(!preg_match( '/^[\w\.\-]+@\w+[\w\.\-]*?\.\w{1,4}$/', $email)) {  
         return false;  
     }  
   
     return true;  
 }  
/**************************************************************************/
//Controllo se sono stati inseriti i dati anagrafici
if ( empty($nome) || empty($cognome) || empty($luogo_nascita) || empty($residenza) || empty($indirizzo) || empty($cellulare) ) {
	echo "<h1>Attenzione: i dati anagrafici inseriti non sono completi.</h1><p class=\"main_paragraph\"><a href=\"#\" onclick=\"history.back();return false\">Torna indietro e riprova</a></p>";
//... e gli altri dati obbligatori
	}elseif ( empty($militare) || empty($spostarsi) || empty($notturni) || empty($piano_ferie) || empty($festivi) ) {
	echo "<h1>Attenzione: alcuni dati obbligatori non sono stati inseriti.</h1><p class=\"main_paragraph\"><a href=\"#\" onclick=\"history.back();return false\">Torna indietro e riprova</a></p>";
}else{	
//imposto io le informazioni facoltative nel caso siano state lasciate vuote	
	if ( empty($fisso) || empty($figli) || empty($patente) || empty($esperienze_lavoro) || empty($cessazione_rapporti) || empty($occupazione) || empty($obiettivi_lavorativi) || empty($esperienze_formative) 
	|| empty($altre_informazioni) ) {
	$fisso="Non indicato";
	$figli="Non indicato";
	$patente="Non indicato";
	$esperienze_lavoro="Non indicato";
	$cessazione_rapporti="Non indicato";
	$occupazione="Non indicato";
	$obiettivi_lavorativi="Non indicato";
	$esperienze_formative="Non indicato";
	$altre_informazioni="Non indicato";
	};
	//controllo se l'email è stata inserita e se è stata inserita controllo che sia valida
	if (empty($email)) {
		$email="Non indicato";
	}else{
		if (!chkEmail($email)) {
			echo "<h1>Attenzione: inserisci un indirizzo email corretto.</h1><p class=\"main_paragraph\"><a href=\"#\" onclick=\"history.back();return false\">Torna indietro e riprova</a></p>";
		exit;
		};
	};
	//controllo se la foto è stata inserita è se è stata inserita controllo che rispetti le regole
	if (empty($_FILES['foto'])) {
		$foto="Non indicata";
	}else{
		if ($_FILES['foto']['size'] > 100000) { //controllo che il file non superi le dimensioni permesse
			echo "<h1>Le dimensioni del file superano il limite consentito</h1><p class=\"main_paragraph\"><a href=\"#\" onclick=\"history.back();return false\">Torna indietro e riprova</a></p>";
			exit;
		};	
		if (!in_array($_FILES['foto']['type'],$allowed_types)) { //controllo che il tipo di file caricato sia permesso
			$tipo_files=implode(",", $allowed_types);
			echo "<h1>Il tipo di file non &eacute; amesso</h1><h2>Sono ammessi solo files del tipo $tipo_files</h2>
			<p class=\"main_paragraph\"><a href=\"#\" onclick=\"history.back();return false\">Torna indietro e riprova</a></p>";
			exit;
		};
		$upload_dir = $_SERVER["DOCUMENT_ROOT"] . "/moduli_assunzione/foto"; // Directory dove salvare i files Uploadati ( chmod 777, percorso assoluto)
		$new_name = ""; // Eventuale nuovo nome da dare al file uploadato
		$file_name = ($new_name) ? $new_name : $_FILES["foto"]["name"];// Se $new_name è vuota, il nome sarà lo stesso del file uploadato
		is_uploaded_file($_FILES["foto"]["tmp_name"]);
		move_uploaded_file($_FILES["foto"]["tmp_name"], "$upload_dir/$file_name");
		list($width, $height, $type, $attr) = getimagesize("$upload_dir/$file_name");
		// Creo la versione 120*90 dell'immagine (thumbnail)
		$thumb = imagecreatetruecolor(415, 533);
		$source = imagecreatefromstring(file_get_contents("$upload_dir/$file_name"));
		$fototessera=imagecopyresized($thumb, $source, 0, 0, 0, 0, 415, 533, $width, $height);
		};
/*echo "$fisso";	*/
$pdf=new FPDF('P','mm','A4');
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Hello World!');
$pdf->Cell(60,10,"$fisso",0,1,'C');
$pdf->Output('anteprima', 'I');
};
Il codice non è completo ma non ha importanza. non riesco a fargli verificare tutte le condizioni in modo giusto. Ci sono dei campi che sono obbligatori e lo script si blocca è da in messaggio se non vengono riempiti. Altri che sono facoltativi e li imposto io se non lo fà l'utente, altri ancora che non ha importanza se vengano riempiti o no, come il campo della foto. Qua mi stà dando problemi: anche se non è necessario che la foto venga caricata, lo script mi avvisa cmq che il tipo di foto nn è supportato. Ho fatto tante di quelle prove e mi ha dato tanti di quegli errori che ormai ho il cervello in pappa...
Sono bloccato su sto script da 2 ore, spero che ci sia qualcuno che può darmi una mano e scusate la lunghezza del post