Ciao a tutti, avrei bisogno del vostro aiuto. Tra l'altr onon so nemmeno se sia la sezione giusta o no.
Devo elaborare un form con l'invio dei dati via mail. Ho elaborato due soluzioni, ma per ognuna manca una cosa che invece risolvo con l'altra soluzone. Ve le posto entrambe:
SOLUZIONE PHP
Pagina html contactform.html
Pagina send_form_email.php
Con questa soluzione il controllo dei dati mi invia ad un'altra pagina. Io invece vorrei non succedesse questo ma che ci fosse semplicemente un ealert che mi segnalasse l'errore
SOLUZIONE JAVASCRIPT
Con questa soluzione ottengo l'alert ma poi no nso come andare avanti per farmi mandare i dati via mail.
Mi potete aiutare?
Grazie mille
Devo elaborare un form con l'invio dei dati via mail. Ho elaborato due soluzioni, ma per ognuna manca una cosa che invece risolvo con l'altra soluzone. Ve le posto entrambe:
SOLUZIONE PHP
Pagina html contactform.html
HTML:
<head>
</head>
<body>
<form name="contactform" method="post" action="send_form_email.php">
<table width="450px">
<tr>
<td valign="top">
<label for="first_name">Nome*</label>
</td>
<td valign="top">
<input type="text" name="first_name" maxlength="50" size="30">
</td>
</tr>
<tr>
<td valign="top"">
<label for="last_name">Cognome*</label>
</td>
<td valign="top">
<input type="text" name="last_name" maxlength="50" size="30">
</td>
</tr>
<tr>
<td valign="top">
<label for="indirizzo">Indirizzo (indica anche VIA/PIAZZA)*</label>
</td>
<td valign="top">
<input type="text" name="indirizzo" maxlength="50" size="30">
</td>
</tr>
<tr>
<td valign="top">
<label for="numerocivico">Numero civico*</label>
</td>
<td valign="top">
<input type="text" name="numerocivico" maxlength="50" size="30">
</td>
</tr>
<tr>
<td valign="top">
<label for="citta">Città*</label>
</td>
<td valign="top">
<input type="text" name="citta" maxlength="50" size="30">
</td>
</tr>
<tr>
<td valign="top">
<label for="provincia">Provincia*</label>
</td>
<td valign="top">
<input type="text" name="provincia" maxlength="50" size="30">
</td>
</tr>
<tr>
<td valign="top">
<label for="cap">CAP*</label>
</td>
<td valign="top">
<input type="text" name="cap" maxlength="50" size="30">
</td>
</tr>
<tr>
<td valign="top">
<label for="email">Indirizzo email*</label>
</td>
<td valign="top">
<input type="text" name="email" maxlength="80" size="30">
</td>
</tr>
<tr>
<td valign="top">
<label for="telephone">Numero di telefono</label>
</td>
<td valign="top">
<input type="text" name="telephone" maxlength="30" size="30">
</td>
</tr>
<tr>
<td valign="top">
<label for="comments">Note*</label>
</td>
<td valign="top">
<textarea name="comments" maxlength="1000" cols="25" rows="6"></textarea>
</td>
</tr>
<tr>
<td valign="top" class="cflite_td"><input name="Accettazione" type="checkbox" id="Accettazione" value="checkbox" />Accetta termini e condizioni di utilizzo.</td>
</tr>
<tr>
<td colspan="2" style="text-align:center">
<input type="submit" value="Submit"></td>
</tr>
</table>
</form>
</body>
PHP:
<?php
if(isset($_POST['email'])) {
// EDIT THE 2 LINES BELOW AS REQUIRED
$email_to = "[email protected]";
$email_subject = "Messaggio da tisane";
function died($error) {
// your error code can go here
echo "Siamo spiacenti ma sono stati trovati degli errori nel form inviato. ";
echo "Questi sono i possibili errori.<br /><br />";
echo $error."<br /><br />";
echo "Per favore torna indietro e correggi gli errori.<br /><br />";
die();
}
// validation expected data exists
if(!isset($_POST['first_name']) ||
!isset($_POST['last_name']) ||
!isset($_POST['email']) ||
!isset($_POST['telephone']) ||
!isset($_POST['indirizzo']) ||
!isset($_POST['numerocivico']) ||
!isset($_POST['citta']) ||
!isset($_POST['provincia']) ||
!isset($_POST['cap']) ||
!isset($_POST['comments'])) {
died('Siamo spiacenti, ma sembra che vi sia un problema con il modulo che hai inviato.');
}
$privacy = $_POST['Accettazione']; // required
$first_name = $_POST['first_name']; // required
$last_name = $_POST['last_name']; // required
$email_from = $_POST['email']; // required
$telephone = $_POST['telephone']; // not required
$comments = $_POST['comments']; // required
$indirizzo = $_POST['indirizzo']; // required
$numerocivico = $_POST['numerocivico']; // required
$citta = $_POST['citta']; // required
$provincia = $_POST['provincia']; // required
$cap = $_POST['cap']; // required
$error_message = "";
$email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
if(!preg_match($email_exp,$email_from)) {
$error_message .= 'La mail inserita non è valida.<br />';
}
$string_exp = "/^[A-Za-z .'-]+$/";
if(!preg_match($string_exp,$first_name)) {
$error_message .= 'Il nome inserito non sembra valido.<br />';
}
if(!preg_match($string_exp,$last_name)) {
$error_message .= 'Il cognome inserito non sembra valido.<br />';
}
if(!preg_match($string_exp,$indirizzo)) {
$error_message .= 'L indirizzo inserito non sembra valido.<br />';
}
if(!preg_match($string_exp,$citta)) {
$error_message .= 'La citta inserita non sembra valido.<br />';
}
if(!preg_match($string_exp,$provincia)) {
$error_message .= 'La provincia inserita non sembra valido.<br />';
}
if(strlen($numerocivico) < 2) {
$error_message .= 'Il numero civico inserito non sembra valido.<br />';
}
if(strlen($cap) < 5) {
$error_message .= 'Il CAP inserito non sembra valido.<br />';
}
if(strlen($comments) < 2) {
$error_message .= 'La nota inserita non sembra valida.<br />';
}
if( "on" != $privacy ) {
$error_message .= 'Accetta i termini<br />';
}
if(strlen($error_message) > 0) {
died($error_message);
}
$email_message = "Dettagli modulo sottostante.\n\n";
function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}
$email_message .= "First Name: ".clean_string($first_name)."\n";
$email_message .= "Last Name: ".clean_string($last_name)."\n";
$email_message .= "Indirizzo: ".clean_string($indirizzo)."\n";
$email_message .= "Numero civico: ".clean_string($numerocivico)."\n";
$email_message .= "Città: ".clean_string($citta)."\n";
$email_message .= "CAP: ".clean_string($cap)."\n";
$email_message .= "Provincia: ".clean_string($provincia)."\n";
$email_message .= "Email: ".clean_string($email_from)."\n";
$email_message .= "Telephone: ".clean_string($telephone)."\n";
$email_message .= "Comments: ".clean_string($comments)."\n";
// create email headers
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);
?>
<!-- include your own success html here -->
Grazie per averci contattato. Ci metteremo in contatto con voi al più presto.
<?php
}
?>
SOLUZIONE JAVASCRIPT
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Form da compilare</title>
<script language="Javascript">
function ControllaForm()
{
var controllo=false;
if (document.form1.utente_nome.value == "" )
{
controllo=true;
alert("Attenzione: Hai lasciato vuoto un campo obbligatorio.\nIl form non sarà inviato");
}
if (document.form1.utente_cognome.value == "" )
{
controllo=true;
alert("Attenzione: Hai lasciato vuoto un campo obbligatorio.\nIl form non sarà inviato");
}
if (document.form1.utente_indirizzo.value == "" )
{
controllo=true;
alert("Attenzione: Hai lasciato vuoto un campo obbligatorio.\nIl form non sarà inviato");
}
if (document.form1.utente_numerocivico.value == "" )
{
controllo=true;
alert("Attenzione: Hai lasciato vuoto un campo obbligatorio.\nIl form non sarà inviato");
}
if (document.form1.utente_citta.value == "" )
{
controllo=true;
alert("Attenzione: Hai lasciato vuoto un campo obbligatorio.\nIl form non sarà inviato");
}
if (document.form1.utente_provincia.value == "" )
{
controllo=true;
alert("Attenzione: Hai lasciato vuoto un campo obbligatorio.\nIl form non sarà inviato");
}
if (document.form1.utente_cap.value == "" )
{
controllo=true;
alert("Attenzione: Hai lasciato vuoto un campo obbligatorio.\nIl form non sarà inviato");
}
if (document.form1.utente_email.value.indexOf("@") == -1 )
{
controllo=true;
alert("Attenzione: L'E-MAIL inserita non e' valida.\nIl form non sarà inviato");
}
if (document.form1.utente_numeroditelefono.value == "" )
{
controllo=true;
alert("Attenzione: Hai lasciato vuoto un campo obbligatorio.\nIl form non sarà inviato");
}
if (document.form1.utente_msg.value == "" )
{
controllo=true;
alert("Attenzione: Hai lasciato vuoto un campo obbligatorio.\nIl form non sarà inviato");
}
if (controllo){return false}else{return true}
}
// -->
</SCRIPT>
</head>
<body>
<form method="post" name="form1" action="nome_script.ext" OnSubmit="return ControllaForm(this)">
Nome*:<br>
<input type="text" name="utente_nome" size="20"><br>
Cognome*:<br>
<input type="text" name="utente_cognome" size="20"><br>
Indirizzo (indica anche VIA/PIAZZA)*:<br>
<input type="text" name="utente_indirizzo" size="20"><br>
Numero civico*:<br>
<input type="text" name="utente_numerocivico" size="20"><br>
Città*:<br>
<input type="text" name="utente_citta" size="20"><br>
Provincia*:<br>
<input type="text" name="utente_provincia" size="20"><br>
CAP*:<br>
<input type="text" name="utente_cap" size="20"><br>
E-mail*<br>
<input type="text" name="utente_email" size="20"><br>
Numero di telefono*:<br>
<input type="text" name="utente_numeroditelefono" size="20"><br>
<br>
Messaggio:<br>
<textarea name="utente_msg" cols="40" rows="4"></textarea><br>
<br>
<input type="submit" value="INVIA">
</form>
</body>
</html>
Con questa soluzione ottengo l'alert ma poi no nso come andare avanti per farmi mandare i dati via mail.
Mi potete aiutare?
Grazie mille
Ultima modifica di un moderatore: