[PHP] Validazione email e password

Discussione in 'PHP' iniziata da kogaijy, 10 Giugno 2017.

  1. kogaijy

    kogaijy Nuovo Utente

    Registrato:
    19 Gennaio 2011
    Messaggi:
    14
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Salve a tutti. Ho creato un form di registrazione ed ho la necessità di un controllo su email e pass.
    Dovrei controllare se l'email esiste nel database e se il suo formato è corretto (cosi da evitare inserimenti tipo dagtaagaga), per quanto riguarda la pass devo controllare semplicemente che siano uguali. Il tutto dovrebbe restituire dei messaggi di errore in caso di email esistente o pass uguali.

    Al momento sono riuscito a risolvere solamente la convalida della pass con un semplice script javascript.
    Per quanto riguarda la mail non riesco a concludere nulla purtroppo.

    Qualche consiglio? Allego alcune porzioni di codice:

    Con questa gestisco l'inserimento dei campi nel db.
    Codice:
    <?php
    
    if(isset($_POST['user'])&&isset($_POST['pass1'])){
    $pass=md5($_POST['pass1']);
    $user=addslashes(strip_tags($_POST['user']));
    $mail=addslashes(strip_tags($_POST['mail']));
    
    mysql_query("INSERT INTO utenti (nickname, password, mail) VALUES ('$user', '$pass', '$mail')");
    $q = mysql_query("SELECT nickname,password,idutente,master FROM utenti WHERE nickname = '$user'");
    $r = mysql_fetch_array($q, MYSQL_NUM);
    $_SESSION['user']=$r[0];
    $_SESSION['idutente']=$r[2];
    $_SESSION['master']=$r[3];
    $fp = fopen('log/iscrizioni.txt', 'a');   
    fwrite($fp, "[NEW USER] [". date("d/m/Y") ."] [". date("H.i:s") ."] [" . $_SERVER['REMOTE_ADDR'] . "] [".
    
    $_SESSION['user'] ."]\n");
        header("location: home.php");
    }
    
    if (isset($_SESSION['user'])) {
        header("location: home.php");
    }
    
    ?>
    Con questa controllo se le pass sono differenti o meno:
    Codice:
    <script language="Javascript" type="text/javascript">
    <!--
    function testpass(modulo){
    
    
      // Verifico che il campo password sia valorizzato in caso contrario
      // avverto dell'errore tramite un Alert
      if (modulo.pass1.value == ""){
        alert("Errore: inserire una password!")
        modulo.pass1.focus()
        return false
      }
      // Verifico che le due password siano uguali, in caso contrario avverto
      // dell'errore con un Alert
      if (modulo.pass1.value != modulo.pass2.value) {
        alert("La password inserita non coincide con la prima!")
        modulo.pass1.focus()
        modulo.pass1.select()
        return false
      }
      return true
    } 
    
    -->
     
  2. borgo italia

    borgo italia Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    4 Febbraio 2008
    Messaggi:
    16.008
    Mi Piace Ricevuti:
    146
    Punteggio:
    63
    Sesso:
    Maschio
    Località:
    PR
    Home Page:
    ciao
    ti schematizzo
    comunque una cosa abbandona le vecchie istruzioni mysql obsolete e in via di estinzione e passa alle nuove mysqli
    PHP:
    //.......
    $pass=md5($_POST['pass1']);
    $user=addslashes(strip_tags($_POST['user']));
    $mail=$_POST['mail'];
    $mail=filter_var($mail,FILTER_SANITIZE_EMAIL);
    if(!
    filter_var($mailFILTER_VALIDATE_EMAIL)){
        
    //errore, messaggio e rimandi dove vuoi
    }else{
        
    $q=mysqli_query($conn,"SELECT mail FROM utenti WHERE mail='$mail'");
        if(
    mysqli_num_rows($q) > 0){
            
    //email esitente, messaggio e rimandi dove vuoi
        
    }
    }
    $q=mysqli_query($conn,"SELECT password FROM utenti WHERE password='$pass'");
    if(
    mysqli_num_rows($q) > 0){
            
    //password esitente, messaggio e rimandi dove vuoi
    }
    //fai quello che devi fare
     
Sto caricando...

Condividi questa Pagina