Visualizzazione dei risultati da 1 a 10 su 10

Discussione: controllo campi form

  1. #1

    controllo campi form

    Come sempre buon giorno e buon lavoro a tutti. Ho il seguente problema:

    vorrei fare il controllo dei campi email da un form, un controllo molto semplice solo sulla presenza della @ su 6 campi email.

    Per il momento ho fatto così:

    //dopo aver acquisito gli indirizzi dal form riempiendo le variabili $emailmit $email1 $email2 $email3 $email4 $email5

    //pongo una variabile di controllo per visualizzare un messaggio di errore diverso a seconda che i campi non siano compilati o non siano compilati correttamente
    $controllo = "0";

    //if per il controllo che i campi siano compilati e non vuoti
    if (( $emailmit == "" ) || ( $email1 == "" ) || ( $email2 == "" ) || ( $email13 == "" ) || ($email4 == "" ) || ($email5 == "" )){
    $controllo = "1";
    }else
    $controllo = "3";

    //if per controllare che ci sia la @ in tutti i campi
    if (!ereg("@",$emailmit) || !ereg("@",$email1) || !ereg("@",$email2) || !ereg("@",$email3) || !ereg("@",$email4) || !ereg("@",$email5)){
    $controllo = "2";
    }else
    $controllo = "3";
    a questo punto se i campi sono stati compilati correttamente $controllo dovrebbe essere uguale a 3 per cui

    //eseguo le istruzioni
    if ($controllo = "3") {
    ISTRUZIONI
    }

    //scrittura del messaggio di errore o di operazione avvenuta con successo
    if ($controllo = "1") echo ("alcuni campi sono vuoti"); elaseif ($controllo = "2") echo ("non c'è la @"); elseif ($controllo ="3") echo ("ok tutto bene");
    Il problema è che l'unico messaggio che mi appare è quello relativo ad $controllo = "1" e vengono eseguite le istruzioni anche se i campi non sono compliati correttamente
    Viviamo tutti in una palude di fango, ma alcuni di noi guardano le Stelle http://www.comunicareoltre.it

  2. #2
    non mi sono soffermato a leggere per intero il codice ma a colpo d'occhio ho notato che....
    if ($controllo = "3")
    cosi assegni a $controllo il valore 3...
    attenta il confronto lo fai con il seguente operatore
    == (doppio uguale)
    www.bitmade.com Momentan ist richtig_Momentan ist gut_Nicht ist wirklich wichtig_Nach der Ebbe kommt die Flut_ _Am Strand des Lebens_ohne Grund,ohne Verstand_ist nichts vergebens_ich baue di traeume auf den Sand.

  3. #3
    scusa se mi permetto ma se usassi un'espressione regolare per controllare la validità di una mail potresti accorciare notevolmente il codice e sicuramente avresti un controllo piu' valido.
    www.bitmade.com Momentan ist richtig_Momentan ist gut_Nicht ist wirklich wichtig_Nach der Ebbe kommt die Flut_ _Am Strand des Lebens_ohne Grund,ohne Verstand_ist nichts vergebens_ich baue di traeume auf den Sand.

  4. #4
    Mi pare giusto, quindi ho fatto le seguenti modifiche:

    //nella visualizzazione dei messaggi d'errore
    if ($controllo == "0")
    Viviamo tutti in una palude di fango, ma alcuni di noi guardano le Stelle http://www.comunicareoltre.it

  5. #5
    Mi pare giusto, quindi ho fatto le seguenti modifiche:

    //nella visualizzazione dei messaggi d'errore
    if ($controllo == "0")
    echo ("compila tutti i campi");
    elseif ($controllo == "1")
    echo ("ci sono campi vuoti");
    elseif ($controllo == "2");
    echo ("non ci sono le @");
    elseif ($controllo == "3")
    echo ("l\' operazione è andata a buon fine");
    Solo che ora non mi esegue mai le istruzioni ed è come se $controllo fosse sempre == 2
    Viviamo tutti in una palude di fango, ma alcuni di noi guardano le Stelle http://www.comunicareoltre.it

  6. #6
    Non ho idea di cosa sia un'espressione regolare (PRIME ARMI AUTODIDATTA)
    Viviamo tutti in una palude di fango, ma alcuni di noi guardano le Stelle http://www.comunicareoltre.it

  7. #7
    dammi un'attimo che leggo il codice:
    comunque, intanto il test qui sotto è basato su un'espressione regolare e dovrebbe anche funzionare.. .:
    Codice PHP:
    if(!eregi("^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9_-])+.)+[a-z]{2,6}$",$_POST['email'])) {
    echo 
    "e-mail non valida!";
    }
    else
    {
    echo 
    "yesssss!!!!";
    }
    ?> 
    www.bitmade.com Momentan ist richtig_Momentan ist gut_Nicht ist wirklich wichtig_Nach der Ebbe kommt die Flut_ _Am Strand des Lebens_ohne Grund,ohne Verstand_ist nichts vergebens_ich baue di traeume auf den Sand.

  8. #8
    Ho risolto... una distrazione imperdonabile, scusami se ti ho fatto perdere del tempo, prima di copiaincollare il codice con le espressioni regolari che mi hai mandato è bene che impari cosa sono... grazie lo stesso, sempre prezioso
    Viviamo tutti in una palude di fango, ma alcuni di noi guardano le Stelle http://www.comunicareoltre.it

  9. #9
    codice:
    //dopo aver acquisito gli indirizzi dal form riempiendo le variabili $emailmit $email1 $email2 $email3 $email4 $email5 
    
    //pongo una variabile di controllo per visualizzare un messaggio di errore diverso a seconda che i campi non siano compilati o non siano compilati correttamente 
    $controllo = "0"; 
    
    //if per il controllo che i campi siano compilati e non vuoti 
    if (( $emailmit == "" ) || ( $email1 == "" ) || ( $email2 == "" ) || ( $email13 == "" ) || ($email4 == "" ) || ($email5 == "" )){ 
    $controllo = "1"; 
    }else 
    $controllo = "3"; 
    
    //if per controllare che ci sia la @ in tutti i campi 
    if (!ereg("@",$emailmit) || !ereg("@",$email1) || !ereg("@",$email2) || !ereg("@",$email3) || !ereg("@",$email4) || !ereg("@",$email5)){ 
    $controllo = "2"; 
    }else 
    $controllo = "3";
    ...non ci sono le } craffe di chiusura agli else!
    per fare i pignoli togli i doppi apici ai numeri
    in questo modo sei sicura di non incappare, magari in futuro,
    in un confronto stringa
    (che potrebbe diventare ingannevole visto che stai usando dei
    numeri e non il loro corrispettivo valore stringa....e comunque così risparmi al php di convertire il tipo di dato:-)).
    www.bitmade.com Momentan ist richtig_Momentan ist gut_Nicht ist wirklich wichtig_Nach der Ebbe kommt die Flut_ _Am Strand des Lebens_ohne Grund,ohne Verstand_ist nichts vergebens_ich baue di traeume auf den Sand.

  10. #10
    nessun tempo perso, è sempre un piacere...ciao e alla prossima.
    www.bitmade.com Momentan ist richtig_Momentan ist gut_Nicht ist wirklich wichtig_Nach der Ebbe kommt die Flut_ _Am Strand des Lebens_ohne Grund,ohne Verstand_ist nichts vergebens_ich baue di traeume auf den Sand.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.