Elaborazione form

delfina

Nuovo Utente
18 Mag 2011
28
0
0
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
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>
Pagina send_form_email.php
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
}
?>
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
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:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
basta che tu metta nell'action il nome della pagina a cui vuoi andare, o se vuoi operare tutto nella stessa pagina
PHP:
<form method="post" name="form1" action="<?php echo $_SERVER['PHP_SELF']; ?>" OnSubmit="return ControllaForm(this)">
comunque un consiglio: i controlli con js (lato client) sono scenografici, ma facilmente bypassabili.
devi comunque fare i controlli anche con php (lato server)
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Quotando l'ultima frase di borgo, aggiungo che se devi implementare un controllo sul client tanto vale ti rifai all'ajax, cosi lo scrivi una sola volta in php e hai le risposte da entrambe le parti, inoltre fai attenzione a cambiare i nomi anche nell'ultimo form sono differenti da quelli che ricavi
 

delfina

Nuovo Utente
18 Mag 2011
28
0
0
ciao
basta che tu metta nell'action il nome della pagina a cui vuoi andare, o se vuoi operare tutto nella stessa pagina
PHP:
<form method="post" name="form1" action="<?php echo $_SERVER['PHP_SELF']; ?>" OnSubmit="return ControllaForm(this)">
comunque un consiglio: i controlli con js (lato client) sono scenografici, ma facilmente bypassabili.
devi comunque fare i controlli anche con php (lato server)

Grazie mille per la risposta... ma non capisco dove devo scrivere il reindirizzamento... fa conto che voglio indirizzarli a www.google.it dove lo devo scrivere?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
se per reindirizzamento intendi dove riinviare l'utente dopo che l'email è statainviata o ha fatto errori, puoi fare una cosa del genere
PHP:
<?php
if(isset($_POST['invia'])){
	//qui fai il controllo dei vari campi del form
	//e verifichi che ci siono o no errori
	if($errori =="SI"){
		//visualizzi i messaggi di errore
	}else{
		//invii l'email
	}
	//e qui reindirizzi
	echo "<meta http-equiv='Refresh' content='3; URL=nome_pagina.php'>";
	// se nella stessa
	//echo "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
	//contente='3, sono i secondi di attesa prima di essere reindirizzati
	//in modo che l'utente possa leggere i messaggi
}
?>

importante: metti il name al submit
<input type="submit" name="invia" value="INVIA">
 

delfina

Nuovo Utente
18 Mag 2011
28
0
0
ciao
se per reindirizzamento intendi dove riinviare l'utente dopo che l'email è statainviata o ha fatto errori, puoi fare una cosa del genere
PHP:
<?php
if(isset($_POST['invia'])){
	//qui fai il controllo dei vari campi del form
	//e verifichi che ci siono o no errori
	if($errori =="SI"){
		//visualizzi i messaggi di errore
	}else{
		//invii l'email
	}
	//e qui reindirizzi
	echo "<meta http-equiv='Refresh' content='3; URL=nome_pagina.php'>";
	// se nella stessa
	//echo "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
	//contente='3, sono i secondi di attesa prima di essere reindirizzati
	//in modo che l'utente possa leggere i messaggi
}
?>

importante: metti il name al submit
<input type="submit" name="invia" value="INVIA">

Ciao e grazie mille per la risposta ma non ho capito se stiamo parlando della soluzione con javascript con php... :(
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
io sto parlando di php, con js visualizzi l'alert e l'alert non fa cambiare pagina, l'alert js si sovrappone alla pag corrente
 

delfina

Nuovo Utente
18 Mag 2011
28
0
0
ciao
io sto parlando di php, con js visualizzi l'alert e l'alert non fa cambiare pagina, l'alert js si sovrappone alla pag corrente

E' quello che voglio... gli alert vanno bene... quindi parliamo della soluzione javascript... il problema è che tutte quelle informazioni mi devono essere inviate via mail al mio indirizzo diciamo [email protected] e una volta inviato l'utente deve essere reindirizzato ad una pagina diciamo www.google.it... è questo che non riesco a fare con la soluzione javascript... mentre con il php lo riuscivo a fare ma non avevo gli alert... è più facile modificare il php per restare nella stessa pagina con la visualizzazione degli errori... o modificare la pagina con javascript per inviare la mail al mio indirizzo e reindirizzare l'utente in un'altra pagina a operazione conclusa? mi puoi aiutare?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
non amo molto js e quindi lo conosco poco, per me sarebbe più facile fare tutto in php e a mio parere tutto in una sola pagina.
comunque puoi anche lasciare il js.
se hai pazienza ti faccio uno schema e lo posto
 

delfina

Nuovo Utente
18 Mag 2011
28
0
0
ciao
non amo molto js e quindi lo conosco poco, per me sarebbe più facile fare tutto in php e a mio parere tutto in una sola pagina.
comunque puoi anche lasciare il js.
se hai pazienza ti faccio uno schema e lo posto

Anche io non amo molto il javascript ma non avevo trovato altre soluzioni per dare l'errore nella stessa pagina... aspetto il tuo schema. Grazie :love::love::love:
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
eccho uno schema di come farei (anzi come faccio nel form del mio sito), form e php di invio tutto nella stessa pagina

PHP:
<!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">
<!-- qui puoi mettere tutti i tuoi alert che hai fatto in js (la funzione function ControllaForm())-->
</SCRIPT>
</head>
<body>
<?php
if(isset($_POST['invia'])){
	//qui la parte php di controllo dei vari $_POST
	//eventualmente poi puoi semplificare ed eventualmente usare preg_match per le verifiche formali
	//prima i campi obbligatori, poi il messaggio
	$utente_nome=trim($_POST['utente_nome']);
	//ecc...
	$utente_email=trim($_POST['utente_email']);
	//.....
	$utente_msg=strip_tags(trim($_POST['utente_msg']));//elimino eventuali tags per sicurezza
	//fine lettura $_POST - inizio le verifiche
	//metto a vuoto quello che sarà l'eventuale messaggio di errore
	$errore="";
	if($utente_nome ==""){
		$errore.="non hai inserito il nome<br />";
	}
	//......
	if($utente_cap=="" || !preg_match("/^[0-9]{5}$/",)){
		$errore.="CAP non valido o vuoto<br />";
	}
	if(!filter_var($email, FILTER_VALIDATE_EMAIL)){
		$errore.="indirizzo non valido<br />";
	}
	//.....non controllo $utente_msg perchè non obbligatorio (mi sembra)
	//fine dei controlli: se l'utente non ha fatto errori $errore è rimasta vuota
	if($errore !=""){//$errore non è vuota
		//visualizzi i messaggi di errore (da sistemare con i css)
		echo $errore;
		//e riporti l'utente al form in modo che possa ricomporre il tutto
		echo "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
	}else{
		//non so cosa utilizzi per inviareti l'email, un consiglio dai un occhio alla classe phpmailer
		//è MOLTO meglio che usare la funzione mail()
		//qui prepari tutto per l'invio.......
		//mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )
		if(mail("[email protected]","oggetto:...", $messaggio,$header){
			echo "email inviata correttamente, sarai contatta quanto prima";
			//e riinvii dove vuoi tu basta che tu cambi l'url
			echo "<meta http-equiv='Refresh' content='3; URL=nome_pagina.php'>"; 
		}else{
			echo "c'è stato un errore di trasmissione, riprova più tardi";
			//e riinvii dove vuoi tu basta che tu cambi l'url
			echo "<meta http-equiv='Refresh' content='3; URL=nome_pagina.php'>"; 
		}
	}
}else{
?>

<form method="post" name="form1" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" OnSubmit="return ControllaForm(this)">
Nome*:<br>
<input type="text" name="utente_nome" size="20"><br>
<!--  e tutti gli altri campi di input -->
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>
<!--  ricordati il name al submit -->
<input type="submit" name= "invia" value="INVIA"> 
</form>
<?php
}
?>
</body>
</html>
 

delfina

Nuovo Utente
18 Mag 2011
28
0
0
ciao
eccho uno schema di come farei (anzi come faccio nel form del mio sito), form e php di invio tutto nella stessa pagina

PHP:
<!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">
<!-- qui puoi mettere tutti i tuoi alert che hai fatto in js (la funzione function ControllaForm())-->
</SCRIPT>
</head>
<body>
<?php
if(isset($_POST['invia'])){
	//qui la parte php di controllo dei vari $_POST
	//eventualmente poi puoi semplificare ed eventualmente usare preg_match per le verifiche formali
	//prima i campi obbligatori, poi il messaggio
	$utente_nome=trim($_POST['utente_nome']);
	//ecc...
	$utente_email=trim($_POST['utente_email']);
	//.....
	$utente_msg=strip_tags(trim($_POST['utente_msg']));//elimino eventuali tags per sicurezza
	//fine lettura $_POST - inizio le verifiche
	//metto a vuoto quello che sarà l'eventuale messaggio di errore
	$errore="";
	if($utente_nome ==""){
		$errore.="non hai inserito il nome<br />";
	}
	//......
	if($utente_cap=="" || !preg_match("/^[0-9]{5}$/",)){
		$errore.="CAP non valido o vuoto<br />";
	}
	if(!filter_var($email, FILTER_VALIDATE_EMAIL)){
		$errore.="indirizzo non valido<br />";
	}
	//.....non controllo $utente_msg perchè non obbligatorio (mi sembra)
	//fine dei controlli: se l'utente non ha fatto errori $errore è rimasta vuota
	if($errore !=""){//$errore non è vuota
		//visualizzi i messaggi di errore (da sistemare con i css)
		echo $errore;
		//e riporti l'utente al form in modo che possa ricomporre il tutto
		echo "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
	}else{
		//non so cosa utilizzi per inviareti l'email, un consiglio dai un occhio alla classe phpmailer
		//è MOLTO meglio che usare la funzione mail()
		//qui prepari tutto per l'invio.......
		//mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )
		if(mail("[email protected]","oggetto:...", $messaggio,$header){
			echo "email inviata correttamente, sarai contatta quanto prima";
			//e riinvii dove vuoi tu basta che tu cambi l'url
			echo "<meta http-equiv='Refresh' content='3; URL=nome_pagina.php'>"; 
		}else{
			echo "c'è stato un errore di trasmissione, riprova più tardi";
			//e riinvii dove vuoi tu basta che tu cambi l'url
			echo "<meta http-equiv='Refresh' content='3; URL=nome_pagina.php'>"; 
		}
	}
}else{
?>

<form method="post" name="form1" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" OnSubmit="return ControllaForm(this)">
Nome*:<br>
<input type="text" name="utente_nome" size="20"><br>
<!--  e tutti gli altri campi di input -->
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>
<!--  ricordati il name al submit -->
<input type="submit" name= "invia" value="INVIA"> 
</form>
<?php
}
?>
</body>
</html>

Provo e ti faccio sapere. Grazie
 

delfina

Nuovo Utente
18 Mag 2011
28
0
0
Niente da fare non so cosa ho sbagliato ma mi da uesti errori quando lancio la pagina

"; } if($utente_cognome ==""){ $errore.="non hai inserito il cognome
"; } if($indirizzo ==""){ $errore.="non hai inserito l'indirizzo
"; } if($numerocivico=="" || !preg_match("/^[0-9]{5}$/",)){ $errore.="Numero civico non valido o vuoto
"; } if($citta ==""){ $errore.="non hai inserito la città
"; } if($provincia ==""){ $errore.="non hai inserito la provincia
"; } if($utente_cap=="" || !preg_match("/^[0-9]{5}$/",)){ $errore.="CAP non valido o vuoto
"; } if($telefono=="" || !preg_match("/^[0-9]{5}$/",)){ $errore.="Telefono non valido o vuoto
"; } if(!filter_var($email, FILTER_VALIDATE_EMAIL)){ $errore.="indirizzo non valido
"; } if( "on" != $privacy ) { $error_message .= 'Accetta i termini
'; } if($errore !=""){//$errore non è vuota echo $errore; echo ""; }else{ if(mail("[email protected]","oggetto:...", $messaggio,$header){ echo "email inviata correttamente, sarai contatta quanto prima"; echo ""; }else{ echo "c'è stato un errore di trasmissione, riprova più tardi"; //e riinvii dove vuoi tu basta che tu cambi l url echo ""; } } }else{ ?>

Questo è il modo in cui ho modificato i ltuo codice

<!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>
<?php
if(isset($_POST['invia'])){
$privacy = trim($_POST['Accettazione']); // required
$utente_nome = trim($_POST['utente_nome']); // required
$utente_cognome = trim($_POST['utente_cognome']); // required
$email = trim($_POST['email']); // required
$telefono = trim($_POST['telefono']); // required
$commenti = trim($_POST['commenti']); // not required
$indirizzo = trim($_POST['indirizzo']); // required
$numerocivico = trim($_POST['numerocivico']); // required
$citta = trim($_POST['citta']); // required
$provincia = trim($_POST['provincia']); // required
$utente_cap = trim($_POST['utente_cap']); // required

$errore="";
if($utente_nome ==""){
$errore.="non hai inserito il nome<br />";
}
if($utente_cognome ==""){
$errore.="non hai inserito il cognome<br />";
}
if($indirizzo ==""){
$errore.="non hai inserito l'indirizzo<br />";
}
if($numerocivico=="" || !preg_match("/^[0-9]{5}$/",)){
$errore.="Numero civico non valido o vuoto<br />";
}
if($citta ==""){
$errore.="non hai inserito la città<br />";
}
if($provincia ==""){
$errore.="non hai inserito la provincia<br />";
}
if($utente_cap=="" || !preg_match("/^[0-9]{5}$/",)){
$errore.="CAP non valido o vuoto<br />";
}
if($telefono=="" || !preg_match("/^[0-9]{5}$/",)){
$errore.="Telefono non valido o vuoto<br />";
}
if(!filter_var($email, FILTER_VALIDATE_EMAIL)){
$errore.="indirizzo non valido<br />";
}
if( "on" != $privacy ) {
$error_message .= 'Accetta i termini<br />';
}
if($errore !=""){//$errore non è vuota
echo $errore;
echo "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
}else{
if(mail("[email protected]","oggetto:...", $messaggio,$header){
echo "email inviata correttamente, sarai contatta quanto prima";
echo "<meta http-equiv='Refresh' content='3; URL=www.google.it'>";
}else{
echo "c'è stato un errore di trasmissione, riprova più tardi";
//e riinvii dove vuoi tu basta che tu cambi l url
echo "<meta http-equiv='Refresh' content='3; URL=www.google.it'>";
}
}
}else{
?>

Help me please
 

delfina

Nuovo Utente
18 Mag 2011
28
0
0
Allora, ho riscritto il tuo codice eliminando i commenti e scrivendo i campi che mi interessavano:

PHP:
<!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>
<?php
if(isset($_POST['invia'])){
    
    $utente_nome=trim($_POST['utente_nome']);
    $utente_cognome=trim($_POST['utente_cognome']);
    $utente_indirizzo=trim($_POST['utente_indirizzo']);
    $utente_numerocivico=trim($_POST['utente_numerocivico']);
    $utente_cap=trim($_POST['utente_cap']);
    $utente_citta=trim($_POST['utente_citta']);
    $utente_provincia=trim($_POST['utente_provincia']);
    $utente_cap=trim($_POST['utente_cap']);
    $utente_telefono=trim($_POST['utente_telefono']);
    $utente_email=trim($_POST['utente_email']);
    $utente_msg=strip_tags(trim($_POST['utente_msg']));
    
    $errore="";
    if($utente_nome ==""){
        $errore.="non hai inserito il nome<br />";
    }
    if($utente_cognome ==""){
        $errore.="non hai inserito il cognome<br />";
    }
    if($utente_indirizzo ==""){
        $errore.="non hai inserito il indirizzo<br />";
    }
    if($utente_numerocivico=="" || !preg_match("/^[0-9]{5}$/",)){
        $errore.="numero civico non valido o vuoto<br />";
    }
    if($utente_cap=="" || !preg_match("/^[0-9]{5}$/",)){
        $errore.="CAP non valido o vuoto<br />";
    }
    if($utente_citta ==""){
        $errore.="non hai inserito la città<br />";
    }
    if($utente_provincia ==""){
        $errore.="non hai inserito la provincia<br />";
    }
    if($utente_telefono=="" || !preg_match("/^[0-9]{5}$/",)){
        $errore.="telefono non valido o vuoto<br />";
    }
    if(!filter_var($email, FILTER_VALIDATE_EMAIL)){
        $errore.="indirizzo non valido<br />";
    }
    
    if($errore !=""){
        echo $errore;
                
        echo "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
    }else{
        
        if(mail("[email protected]","oggetto:...", $messaggio,$header){
            echo "email inviata correttamente, sarai contatta quanto prima";
            
           echo "<meta http-equiv='Refresh' content='3; URL=www.google.it'>"; 
        }else{
            echo "c'è stato un errore di trasmissione, riprova più tardi";
            echo "<meta http-equiv='Refresh' content='3; URL=www.google.it'>"; 
        }
    }
}else{
?>

<form method="post" name="form1" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" 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*:<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="5"><br>
Numero di telefono*:<br>
<input type="text" name="utente_telefono" size="20"><br>
<br>
Messaggio:<br>
<textarea name="utente_msg" cols="40" rows="4"></textarea><br>
<br>
<input type="submit" name= "invia" value="INVIA"> 
</form>
<?php
}
?>
</body>
</html>

Ma mi da degli errori quando lancio la pagina...

Help me
 
Ultima modifica di un moderatore:

delfina

Nuovo Utente
18 Mag 2011
28
0
0
E' php, ma non per questo non ci puo essere codice html, l'estensione serve a farla interpretare dal server

Ho modificato il nome della pagina chiamandolo prova.php e mi dice che c'è un errore in questa riga...

if($utente_numerocivico=="" || !preg_match("/^[0-9]{5}$/",)){
$errore.="numero civico non valido o vuoto<br />";
}

sai dirmi il perchè?
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Ho modificato il nome della pagina chiamandolo prova.php e mi dice che c'è un errore in questa riga...

if($utente_numerocivico=="" || !preg_match("/^[0-9]{5}$/",)){
$errore.="numero civico non valido o vuoto<br />";
}

sai dirmi il perchè?
Manca la stringa dopo il pattern nel preg_match
PHP:
    if($utente_numerocivico=="" || !preg_match("/^[0-9]{5}$/",$utente_numerocivico)){
        $errore.="numero civico non valido o vuoto<br />";
    }
 

delfina

Nuovo Utente
18 Mag 2011
28
0
0
ok risolto.

altri due errori stanno qui

if(mail("[email protected]","oggetto:...", $messaggio,$header){
echo "email inviata correttamente, sarai contatta quanto prima";

echo "<meta http-equiv='Refresh' content='3; URL=www.google.it'>";
}else{
echo "c'è stato un errore di trasmissione, riprova più tardi";
echo "<meta http-equiv='Refresh' content='3; URL=www.google.it'>";
}

nella riga dell'if e dell'else

Che è sbagliato qui?
 
Discussioni simili
Autore Titolo Forum Risposte Data
T apertura pagina elaborazione form in altra finestra Javascript 1
D Risultati diversi elaborazione dati fra localhost e Altervista PHP 0
Max 1 Software elaborazione video Windows e Software 1
A Interrompere elaborazione dati PHP 0
A Interrompere elaborazione dati Javascript 0
K Elaborazione rxmlHttp.responseText Ajax 5
Eugene MediaCed - Centro Elaborazione Dati Presenta il tuo Sito 0
A Amministrazione Digital-Designs Elaborazione Siti Web, Open Source PHP, Flash HTML e CSS 0
S passare un valore da un form a un file .php con metodo post PHP 4
K Form che manda dati doppi PHP 1
K Problema form update PHP 2
Elisacau [Contact form 7] Inserire Numero auto incrementante WordPress 1
K form Inserimento record mysql PHP 2
I Form con selettore HTML e CSS 0
K [php]form invio dati PHP 0
G form invio multiplo con checkbox PHP 12
nivaria.achinet Intercettare form solo dopo invio Javascript 1
D Form contatti non funzionante HTML e CSS 0
A Stampare dati da form PHP 15
M Unire 2 funzioni per l'invio di un form e con l'apertura di un div Javascript 0
I Form HTML e CSS 17
otto9due $_FILE non passa i dati dal form PHP 1
M Form: come tornare ai campi già compilati dopo invio PHP 1
G Invio form con PHP PHP 3
felino Form action costum e parametri in queryString WordPress 1
M Come recuperare molteplici input form PHP 1
M Collegamento tra form html e script php PHP 4
L form immagini per il database PHP 0
A form PHP prenotazione tramite query PHP 2
A Form php prenotazione di un azienda sanitaria locale presso studio medico PHP 1
L inserimento form dati multipli ? PHP 0
L Problemi form Pagina php HTML e CSS 3
Cosina Creare bottone delete in form upload PHP 5
Cosina Creare bottone delete in form upload PHP 1
D Devo far funzionare un form di contatti PHP 4
B form gestione input PHP 2
V PHP form intersecate PHP 0
8 Javascript - PDF Form Javascript 0
J Form inserimento dati in database Ajax 1
E Gestione profilo utente tramite Form PHP 3
R [C#] Form principale si blocca mentre un altro Thread lavora .NET Framework 0
M Problema con controllo form in real time jQuery 6
D Form validazione Javascript 2
R form recovery pass PHP 0
V Symfony e i form PHP 3
M form con checkbox PHP 8
S come aggiustare un form di contatto? HTML e CSS 3
F query e form con select multipla PHP 17
MarcoGrazia Verifica di una stringa o di un nome proveniente da form Snippet PHP 0
A Inserimento dati nel database tramite form + altre operazioni PHP 18

Discussioni simili