formail con espressioni regolari

helpdesk

Utente Attivo
30 Set 2009
726
0
0
Pesaro
Salve ragazzi non mi funziona un formail che ho creto mi da errore alla riga 13 ma non si inseriscono così le espressioni regolari per i controlli in un form?



<?php


$Azienda=$_POST['azienda'];
$Persona=$_POST['persona'];
$Provincia=$_POST['provincia'];
$Citta=$_POST['citta'];
$Telefono=$_POST['telefono'];
$Email=$_POST['email'];
$Note=$_POST['note'];


$controllo_azienda=/^[a-zA-Z]{3,}$/;
$controllo_persona=/^[a-zA-Z]{3,}$/;
$controllo_provincia=/^[a-zA-Z]{2,}$/;
$controllo_citta=/^[a-zA-Z]{3,}$/;
$controllo_telefono=/^[0-9]{10,10}$/;
$controllo_mail=/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})$/;

$aziendaf ="Inserire Nome azienda";
$personaf="Inserire Nome persona da contattare";
$provincia="Inserire Provincia";
$cittaf="Inserire Città";
$telefonof="Inserire Telefono";
$mailf="Inserire E-mail";


if (!$controllo_azienda.test($aziendaf)){
echo($aziendaf);
}else if(!$controllo_persona.test($personaf)){
echo($personaf);
}else if(!$controllo_provincia.test($provinciaf)){
echo($provinciaf);
}else if(!$controllo_citta.test($cittaf)){
echo($cittaf);
}else if(!$controllo_telefono.test($telefonof)){
echo($telefonof);
}else if(!$controllo_mail.test($mailf)){
echo($mailf);
}else{

$to = "[email protected]";
$subject = "Richiesta informazioni da parte di $Azienda";

$message = $messaggio;
$message .= "\n\n---------------------------\n";
$message .= "DATI CONTATTO:

$azienda.Azienda = $Azienda:
$persona.Persona = $Persona:
$provincia.Provincia =$Provincia:
$citta.Citta=$Citta:
$telefono.Telefono =$Telefono:
$email.E.mail = $Email
$note.Note =$Note:

$mail ";
$headers = "From: " . $Azienda. " " . $Persona. " <" .$email.">\n";
if(@mail($to, $subject, $message, $headers))
{
echo "Messaggio inviato";
}
else
{
echo "errore";
}

}
}

?>
 

helpdesk

