Non funziona come dici te Miki.
Ho modificato e spero migliorato il codice in questo modo:
Codice PHP:
$recipient = $webmaster_mail;
$name = $_POST['name'];
$email = $_POST['email'];
$subject = $_POST['subject'];
$mail_body = $_POST['mail_body'];
$send_button = $POST['send_button'];
$header = "From: ". $name . " <" . $webmaster . ">\r\n";
if(empty($name) || (empty($email)) || (!eregi("^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)*\.([a-zA-Z]{2,6})$", $email)) || empty($subject) || empty($mail_body))
{
$content_error = '<div class="contact_error">';
$content_error .= 'Devi compilare correttamente tutti i campi prima di inviare la mail.<ul>';
if(empty($name))
{
$content_error .= '<li>Devi inserire il tuo Nome.</li>';
}
if(empty($email))
{
$content_error .= '<li>Devi inserire una email valida per ricevere risposta.</li>';
}
elseif (!eregi("^[_a-z0-9+-]+(\.[_a-z0-9+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$", $email))
{
$content_error .= '<li>Devi inserire una email valida per ricevere risposta.</li>';
$content_error .= '<ul><li>L\'email deve essere del formato x@x.x</li></ul>';
}
if(empty($subject))
{
$content_error .= '<li>Devi inserire un Oggetto.</li>';
}
if(empty($mail_body))
{
$content_error .= '<li>Devi inserire il testo della mail.</li>';
}
$content_error .= '</ul></div>';
$back_content = '<div class="back_content"><h3>Dati precedenti</h3>';
$back_content .= '<div class="contact_option">Nome:</div> <input type="text" readonly="readonly" value="' . $name . '" />';
$back_content .= '<div class="contact_option">Email:</div> <input type="text" readonly="readonly" value="' . $email . '" />';
$back_content .= '<div class="contact_option">Oggetto:</div> <input type="text" readonly="readonly" value="' . $subject . '" />';
$back_content .= '<div class="contact_option">Messaggio:</div> <textarea>' . $mail_body . '</textarea></li>';
$back_content .= '</div>';
}
else
{
//mail($recipient, $subject, $mail_body, $header);
$content_send = '<div class="contact_send">';
$content_send .= '<h3>Email Inviata con successo, con i seguenti dati:</h3><ul>';
$content_send .= '<li>A: ' . $recipient . '</li>';
$content_send .= '<li>Oggetto: ' . $subject . '</li>';
$content_send .= '<li>Email: ' . $email . '</li>';
$content_send .= '<li>testo: ' . $mail_body . '</li>';
$content_send .= '<li>Header: ' . $header . '</li>';
$content_send .= '</ul></div>';
}
Mentre nel .tpl ho modificato il pulsante di invio in questo modo:
Codice HTML:
<input type="submit" name="send_button" value="Invia" />
E sto facendo delle prove per vedere gli eventi, infatti ho aggiunto alla fine del codice php questa condizione:
Codice PHP:
if (empty($send_button)) {
print 'ok';
}
Dato che ha value="Invia" restituisce sempre true quindi mi stampa a video ok.
Mentre se metto !empty() naturalmente non mi stampa nulla.
Come posso fare un controllo senza usare Javascript che dopo aver cliccato su Invia se ci sono degli errori mi stampi gli errori?
Potete trovare il form per contattarmi. La mail non verrà inviata ma se ttuto va a buon fine verranno stampati a video in alto i dati inseriti tramite post: Contact - Federico Biccheddu
PS: Ho aggiunto la parte Dati Precedenti proprio per evitare che se qualcuno sbaglia perda i dati, quindi li tengo memorizzati anche li sotto finchè non trovo soluzione