Visualizzazione dei risultati da 1 a 6 su 6

Discussione: form complesso con php

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    154

    form complesso con php

    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

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    154
    Nessuno che può darmi una mano?

  3. #3
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    rifallo da capo
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    154
    Grazie mille...

  5. #5
    Magari prova a far fare i controlli che puoi a del codice javascript...
    Secondo me ti aiuta un po'....

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    154
    Si i controlli JavaScript li fà la pagina HTML che contiene il modulo
    ma vorrei farli anche in php in caso qualche utente abbia
    JavaScript disabilitato. Poi ormai devo riuscire a farlo per capire.
    Il problema è che lo script funziona ma non nel modo in cui
    dovrebbe. Ad esempio a volte da il messaggio per il controllo
    sbagliato. Tipo se l'utente prova a caricare un file di tipo non permesso
    dà il messaggio del controllo precedente ecc ecc. Ho provato
    più volte a cambire i blocchi degli if ma niente... C'è sempre
    qualcosa che non quadra

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.