Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    controllo campo nick_name

    Ciao nulla da fare posto il codice compreso di html se qualcuno riesce a testarlo ed a trovare l'errore..
    mi dite come si controlla sia a dx che a sx per a sx funziona il problema è a dx...tipo "?()pippo" mi da errore ma se scrivo "pippo?()" me la prende per buono...

    codice:
    <? 
                     
    				 function CheckReg1() { 
                     $errori = array(); 
                     
    				 $nome_utente = $_POST["nome_utente"]; 
                     if ($nome_utente == ""){ 
    				 $errori[0] = "Il Nick ame è obbligatorio"; 
                     } 
                     else if (strlen(trim($nome_utente)) < 6){ 
                     $errori[0] = "Il Nick Name non deve essere inferiore a sei caratteri"; 
                     } 
    				 //else if (!eregi("^[:punct:]", $nome_utente)) { 
    
                     else if (!eregi("^[\'+\\./0-9A-Z^_\`a-z{|}~\-]", $nome_utente)) {
                     $errori[0] ="caratteri invalidi"; 
                     } 
    				 
    				 $password = $_POST["password"]; 
    				 if ($password == "") $errori[1] = "Il campo password è obbligatorio";
    				 else if (strlen(trim($password)) < 6){ 
                     $errori[1] = "La password non deve essere inferiore a sei caratteri"; 
                     } 
    
                     $email = $_POST["email"]; 
                     if ($email == "" ) $errori[2] ="L'indirizzo E-mail è obbligatorio"; 
                     else if (!eregi("^[\'+\\./0-9A-Z^_\`a-z{|}~\-]+@[a-zA-Z0-9_\-]+(\.[a-zA-Z0-9_\-]+){1,3}$", $email)) { 
                     $errori[2] ="E-mail inserita è invalida
    "; 
                     } 
                     
                     return $errori;
                     } 
    
    $errori = CheckReg1();
    ?>
    
    <html>
    <head>
    <title> test </title>
    
    </head>
    
    <body>
    
    <form method="post" action=<?=$php_self?>>
    <table cellspacing="3" cellpadding="0" border="0">
         <tr>
    	     <td>Nick Name:</td>
    		 <td><input  type="text" name="nome_utente" value="<? echo $nome_utente ?>" />
    		 <font color="red"> <? echo $errori[0]?>
    
    
    		 <input class="h12" type="submit" value="Continua l'iscrizione..">
    		 </td>
         </tr>
    <table>
    </form>
    
    
    
    </body>
    </html>

  2. #2
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    prova con:

    codice:
    else if (!eregi("^['+\\./0-9A-Z^_\`a-z{|}~\-]{1,}$", $nome_utente)) {
    	$errori[0] ="caratteri invalidi"; 
    }
    think simple think ringo

  3. #3
    Grazie Marketto, nulla da fare, le ho provate tutte, ho visto anche su phpbuilder, tramite il quale ero arrivato alle conclusioni che ti riporto. L'unica che mi soddisfa fino ad ora è questa:

    codice:
    else if (!eregi("(^[a-z]+)*([0-9])$", $nome_utente)){
    il problema che questa funziona male non riesco a trovare la giusta combinazione... cioè il risultato è "123pippo" mi da errore "pippo123" mi funziona quindi va bene se inserisco "123450" lo prende e non va bene, questa esclude anche i caratteri speciali.
    Le regole sono quelle standard di una registrazione utente normale, quindi esclusione inserimento caratteri speciali, il nome deve iniziare per lettera ma può finire anche per numero... almeno 4 le prime lettere.

    la funzione che mi hai postato tu va bene ma funziona al contrario di come mi serve...

  4. #4
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    "^([a-zA-Z]{4})([a-zA-Z0-9'\+\\\./\^_\`\{\|\}~\-]*)([a-zA-Z0-9]{1})$"

    speriamo sia la volta buona
    questa regexp dovrebbe funzionare così:
    ([a-zA-Z]{4}) i primi 4 caratteri possono solo essere lettere;
    ([a-zA-Z0-9'\+\\\./\^_\-\`\{\|\}~]*) in mezzo puoi avere lettere maiuscole o minuscole, numeri e questi caratteri ' + \ . / ^_ - ` { | } ~ ripetuti 0 o più volte;
    ([a-zA-Z0-9]{1}) l'ultimo carattere può essere solo una lettera od un numero.

    se vuoi che il nome possa finire anche con un carattere speciale di quelli permessi devi usare qst regexp:
    "^([a-zA-Z]{4})([a-zA-Z0-9'\+\\\./\^_\`\{\|\}~\-]*)$"
    think simple think ringo

  5. #5
    grazie Marketto ero arrivato alla stessa conclusione dopo una notte insonne a pensare...

    codice:
    else if (!eregi("^([a-zA-Z]{3})([a-zA-Z0-9]*)$", $nome_utente)) {

  6. #6
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    Originariamente inviato da kamaleonte72
    grazie Marketto ero arrivato alla stessa conclusione dopo una notte insonne a pensare...

    codice:
    else if (!eregi("^([a-zA-Z]{3})([a-zA-Z0-9]*)$", $nome_utente)) {
    così xò nn permetti nessun tipo di carattere speciale, non ti servono +??



    think simple think ringo

  7. #7
    no Marketto, nel post precedente lo avevo scritto:
    Le regole sono quelle standard di una registrazione utente normale, quindi esclusione inserimento caratteri speciali, il nome deve iniziare per lettera ma può finire anche per numero... almeno 4 le prime lettere

    nomi corretti: "pippo" "pippo123"

    nomi scorretti: "123pippo" "pippo/())12" "/()?pippo"

    quindi necessita l'esclusione dei caratteri speciali

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 © 2024 vBulletin Solutions, Inc. All rights reserved.