Ciao,
ho provato a scrivere un form per l'invio mail. Purtroppo mi ritorna sempre il messaggio di compilare tutti i campi anche se sono tutti compilati. Non riesco a capire dove sia l'errore.
Questa la pagina di process:
Codice PHP:
// richiama il file di setting
require_once('settings.php');
if (isset(
$_POST['submit'])) {

// codice che processa il form
foreach ($_POST as $key => $value){

//elimina eventuali spazi aggiuntivi
$temp trim($value);

//se è richiesta ma vuota, aggiungila all'array missing
if(!strlen($temp) && in_array($key$required)){
array_push($missing$key);
}

// se il campo è aspettato, setta la variabile associata
elseif(in_array($key$expected)){
${
$key} = htmlentities($temp);
}
}
if (empty(
$missing)) {
$contenuto_email "Nome: $name\n\n";
$contenuto_email .= "Cognome: $surname\n\n";
$contenuto_email .= "Telefono: $tel\n\n";
$contenuto_email .= "Cellulare: $cel\n\n";
$contenuto_email .= "Messaggio:\n $mess\n\n";

// limita la lunghezza a 70 caratteri per la compatibilità
$contenuto_email wordwrap($contenuto_email,70);
$contenuto_email .= "Autorizzazione: $yn\n\n";

// invia l'email
$mail_sent mail($destinatario,$subject,$contenuto_email'From: '.$mail);
$info_message '<p class="info">' $info_mail_sent '</p>';
if(
$mail_sent) {

// Se l'email viene inviata l'array missing non serve più quindi viene svuotato
unset($missing);
}
}
}

//se non sono stati compilati i campi obbligatori
if (isset($_POST['submit']) && isset($missing) && !empty($missing)) :
$info_message '<p class="error">' $error_missing_fields '</p>';
elseif (isset(
$_POST['submit']) && $_POST['submit'] && !$mail_sent) :

// se ci sono stati problemi con l'invio della mail da parte del server
$info_message '<p class="error">' $error_mail_server '</p>';
endif;

// Mostra una notifica d'errore e di conferma
if (isset($info_message) && strlen($info_message))
echo 
$info_message;

// richiama il form
require_once('form.php'); 
Questa la pagina settings:
Codice PHP:
//Messaggio di conferma invio mail
$info_mail_sent 'La richiesta di contatti &egrave; stata inviata correttamente! La ricontatteremo il prima possibile.';

// Messaggio d'errore per campi mancanti
$error_missing_fields 'Per favore, completate tutti i campi del form indicati';

// email del destinatario del form
$destinatario 'miaemail@gmail.com';

// evita che qualcuno possa manomettere
// il form inserendo campi non previsti
$expected = array('name','surname','tel','cel','mail','subject','mess','yn');

// imposta i campi obbligatori
$required = array('name','surname','mail','subject','mess','yn');

// array vuoti per i campi obbligatori mancanti
$missing = array(); 
Questa la pagina del form:
Codice PHP:
<form id="form_contact" action="<?php $_SERVER['PHP_SELF'?>" method="post">
[list=1]    [*]
<label for="name">Nome <abbr title="Campo obbligatorio">*</abbr></label>
<input type="text" name="name" tabindex="1" value="<?php if (isset($missing) && isset($name)) echo $name?>" class="<?php if (isset($missing) && in_array('name',$missing)) echo 'error'?>" />
[*]
<label for="surname">Cognome <abbr title="Campo obbligatorio">*</abbr></label>
<input type="text" name="surname" tabindex="2" value="<?php if (isset($missing) && isset($surname)) echo $surname?>" class="<?php if (isset($missing) && in_array('surname',$missing)) echo 'error'?>" />
[*]
<label for="tel">Telefono</label>
<input type="text" name="tel" tabindex="3" value="<?php if (isset($missing) && isset($tel)) echo $tel?>" class="<?php if (isset($missing) && in_array('tel',$missing)) echo 'error'?>" />
[*]
<label for="cel">Cellulare</label>
<input type="text" name="cel" tabindex="4" value="<?php if (isset($missing) && isset($cel)) echo $cel?>" class="<?php if (isset($missing) && in_array('cel',$missing)) echo 'error'?>" />
[*]
<label for="mail">Email <abbr title="Campo obbligatorio">*</abbr></label> 
<input type="text" name="mail" tabindex="5" value="<?php if (isset($missing) && isset($mail)) echo $mail?>" class="<?php if (isset($missing) && in_array('mail',$missing)) echo 'error'?>" />
[*]
<label for="subject">Oggetto richiesta <abbr title="Campo obbligatorio">*</abbr></label> 
<select name="subject" tabindex="6" class="<?php if (isset($missing) && in_array('subject',$missing)) echo 'missing'?>">
<option selected>- Scegli -</option>
<option value="<?php if (isset($missing) && isset($subject)) echo $subject?>">Richiesta 1</option>
<option value="<?php if (isset($missing) && isset($subject)) echo $subject?>">Richiesta 2</option>
<option value="<?php if (isset($missing) && isset($subject)) echo $subject?>">Richiesta 3</option>
</select>
[*]
<label for="mess">Messaggio <abbr title="Campo obbligatorio">*</abbr></label> <textarea name="mess" tabindex="7" class="<?php if (isset($missing) && in_array('mess',$missing)) echo 'error'?>"><?php if (isset($missing) && isset($mess)) echo $mess?></textarea>
[*]
<label for="priv">Informativa sulla privacy <abbr title="Campo obbligatorio">*</abbr></label> <textarea>Testo privacy</textarea>
[*]
<label id="auth" for="yn">
<input type="radio" name="yn" tabindex="8" checked="checked" value="<?php if (isset($missing) && isset($yn)) echo $yn?>" class="<?php if (isset($missing) && in_array('yn',$missing)) echo 'error'?>" /> Autorizzo  
<input type="radio" name="yn" tabindex="9" value="<?php if (isset($missing) && isset($yn)) echo $yn?>" class="<?php if (isset($missing) && in_array('yn',$missing)) echo 'error'?>" /> Non autorizzo</label>
[/list]
<p class="controls">
<input type="submit" name="submit" tabindex="10" value="Invia richiesta" />
</p>
</form>