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

    Controllo registrazione

    Ciao a tutti,come faccio a fare in modo che gli utenti possano compilare i campi per la registrazione solo inserendo minimo 8 caratteri e solo numeri,lettere e questi 2 trattatini - _


    Questa è la pagina:

    Codice PHP:
    <?php
    $dbhost
    ="localhost";
    $dbuser="beamanager";
    $dbpass="";
    $conn=mysql_connect($dbhost,$dbuser,$dbpass);

    $dbname="my_beamanager";
    mysql_select_db($dbname,$conn) or die("Erroe nella connessione");

    function 
    filtro_db($stringa

        
    $stringa trim ($stringa); 
        if(empty(
    $stringa)) 
        { 
            return 
    FALSE
        } 
        else if(
    get_magic_quotes_gpc()) 
        { 
            
    stripslashes($stringa); 
        } 
        return 
    mysql_real_escape_string($stringa); 


    $user filtro_db($_POST['user']); 
    $pass filtro_db($_POST['pass']);   
    $mail filtro_db($_POST['mail']);   
    $manager filtro_db($_POST['manager']);   
    $team filtro_db($_POST['team']);   
    //controllo se i campi sono vuoti 
    if(!$user || !$pass || !$mail || !$manager || !$team)   
        { 
            
    header("location:error1.php"); 
            exit; 
        } 
    //controllo che la mail sia scritta in modo corretto 
    if (!ereg("^[a-z0-9][_.a-z0-9-]+@([a-z0-9][0-9a-z-]+.)+([a-z]{2,4})",$mail)) 
        { 
            
    header("location:error3.php"); 
            exit; 
        } 
    //verifico se ci sono utenti con lo stesso user o email 
    $query_1=mysql_query("SELECT * FROM iscritti WHERE email='".$mail."' or nickname='".$user."'"
    or die(
    "errore nella query;".mysql_error()); 
    $num=mysql_num_rows($query_1); 
    //se ci sono campi gia occupati 
    if($num 0

    header("location:error2.php"); 
    exit; 

    //altrimenti procedo con l'inserimento 
    else 

    $query_insert=mysql_query("INSERT INTO iscritti 
    (nickname, password, email, manager, team) 
    VALUES 
    ('
    $user', '$pass', '$mail', '$manager', 
    '
    $team')")or die("errore nella query;".mysql_error()); 

    $query_insert=mysql_query("INSERT INTO squadra 
    (manager, team, punti, livello, cash) 
    VALUES 
    ('
    $manager', '$team', '0', 'Amateur League', '10000000 Coins')")or die("errore nella query;".mysql_error()); 

    header("location:reg_success.php"); 

    function 
    mostra_form() 

    if(isset(
    $_GET['msg'])) 
    echo 
    '[b]'.htmlentities($_GET['msg']).'[/b]

    '

    }
    }
    ?>

  2. #2
    Devi utilizzare sicuramente un regex, ma sinceramente non saprei quale

  3. #3
    Ok,provo a vedere se trovo qualcosa!

  4. #4
    Ho provato a leggere un articolo ma non capisco bene come utilizzare un regex con php,puoi farmi un esempio banale?

  5. #5
    Qui ne trovi quante ne vuoi..spesso mi è tornato utile

    http://fido.altervista.org/RegExp/metacar1.html

  6. #6

    Re: Controllo registrazione

    Questo è lo script che ti diedi io... modificato...

    Anzitutto la cosa più lampante che ho visto è che fare due query dove due campi sono in comune è sbagliato... dovresti creare due tabelle e relazionarle in base al campo id della tabella iscritti:
    Codice PHP:
    $query_insert=mysql_query("INSERT INTO iscritti 
    (nickname, password, email, manager, team) 
    VALUES 
    ('
    $user', '$pass', '$mail', '$manager', 
    '
    $team')")or die("errore nella query;".mysql_error()); 

    $query_insert=mysql_query("INSERT INTO squadra 
    (manager, team, punti, livello, cash) 
    VALUES 
    ('
    $manager', '$team', '0', 'Amateur League', '10000000 Coins')")or die("errore nella query;".mysql_error()); 
    Per qual che concerne la validazione dei campi ti dico ciò che farei io:

    - i campi dovrebbero avere una lunghezza decente almeno 6 caratteri e massima di 15 e tale controllo lo si può fare con la funzione strlen()
    - poi devi controllare i campi (ad eccezione dell'email) contengano solo lettere (maiuscole e minuscole) e numeri.

    Questo è il minimo sindacale... ti dò anche l'espressione và...
    Codice PHP:
    if(!preg_match('/^[A-Za-z0-9]{6,15}$/',$campo)) 

  7. #7
    Grazie a entrambi!

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.