Utente Attivo
30 Set 2009
726
0
0
Pesaro
Grazie per la risposta ma il tutorial è in inglese e non riesco a capire la sintassi e la logica :(
 

dreamer86

Utente Attivo
15 Apr 2011
42
0
0
rafalmachalek.it
PHP:
<?php
$Azienda=$_POST['azienda'];
$controllo_azienda="/^[a-zA-Z]{3,}$/";

if (preg_match($controllo_azienda, $Azienda)) {
    echo "successo";    // stringa $Azienda rispetta le regole della espresione regolare
} else {
    echo "fallimento";    // stringa $Azienda non rispetta le regole della espresione regolare
}
?>
 

helpdesk

Utente Attivo
30 Set 2009
726
0
0
Pesaro
L'ho sostituito ma mi da sempre l'errore alla riga 13 :(

Parse error: syntax error, unexpected '/' in D:\inetpub\vhosts\sito.com\httpdocs\f\php\contact.php on line 13

<?php


$Azienda=$_POST['azienda'];
$Persona=$_POST['persona'];
$Provincia=$_POST['provincia'];
$Citta=$_POST['citta'];
$Telefono=$_POST['telefono'];
$Email=$_POST['email'];
$Note=$_POST['note'];

$controllo_azienda="/^[a-zA-Z]{3,}$/";
$controllo_persona="/^[a-zA-Z]{3,}$/";
$controllo_provincia="/^[a-zA-Z]{2,}$/";
$controllo_citta="/^[a-zA-Z]{3,}$/";
$controllo_telefono="/^[0-9]{10,10}$/";
$controllo_mail="/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})$/";


if (preg_match($controllo_azienda, $Azienda)) {
echo "successo";
} else if (preg_match($controllo_persona, $Persona)){
echo "successo";
} else if (preg_match($controllo_provincia, $Provincia)){
echo "successo";
if (preg_match($controllo_citta, $Citta)) {
echo "successo";
} else if (preg_match($controllo_mail, $Email)){
echo "successo";
} else if (preg_match($controllo_azienda, $Azienda)){
echo "successo";
}else{

$to = "[email protected]";
$subject = "Richiesta informazioni da parte di $nome $cognome";

$message = $messaggio;
$message .= "\n\n---------------------------\n";
$message .= "DATI CONTATTO:

$azienda.Azienda = $Azienda:
$persona.Persona = $Persona:
$provincia.Provincia =$Provincia:
$citta.Citta=$Citta:
$telefono.Telefono =$Telefono:
$email.E.mail = $Email
$note.Note =$Note:

$mail ";
$headers = "From: " . $Azienda. " " . $Persona. " <" .$email.">\n";
if(@mail($to, $subject, $message, $headers))
{
echo "Messaggio inviato";
}
else
{
echo "errore";
}
}


?>
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
ho fatto una piccola prova per verificare le espressioni regolari e non mi dà errori
PHP:
<?php
//per semplificare ho tolto i post e modificato gli if
$Azienda='azienda';
$Persona='persona';
$Provincia='provincia';
$Citta='citta';
$Telefono='telefono';
$Email='[email protected]';
$Note='note';
//NON ho modifcato le expreg
$controllo_azienda="/^[a-zA-Z]{3,}$/";
$controllo_persona="/^[a-zA-Z]{3,}$/";
$controllo_provincia="/^[a-zA-Z]{2,}$/";
$controllo_citta="/^[a-zA-Z]{3,}$/";
$controllo_telefono="/^[0-9]{10,10}$/";
$controllo_mail="/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})$/";
//dagli if ottengo 5 volte successo e non dà l'errore che dici tu
if (preg_match($controllo_azienda, $Azienda)) {
	echo "successo<br>";}
if (preg_match($controllo_persona, $Persona)){
	echo "successo<br>";}
if (preg_match($controllo_provincia, $Provincia)){
	echo "successo<br>";}
if (preg_match($controllo_citta, $Citta)) {
	echo "successo<br>";}
if (preg_match($controllo_mail, $Email)){
	echo "successo<br>";}
?>

p.s.
hai messo nella verifica della città {3,} guarda che in veneto c'è un comune che si chiama Vo

p.s. al p.s.
per la verifica dell'indirizzo email ti conviene usare
filter_var($email, FILTER_SANITIZE_EMAIL)
filter_var($email, FILTER_VALIDATE_EMAIL)
 

helpdesk

Utente Attivo
30 Set 2009
726
0
0
Pesaro
Ciao Borgo, grazie per la risposta, si vanno cambiate le espressioni.
Ma con il codice che hai indicato tu non verifico se sbagliano ma solo se digitano correttamente il campo mentre con else if posso in cosa ho sbagliato?
 

helpdesk

Utente Attivo
30 Set 2009
726
0
0
Pesaro
Così invece mi dice quando è giusto e quando è sbagliato come faccio a fargli capire che deve inviare la mail quando tutti sono giusti?

PHP:
<?php 
//per semplificare ho tolto i post e modificato gli if 
$Azienda='azienda'; 
$Persona='persona'; 
$Provincia='provincia'; 
$Citta='citta'; 
$Telefono='telefono'; 
$Email='[email protected]'; 
$Note='note'; 
//NON ho modifcato le expreg 
$controllo_azienda="/^[a-zA-Z]{3,}$/"; 
$controllo_persona="/^[a-zA-Z]{3,}$/"; 
$controllo_provincia="/^[a-zA-Z]{2,}$/"; 
$controllo_citta="/^[a-zA-Z]{3,}$/"; 
$controllo_telefono="/^[0-9]{10,10}$/"; 
$controllo_mail="/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})$/";
 //dagli if ottengo 5 volte successo e non dà l'errore che dici tu 

if (preg_match($controllo_azienda, $Azienda)) {
 echo "successo"; 
} else{
echo"errore";
} 

if (preg_match($controllo_persona, $Persona)){
 echo "successo"; 
} else{ 
 echo"errore";
} 
if (preg_match($controllo_provincia, $Provincia)){
 echo "successo";
  } else{ 
 echo"errore";
} 

if (preg_match($controllo_citta, $Citta)) {
 echo "successo"; 
} else{ 
 echo"errore";
} 

if (preg_match($controllo_mail, $Email)){
 echo "successo"; 
} else{ 
 echo"errore";
} 

if (preg_match($controllo_azienda, $Azienda)){
 echo "successo"; 
 } else{ 
 echo"errore";
} 

?>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
avevo semplificato per verificare le espressioni, davi err alla riga 13 che era un'exp.
per verificare se fai giusto o errato ti dico (semplificando) come faccio io
PHP:
<?php
//raccolta dei vari post
$ok_ko="";//stringa vuota
//le varie exp regolari
if (!preg_match($controllo_azienda, $Azienda)) { //nota ! che nega
    $ok_ko.= "non hai inserito l'azienda o caratteri illeciti<br>";  
}
if (!preg_match($controllo_persona, $Persona)){ 
    $ok_ko.= "non hai inserito il tuo nome o caratteri illeciti<br>";  //se anche prima errore si concatenao i due errori
}
//ecc... con i vari controlli
if($ok_ko==""){//se è vuota tutti gli input sono giusti
    //invio l'email
}else{
   echo $ok_ko;//visualizzo gli errori
}
//ecc...
?>


p.s.
racchiudi sempre i codici con i loro tag (vedi la barra di formattazione in alto a dx)
 
Ultima modifica:

helpdesk

Utente Attivo
30 Set 2009
726
0
0
Pesaro
Grande Borgo Italia, grazie mille funziona però non so come aggiungere il controllo sul campo checkbox per la scelta per il consenso al trattamento dei dati personali mi da errore se la inserisco in cosa ho sbagliato?

PHP:
<?php 


$Azienda=$_POST['azienda'];
$Persona=$_POST['persona'];
$Provincia=$_POST['provincia'];
$Citta=$_POST['citta'];
$Telefono=$_POST['telefono'];
$Email=$_POST['email'];
$Note=$_POST['note'];
$Check=$_POST['check'];

$controllo_azienda="/^[a-zA-Z]{3,}$/";
$controllo_persona="/^[a-zA-Z]{3,}$/";
$controllo_provincia="/^[a-zA-Z]{2,}$/";
$controllo_citta="/^[a-zA-Z]{3,}$/";
$controllo_telefono="/^[0-9]{10,10}$/";
$controllo_mail="/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})$/";

$ok_ko=""; 

if (!preg_match($controllo_azienda, $Azienda)) { 
    $ok_ko.= "non hai compilato il campo Azienda <br>";   
} 
if (!preg_match($controllo_persona, $Persona)){  
    $ok_ko.= "non hai compilato il campo Nome <br>";   
 } 
if (!preg_match($controllo_provincia, $Provincia)){  
    $ok_ko.= "non haicompilato il campo Provincia <br>";  
 } 
if (!preg_match($controllo_citta, $Citta)){  
    $ok_ko.= "non hai compilato il campo Citta<br>";  
 } 
if (!preg_match($controllo_telefono, $Telefono)){  
    $ok_ko.= "non hai compilato il campo telefono<br>";  
 } 
if (!preg_match($controllo_mail, $Email)){  
    $ok_ko.= "non hai compilato il campo E-mail <br>";   
 } 
 if (!preg_match($Check,$Check)){  
    $ok_ko.= "non hai dato il consenso al trattamento dei dati personali <br>";   
 } 

if($ok_ko==""){ 
  
$to = "[email protected]"; 
$subject = "Richiesta informazioni da parte di $nome $cognome"; 

$message = $messaggio;
$message .= "\n\n---------------------------\n"; 
$message .= "DATI CONTATTO:

$azienda.Azienda = $Azienda:
$persona.Persona = $Persona:
$provincia.Provincia =$Provincia:
$citta.Citta=$Citta:
$telefono.Telefono =$Telefono:
$email.E.mail = $Email
$note.Note =$Note:

$mail "; 
$headers = "From: " . $Azienda. " " . $Persona. " <" .$email.">\n"; 
if(@mail($to, $subject, $message, $headers)) 
{ 
echo "Messaggio inviato"; 
} 
}else{ 
   echo $ok_ko; 
} 
?>

il checkbox l'ho scritto così nell'html <input name="check" type="checkbox" value="check" checked="checked"/>
 
Ultima modifica:

helpdesk

Utente Attivo
30 Set 2009
726
0
0
Pesaro
Ciao Dreamer, grazie per la risposta nel tag nell'html check è uguale sia per il nome che per l'attributo value non ho capito cosa intendi :(
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Sostituisci questo:
PHP:
 if (!preg_match($Check,$Check)){  
    $ok_ko.= "non hai dato il consenso al trattamento dei dati personali <br>";   
 }
Con questo:
PHP:
if (!isset($_POST['check'])) {  
    $ok_ko.= "non hai dato il consenso al trattamento dei dati personali <br>";   
}
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
come ha detto alex, oppure anche se non so che valore hai messo per il checkbox, se (ad esempio) hai messo S per sì
io valuterei senza la preg, basta verificare
PHP:
//...
if($Check != "S"){
	$ok_ko.= "non hai dato il consenso al trattamento dei dati personali <br>"; 
}
//...
 
Discussioni simili
Autore Titolo Forum Risposte Data
W formail con checkbox asp Classic ASP 19
M Formail PHP - Problemi con account AOL PHP 1
S formail non funziona hosting netsons PHP 11
traduction1962 Formail Supporto Mr.Webmaster 10
helpdesk Formail javascript Javascript 0
helpdesk Formail complesso PHP 11
H urgente formail non mi funziona bene.. PHP 5
D formail che supporta il giapponese PHP 0
E campo controllo in formail php PHP 1
L creare un Formail HTML e CSS 0
F formail PHP 0
S Formail Classic ASP 2
F access ricerca record con apostrofo. MS Access 0
F Cerco Hosting con VECCHIE versioni di php Hosting 0
C Come ricreare questo calcolatore di prezzi a step con woocommerce? WordPress 0
C Segnalo barra laterale di navigazione ASSENTE con Chrome Comunicazioni dallo Staff 5
G Guadagna dalla Vendita di Articoli Sponsorizzati con GuestPostMax.com! Guadagnare col Sito 0
P Hosting multidominio con Plesk Hosting 0
L Soluzione con INNER JOIN Database 0
S passare un valore da un form a un file .php con metodo post PHP 4
A Redirect 301 genera url statico con variabili Web Server 0
T problemi con dati menu a tendina HTML e CSS 2
T Query con date MS Access 1
F Url dinamiche da cambiare con categoria, subcategoria e title PHP 2
L Aiuto con DataGridView Visual Basic 1
O problema con dvr dahua xvr5116 IP Cam e Videosorveglianza 0
G Problema con Xampp Web Server 1
M Aggiunta prodotti nel carrello con lo stesso in e varianti diverse PHP 0
andrea barletta Problema con miniature comandi Photoshop 0
I problema con alice Posta Elettronica 0
B Non riesco a trovare i cognomi con i caratteri speciali in Access (Microsoft 365) MS Access 0
N Problema con position absolute e overflow HTML e CSS 4
M Estrarre soltanto i prodotti con stessa descrizione PHP 10
felino [Wordpress] Gallery con foto selezionabili dall'utente WordPress 0
G Invio di più valori con la stessa checkbox PHP 4
csi Inviare file jpg in locale alla stampante con php PHP 0
otto9due Proteggere una cartella e file con password tramite .htaccess e .htpasswd Web Server 0
I Form con selettore HTML e CSS 0
G phpmailer e php 8.1 con estensione mysqli PHP 6
L Problema con inner join PHP 11
K [php] Problema con inner join PHP 4
N Vendo sito web di casino online con 1000 giochi Compravendita siti e domini 0
G form invio multiplo con checkbox PHP 12
L Query e selezione DB con $_POST PHP 2
K [PHP] Problema con variabili concatenate. PHP 1
R Dubbi su siti sviluppati con Wordpress e con codice WordPress 6
B Router e telecamere con pannello solare IP Cam e Videosorveglianza 0
Z Cerco ecommerce gratuito meglio se realizzato con Woocommerce di Wordpress. E-Commerce 0
S [CERCO] scambio di articoli con link Offerte e Richieste di scambio links 0
A Immagine decentrata con sfondo trasparente Photoshop 0

Discussioni simili