• Home
  • Forum
  • Fare Web
  • PHP

Ottimizzare Form PHP

  • Creatore Discussione Creatore Discussione Lord
  • Data di inizio Data di inizio 30 Ott 2012
Prec.
  • 1
  • 2
  • 3
  • 4
  • 5
Primo Prec. 5 di 5
L

Lord

Utente Attivo
30 Ott 2012
60
0
0
  • 17 Dic 2012
  • #81
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.044
150
63
PR
www.borgo-italia.it
  • 17 Dic 2012
  • #82
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}
 
L

Lord

Utente Attivo
30 Ott 2012
60
0
0
  • 17 Dic 2012
  • #83
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.044
150
63
PR
www.borgo-italia.it
  • 17 Dic 2012
  • #84
ciao
Lord ha scritto:
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?
Clicca per allargare...
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
 
L

Lord

Utente Attivo
30 Ott 2012
60
0
0
  • 17 Dic 2012
  • #85
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?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 17 Dic 2012
  • #86
ciao
no
per il resto guardo come si può fare
 
L

Lord

Utente Attivo
30 Ott 2012
60
0
0
  • 18 Dic 2012
  • #87
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.044
150
63
PR
www.borgo-italia.it
  • 18 Dic 2012
  • #88
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
 
L

Lord

Utente Attivo
30 Ott 2012
60
0
0
  • 18 Dic 2012
  • #89
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: 18 Dic 2012
L

Lord

Utente Attivo
30 Ott 2012
60
0
0
  • 29 Dic 2012
  • #90
Salve, piccolo up, con l'occasione vi faccio gli auguri :beer::beer:
 
Prec.
  • 1
  • 2
  • 3
  • 4
  • 5
Primo Prec. 5 di 5
Devi accedere o registrarti per poter rispondere.

Discussioni simili

C
[HTML] come ottimizzare sito web per dispositivi mobili
  • clausius
  • 12 Giu 2017
  • HTML e CSS
Risposte
2
Visite
2K
HTML e CSS 21 Giu 2017
jonnino2004
A
[risolto] Ottimizzare salvataggio dati
  • Asia2810
  • 7 Mar 2014
  • MySQL
Risposte
4
Visite
2K
MySQL 11 Mar 2014
Asia2810
A
A
Ottimizzare di più JOIN su tabella/e da 25.000 records
  • aprescindere
  • 22 Ago 2013
  • MySQL
Risposte
0
Visite
1K
MySQL 22 Ago 2013
aprescindere
A
A
ottimizzare sito per risoluzione 1024x768
  • alessandromonti
  • 20 Apr 2012
  • Webdesign e Grafica
Risposte
0
Visite
2K
Webdesign e Grafica 20 Apr 2012
alessandromonti
A
S
Come ottimizzare il mio sito PHP? Troppe query...
  • siriuxs
  • 20 Mar 2012
  • PHP
Risposte
1
Visite
2K
PHP 20 Mar 2012
Eliox
[MySQL] OPTIMIZE TABLE (ottimizzare una tabella di MySQL)
  • novello88
  • 17 Mar 2012
  • MySQL
Risposte
0
Visite
2K
MySQL 17 Mar 2012
novello88
G
ottimizzare velocemente un immagine per il web??
  • giulio46moto
  • 19 Dic 2011
  • Windows e Software
Risposte
1
Visite
1K
Windows e Software 19 Dic 2011
giulio46moto
G
T
ottimizzare codice
  • torrone
  • 9 Mag 2011
  • PHP
Risposte
2
Visite
1K
PHP 9 Mag 2011
torrone
T
M
Come posso ottimizzare il posizionamento su Google
  • Mauro1971
  • 4 Apr 2011
  • SEO e Posizionamento
Risposte
1
Visite
2K
SEO e Posizionamento 12 Apr 2011
Skipper
S
consiglio per ottimizzare copia dati fra diversi DB
  • sal21
  • 3 Dic 2009
  • Database
Risposte
0
Visite
2K
Database 3 Dic 2009
sal21
S
M
Ottimizzare la pagina
  • mcdigit
  • 6 Nov 2009
  • HTML e CSS
Risposte
1
Visite
1K
HTML e CSS 8 Nov 2009
lotus
L
Ottimizzare il sito x motori di ricerca
  • WorldWideWeb
  • 16 Mag 2008
  • Webdesign e Grafica
Risposte
6
Visite
2K
Webdesign e Grafica 18 Lug 2008
WorldWideWeb
E
Ottimizzare una query
  • etttorina
  • 24 Feb 2008
  • PHP
Risposte
1
Visite
1K
PHP 26 Feb 2008
Eliox
D
Ottimizzare il sito per le diverse risoluzioni
  • dedicato
  • 18 Dic 2007
  • HTML e CSS
Risposte
0
Visite
1K
HTML e CSS 18 Dic 2007
dedicato
D
O
Ottimizzare Spacash
  • orianag
  • 5 Mag 2006
  • Presenta il tuo Sito
Risposte
0
Visite
1K
Presenta il tuo Sito 5 Mag 2006
orianag
O
L
Come ottimizzare la visione del mio sito?
  • linux
  • 25 Nov 2005
  • HTML e CSS
Risposte
1
Visite
1K
HTML e CSS 28 Nov 2005
dead
D
I
Ottimizzare BIOS per ASUS A7V600
  • ivaneffect
  • 2 Ott 2004
  • Hardware
Risposte
0
Visite
3K
Hardware 2 Ott 2004
ivaneffect
I
F
Salve a tutti, devo creare un sito web/gioco online dove cliccando il tasto 'Inizia' del form viene estratta una capitale casualmente dal
  • faccone
  • 8 Mag 2024
  • PHP
Risposte
1
Visite
1K
PHP 23 Apr 2025
webest
G
campo non presente nel form
  • Gae
  • 7 Mag 2024
  • Javascript
Risposte
2
Visite
3K
Javascript 8 Mag 2024
Gae
G
S
passare un valore da un form a un file .php con metodo post
  • smack2005
  • 15 Nov 2023
  • PHP
Risposte
4
Visite
1K
PHP 23 Nov 2023
zorro
Condividi:
Facebook X (Twitter) LinkedIn WhatsApp e-mail Condividi Link
  • Home
  • Forum
  • Fare Web
  • PHP
  • Italiano
  • Termini e condizioni d'uso del sito
  • Policy Privacy
  • Aiuto
  • Home
Community platform by XenForo® © 2010-2024 XenForo Ltd. | Traduzione a cura di XenForo Italia
Menu
Accedi

Registrati

  • Home
  • Forum
    • Nuovi Messaggi
    • Cerca...
  • Novità
    • Featured content
    • Nuovi Messaggi
    • Ultime Attività
X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?

X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?