Salve, sto testando un form realizzato con swiftmailer a questa pagina:
http://www.demaniomarittimo.com/offerta-lavoro/offerta-lavoro.php
Il form è a fondo pagina e con esso tutti i messaggi di success sent e di validation.
Ogni volta che si clicca su invia la pagina subisce una sorta di refresh e la pagina viene riportata al top facendo sparire sia il form che i vari messaggi di cui sopra.
Posto il file send.php di seguito:
	
	
	
		
Immagino che il problema sia nell'header alle ultime righe che reindirizza alla pagina ma al momento non sono riuscita a risolvere il problema.
Qualche aiuto su come risolvere facendo si che la schermata resti sul form ad ogni submit?
Ringrazio in anticipo, Michela.
				
			http://www.demaniomarittimo.com/offerta-lavoro/offerta-lavoro.php
Il form è a fondo pagina e con esso tutti i messaggi di success sent e di validation.
Ogni volta che si clicca su invia la pagina subisce una sorta di refresh e la pagina viene riportata al top facendo sparire sia il form che i vari messaggi di cui sopra.
Posto il file send.php di seguito:
		PHP:
	
	<?php
if(isset($_POST['invia'])){
   $error = FALSE;
   $nome = isset($_POST['nome']) ? trim( (string) $_POST['nome']) : '';
   $cognome = isset($_POST['cognome']) ? trim( (string) $_POST['cognome']) : '';
   $oggetto = isset($_POST['oggetto']) ? trim( (string) $_POST['oggetto']) : '';
   $email = isset($_POST['email']) ? trim( (string) $_POST['email']) : '';
   $messaggio = isset($_POST['messaggio']) ? trim( (string) $_POST['messaggio']) : '';
   if(empty($nome)) {
       $error = TRUE;
       $msg = 'Il campo nome è obbligatorio!';
       }
   else if(empty($cognome)){
       $error = TRUE;
       $msg = 'Il campo cognome è obbligatorio';
       }
   else if(empty($oggetto)){
       $error = TRUE;
       $msg = 'Il campo oggetto è obbligatorio';
       }
   else if(!preg_match('/^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$/', $email)){
       $error = TRUE;
       $msg = 'Il campo email è obbligatorio. Verifica di averlo digitato correttamente.';
       }
   else if(empty($messaggio)){
       $error = TRUE;
       $msg = 'Il campo messaggio è obbligatorio';
       }
   else{
       require_once('lib/swift_required.php');
       require_once('config.php');
      
       if( (PORT_SMTP != FALSE) AND ( SECUTITY_SMTP != FALSE ) ){
           $transport = Swift_SmtpTransport::newInstance(HOST_SMTP, PORT_SMTP, SECUTITY_SMTP);
           }
       else if( PORT_SMTP != FALSE ){
           $transport = Swift_SmtpTransport::newInstance(HOST_SMTP, PORT_SMTP);
           }
       else{
           $transport = Swift_SmtpTransport::newInstance(HOST_SMTP);
           }
          
       $transport->setUsername(EMAIL_SMTP);
       $transport->setPassword(PASSWORD_SMTP);
 
       $mailer = Swift_Mailer::newInstance($transport);
      
       $message = Swift_Message::newInstance($oggetto);
       $message->setFrom(array($email => $nome));
       $message->setTo(array(EMAIL_DESTINATARIO));
       $message->setBody(
       '<html>' .
       '<head></head>' .
       '<body>' .
       'Nome:' . $nome . '<br />'.
       'Cognome:' . $cognome . '<br />'.
       'Messaggio:' . $messaggio . '<br />'.
       '</body>' .
       '</html>',
       'text/html'
       );
      
       $message->setReturnPath(EMAIL_SMTP);
       if( (isset($_FILES["allegato"])) AND ($_FILES["allegato"]['name'] != '') ){
           $tipologie_consentite = array('jpg', 'jpeg', 'png', 'gif', 'doc', 'docx', 'pdf', 'xls', 'zip', 'rar');
           $path_info = pathinfo($_FILES["allegato"]['name']);
           if(!is_uploaded_file($_FILES["allegato"]['tmp_name'])){               
               $error = TRUE;
               $msg = 'Si è verificato un errore durante il caricamento del file!';
               }
           else if(!in_array(strtolower($path_info['extension']), $tipologie_consentite)){
               $error = TRUE;
               $msg = 'Il file non è fra i tipi consentiti!';
               }
           else if($_FILES["allegato"]['size'] > MAX_DIM_FILE){
               $error = TRUE;
               $msg = 'Il file allegato eccede la dimensione massima consentita!';
               }
           else{         
               $attachment = Swift_Attachment::fromPath($_FILES["allegato"]['tmp_name']);
               $attachment->setFilename($_FILES["allegato"]['name']);
               $message->attach($attachment);
               }
           }
       }
   if($error === FALSE){
       $result = $mailer->send($message);
       if($result>0){
           $msg = "Email inviata. Presto sarai ricontattato.";
           }
       else{
           $msg = "Problemi nell'invio della email!";
           }
       }
   $get_var = urlencode($msg);
   header('location: offerta-lavoro.php?msg=' . $get_var);
   exit;
  }
?>
	Qualche aiuto su come risolvere facendo si che la schermata resti sul form ad ogni submit?
Ringrazio in anticipo, Michela.
			
				Ultima modifica di un moderatore: