Contact Form con controllo campi obbligatori.
Allora, salve a tutti :mrgreen: Ho cercato ma non sono riuscito a trovare nulla, nemmeno su Google, forse ho cercato male io :???:
Comunque, voglio creare un contact form che controlla i campi obbligatori e guarda che i campi abbiano un contenuto. Trovai per quest'ultimo un po con le espressioni regolari per guardare per ersempio pche la mail avesse almeno e massimo un @ nell'indirizzo e altri campi idem.
Ora. Ho la mia pagina index.php che mostra tutto il contenuto del sito. Faccio un controllo se la pagina richiamata è Contact quindi, se è true includo un'altra pagina che è questa:
Codice PHP:
$recipient = 'Email(a)email.ext'; //Ora posto così, l'indirizzo vero è giusto
$name = $_POST['name'];
$email = $_POST['email'];
$subject = $_POST['subject'];
$mail_body = $_POST['mail_body'];
$header = "From: ". $name . " <" . $webmaster . ">\r\n";
if($name == "" || $email == "" || $subject == "" || $mail_body == "")
{
$content = 'Devi compilare tutti i campi';
}
else
{
//mail($recipient, $subject, $mail_body, $header);
/* Non voglio mandare mail per ogni prova, quindi al posto di inviare,
stampo il contenuto per vedere che tutto sia apposto */
$content = 'Recipient: ' . $recipient . '<br />';
$content .= 'Subject: ' . $subject . '<br />';
$content .= 'Email: ' . $email . '<br />';
$content .= 'Mail Body: ' . $mail_body . '<br />';
$content .= 'Header: ' . $header . '<br />';
$content .= '<h1>Richiesta Inviata con successo</h1>';
}
Questo invece è il .tpl:
Codice HTML:
<p>
<form action="./Contact" method="post">
Nome: <input name="name" type="text" /><br />
Indirizzo email: <input name="email" type="text" /><br />
Oggetto: <input name="subject" type="text" /><br />
Messaggio:
<textarea cols="20" rows="5" name="mail_body"></textarea>
<input type="submit" value="Invia" />
</form>
$content
</p>
Fino a qui tutto bene, i dati vengono passati senza problemi, e vengono stampati, però ho un problema.
Se io entro la prima volta nella pagina mi viene subito mostrato (ovviamente) che i campi dacompilare sono vuoti.
Mentre se invio mostra benissimo i dati passati trami POST.
Ora, come posso fare che appena entro non mi stampi l'errore, mentre se clicco e i campi sono vuoti, mi mostra l'errore in basso ma mi tiene in memoria i dati delle textarea? :mrgreen: