Ottimizzare Form PHP

Lord

Utente Attivo
30 Ott 2012
60
0
0
Ciao, grazie, una funzione simile la posso integrare per fare un controllo sul nome?
Io richiedo Nome e Cognome perciò serve inserire minimo due parole di minimo 3 lettere ciascuna.
Mi confermi che si può fare?

Grazie
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
prova queste due funzioni
la prima verifica solo una parola, la seconda due parole separate da uno spazio
PHP:
<?php
function verifica_nome($n){//verifica che un testo sia fatto solo di lettere minimo 3
    $pat='/^[a-zA-Z]{3,}$/';
    if(!preg_match($pat,$n)){
        return false;
    }else{
        return $n;
    }
}
//return preg_match("/^[A-Z]{5}[0-9]{4}[A-Z]{1}$/", $num);
function verifica_nome_nome($n){//verifica che un testo sia fatto due parolesolo di lettere minimo 3
    $pat='/^[a-zA-Z]{3,}[ ]{1}[a-zA-Z]{3,}$/';//verifica che siano numeri minimo 5 max 20
    if(!preg_match($pat,$n)){
        return false;
    }else{
        return $n;
    }
}
//**test verifica_nome
$testo= "Pinco";
if(verifica_nome($testo)){
	echo verifica_nome($testo)." nome valido<br />";
}else{
	echo "$testo non è un nome valido<br />";
}
$testo= "Pin9co";
if(verifica_nome($testo)){
	echo verifica_nome($testo)."<br />";
}else{
	echo "$testo non è un nome valido<br />";
}
$testo= "co";
if(verifica_nome($testo)){
	echo verifica_nome($testo)."<br />";
}else{
	echo "$testo non è un nome valido<br />";
}
//**test verifica nome e cognome, solo lettere parole minimo 3 caratteri separate da uno spazio
$testo= "Pinco Pallino";
if(verifica_nome_nome($testo)){
	echo verifica_nome_nome($testo)." nome valido<br />";
}else{
	echo "$testo non è un nome valido<br />";
}
$testo= "PincoPallino";
if(verifica_nome_nome($testo)){
	echo verifica_nome_nome($testo)." nome valido<br />";
}else{
	echo "$testo non è un nome valido<br />";
}
$testo= "Pinco li";
if(verifica_nome_nome($testo)){
	echo verifica_nome_nome($testo)." nome valido<br />";
}else{
	echo "$testo non è un nome valido<br />";
}
$testo= "Pinco Pal8ino";
if(verifica_nome_nome($testo)){
	echo verifica_nome_nome($testo)." nome valido<br />";
}else{
	echo "$testo non è un nome valido<br />";
}
$testo= "Pinco de Pallis";//questo caso non saprei come risolverlo se non in modo arzigogolato
if(verifica_nome_nome($testo)){
	echo verifica_nome_nome($testo)." nome valido<br />";
}else{
	echo "$testo non è un nome valido<br />";
}
?>

p.s.
se vuoi dare un limite massimo (es 40) modifica {3,} in {3,40}
 

Lord

Utente Attivo
30 Ott 2012
60
0
0
Ciao, grazie, mi è venuto un dubbio, nel caso il cognome fosse D'artagnan ci sarebbe un errore, giusto?
Consigli un controllo meno rigido del tipo due parole, la prima minimo 3 caratteri e la seconda minimo 2 inclusi gli apici?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
Ciao, grazie, mi è venuto un dubbio, nel caso il cognome fosse D'artagnan ci sarebbe un errore, giusto?
Consigli un controllo meno rigido del tipo due parole, la prima minimo 3 caratteri e la seconda minimo 2 inclusi gli apici?
alla prima: d'artagnan ti da errore
alla seconda non è semplice perche puoi avere diversi casi oltre a d'artagnan come detto "pinco de pallis", in questo caso le parole sono tre, senza considerare eventuali nomi e/o cognomi con caratteri accentati
 

Lord

Utente Attivo
30 Ott 2012
60
0
0
Capito, un sistema tipo minimo 2 parole composte da, la prima con minimo 3 caratteri, la seconda con minimo 1 carattere+eventuale apice e la terza minimo 2 caratteri (senza apici)

I caratteri accentati non sono compresi tra le lettere?
 

Lord

Utente Attivo
30 Ott 2012
60
0
0
Ciao, sono nuovamente qui, ho inserito il controllo sul numero così:

PHP:
<?php
// se hanno premuto il pulsante submit    
if (isset($_POST['submit']) && $_POST['submit'] == "INVIA") {
    // inizializzo campi obbligatori    
    $obbligatorio = array();
    // eliminiamo il post submit     
    unset($_POST['submit']);
    // array check obbligatorie    
    if (!isset($_POST['privacy'])) {
        $obbligatorio['privacy'] = "E' obbligatorio accettare la privacy";
    }
    if (!isset($_POST['termini'])) {
        $obbligatorio['termini'] = "E' obbligatorio accettare i termini";
    }
// ciclo del POST     
    foreach ($_POST as $key => $value) {
        // se non è vuoto     
        if (!empty($value)) {
            if ($key == "email") {
                if (!filter_var($value, FILTER_VALIDATE_EMAIL)) {
                    $obbligatorio[$key] = "Indirizzo E-mail non valido";
                }
            }
            ${$key} = strip_tags(htmlentities($value));
        } else {
            // se non è il campo sito 
            if ($key != "sito") {
                $obbligatorio[$key] = "\n Il campo $key e' obbligatorio";
            }
        }
    }

function verifica_telefono($telefono){  
    $pat='/^[0-9]{5,20}$/';//verifica che siano numeri minimo 5 max 20  
    if(!preg_match($pat,$telefono)){  
        return false;  
    }else{  
        if(substr($telefono, 0, 2)=="00"){//verifica che non inizi per 00  
            return false;  
        }else{  
            return $telefono;  
        }  
    }  
}  
//***TEST***  
$telefono="00123456";  
if(verifica_telefono($telefono)){  
    echo "il numero $telefono è un numero valido<br />";  
}else{  
    echo "<b>il numero $telefono NON è un numero valido</b><br />";  
}  
$telefono="01993344";  
if(verifica_telefono($telefono)){  
    echo "il numero $telefono è un numero valido<br />";  
}else{  
    echo "<b>il numero $telefono NON è un numero valido</b><br />";  
}  
$telefono="123a456";  
if(verifica_telefono($telefono)){  
    echo "il numero $telefono è un numero valido<br />";  
}else{  
    echo "<b>il numero $telefono NON è un numero valido</b><br />";  
}  
$telefono="123";  
if(verifica_telefono($telefono)){  
    echo "il numero $telefono è un numero valido<br />";  
}else{  
    echo "<b>il numero $telefono NON è un numero valido</b><br />";  
} 

    $sito = $_POST['sito'];

//continua continua

Forse sbaglio qualcosa, se scrivo delle lettere nel campo telefono l'email viene inviata e ricevo però il campo in formato numerico.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
scusa ma non capisco quello che hai fatto (combinato), intanto nello script che ti avevo postato per il controllo dei numeri quella parte dopo il commento //**test NON dovevi inseririla era solo per farti vedere come funziona la funzione
 

Lord

Utente Attivo
30 Ott 2012
60
0
0
Ciao, ho ricopiato il tuo codice interamente ma la funzione è

PHP:
<?php  
function verifica_telefono($telefono){  
    $pat='/^[0-9]{5,20}$/';//verifica che siano numeri minimo 5 max 20  
    if(!preg_match($pat,$telefono)){  
        return false;  
    }else{  
        if(substr($telefono, 0, 2)=="00"){//verifica che non inizi per 00  
            return false;  
        }else{  
            return $telefono;  
        }  
    }  
} 

?>
devo inserirla nell'altra parte del codice

PHP:
<?php
// se hanno premuto il pulsante submit    
if (isset($_POST['submit']) && $_POST['submit'] == "INVIA") {
    // inizializzo campi obbligatori    
    $obbligatorio = array();
    // eliminiamo il post submit     
    unset($_POST['submit']);
    // array check obbligatorie    
    if (!isset($_POST['privacy'])) {
        $obbligatorio['privacy'] = "E' obbligatorio accettare la privacy";
    }
    if (!isset($_POST['termini'])) {
        $obbligatorio['termini'] = "E' obbligatorio accettare i termini";
    }
// ciclo del POST     
    foreach ($_POST as $key => $value) {
        // se non è vuoto     
        if (!empty($value)) {
            if ($key == "email") {
                if (!filter_var($value, FILTER_VALIDATE_EMAIL)) {
                    $obbligatorio[$key] = "Indirizzo E-mail non valido";
                }
            }
            ${$key} = strip_tags(htmlentities($value));
        } else {
            // se non è il campo sito 
            if ($key != "sito") {
                $obbligatorio[$key] = "\n Il campo $key e' obbligatorio";
            }
        }
    }

    $sito = $_POST['sito'];

    if (count($obbligatorio) == 0) {
        $oggetto = "Prova";
        $testo_del_messaggio = "Nome: $nome\n";
        $testo_del_messaggio.="Città: $città\n";
        $testo_del_messaggio.="Provincia: $provincia\n";
        $testo_del_messaggio.="Telefono: $telefono\n";
        $testo_del_messaggio.="Email: $email\n";
        $testo_del_messaggio.="Sito: $sito\n";
        $testo_del_messaggio.="Oggetto: $oggetto\n";
        $testo_del_messaggio.="Messaggio: $messaggio\n";
        $to = "@@@";
	$from = "$email";
	$headers.= "From: $from";
	$result = mail($to, $oggetto, $testo_del_messaggio, $headers);
        if ($result) {
            echo "<p>Email inviata</p>";
        } else {
            echo " <p>Error.<br>Impossibile inviare l'email.</p>";
        }
    }
}
?>

<body> 
    <form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>"> 

        <label>Nome
            <input type="text" name="nome" placeholder="Nome" required="required" />
            <?php
            if (isset($obbligatorio['nome'])) {
                echo "<span>" . $obbligatorio['nome'] . "</span>";
            }
            ?> 
        </label> 
        <br/>

        <label>Città
            <input type="text" name="città" placeholder="Città" required="required" /> 
            <?php
            if (isset($obbligatorio['città'])) {
                echo "<span>" . $obbligatorio['città'] . "</span>";
            }
            ?> 
        </label> 
        <br/>

        <label>Provincia 
            <select name="provincia" required="required" /> 
            <option value="">Seleziona</option>
            <option value="1">1</option>    
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            <option value="5">5</option>
            <option value="6">6</option>
            </select> 
            <?php
            if (isset($obbligatorio['provincia'])) {
                echo "<span>" . $obbligatorio['provincia'] . "</span>";
            }
            ?> 
        </label> 
        <br/>

        <label>Telefono
            <input type="text" name="telefono" placeholder="Telefono" required="required" /> 
            <?php
            if (isset($obbligatorio['telefono'])) {
                echo "<span>" . $obbligatorio['telefono'] . "</span>";
            }
            ?> 
        </label> 
        <br/>

        <label>E-mail 
            <input type="text" name="email" placeholder="E-mail" required="required" /> 
            <?php
            if (isset($obbligatorio['email'])) {
                echo "<span>" . $obbligatorio['email'] . "</span>";
            }
            ?> 
        </label> 
        <br/>

        <label>Sito Internet
            <input type="text" name="sito" placeholder="http://"/> 
        </label> 
        <br/>

        <label>Oggetto 
            <select name="oggetto" required="required" /> 
            <option value="">Seleziona</option> 
            <option value="1">1</option> 
            <option value="2">2</option> 
            <option value="3">3</option> 
            </select> 
            <?php
            if (isset($obbligatorio['oggetto'])) {
                echo "<span>" . $obbligatorio['oggetto'] . "</span>";
            }
            ?> 
        </label> 
        <br/> 

        <label>Messaggio
            <br/>    
            <textarea cols="50" rows="5" name="messaggio" required="required"/></textarea><br/>
            <?php
            if (isset($obbligatorio['messaggio'])) {
                echo "<span>" . $obbligatorio['messaggio'] . "</span>";
            }
            ?> 
        </label>
        <br/> 

        <input type="checkbox" name="privacy" id="privacy" checked required="required" />Acconsento al...<br/>
        <?php
        if (isset($obbligatorio['privacy'])) {
            echo "<span>" . $obbligatorio['privacy'] . "</span>";
        }
        ?>
        <br/>
        <input type="checkbox" name="termini" id="termini" checked required="required" />Ho letto...><br/> 
        <?php
        if (isset($obbligatorio['termini'])) {
            echo "<span>" . $obbligatorio['termini'] . "</span>";
        }
        ?>
        <br/>
        <input type="reset" name="reset" value="ANNULLA"/> 
        <input type="submit" name="submit" value="INVIA"/> 

    </form>
</body>

Sbaglio qualcosa?
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
C [HTML] come ottimizzare sito web per dispositivi mobili HTML e CSS 2
A [risolto] Ottimizzare salvataggio dati MySQL 4
A Ottimizzare di più JOIN su tabella/e da 25.000 records MySQL 0
A ottimizzare sito per risoluzione 1024x768 Webdesign e Grafica 0
S Come ottimizzare il mio sito PHP? Troppe query... PHP 1
novello88 [MySQL] OPTIMIZE TABLE (ottimizzare una tabella di MySQL) MySQL 0
G ottimizzare velocemente un immagine per il web?? Windows e Software 1
T ottimizzare codice PHP 2
M Come posso ottimizzare il posizionamento su Google SEO e Posizionamento 1
S consiglio per ottimizzare copia dati fra diversi DB Database 0
M Ottimizzare la pagina HTML e CSS 1
WorldWideWeb Ottimizzare il sito x motori di ricerca Webdesign e Grafica 6
E Ottimizzare una query PHP 1
D Ottimizzare il sito per le diverse risoluzioni HTML e CSS 0
O Ottimizzare Spacash Presenta il tuo Sito 0
L Come ottimizzare la visione del mio sito? HTML e CSS 1
I Ottimizzare BIOS per ASUS A7V600 Hardware 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

Discussioni simili