Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    9

    Validazione e controllo email e pass

    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:

    <?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($qMYSQL_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, anche se non mi dispiacerebbe evitare javascript e fare tutto in php.

    codice:
    
    
    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. #2
    Ciao, io sono riuscito ad assemblare ( taglia incolla e suggerimenti vari) un form con un modulo di registrazione abbastanza complesso, tutto il lavoro di validazione e' fatto con jScript, un plugin davvero semplice ma molto, molto flessibile e potente.

    Sulla prima versione utilizzavo solo PHP per la validazione ma poi, scoperto questo plugin sono passato ad un sistema composto da un form HTML e uno in PHP dove eseguo solo la registrazione (potevo usare un solo form ma cosi' la manutenzione e' piu' semplice.

    Se ti interessa guarda questo sito : https://jqueryvalidation.org/, spero possa esserti utile. Ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    9
    Grazie per la dritta, cercherò di adattarlo alle mie necessità

  4. #4
    Uhm, ci sono alcune cose che non mi sono chiare, ma ti proporrei di seguire questa logica:

    1) Prima di tutto, fai fare ad HTML quello che può fare HTML: esistono appositi attributi per indicare che un input è obbligatorio (tipicamente l'attributo required), vanno usati invece di cercare di scomodare javascript o php. Questo vale anche per il campo email: usa <input type="email"> per il campo email.

    2) SEPARA in modo chiaro la parte di codice che inserisce un nuovo utente da quella che verifica se l'utente esiste e/o ha dato la password giusta; forse holetto male io perchè è tardi, ma ho l'impressione che il tuo codice priaminserisca l'utente e poi immediatamente dopo lo vada a rileggere, non ha tanto senso... O l'utente si sta registrando, allora lo salvi in db e sei già sicuro che esiste e ti ha dato la password giusta (è giusta per definizione, l'ha appena scelta!) O stai verificando se esiste già un utente e allora verifichi se ha dato la password corretta.

    3) NON usare più le funzioni mysql, usa SOLO le mysqli, visto che le mysql sono già state eliminate da php7.

    4) NON usare MD5 per proteggere la password, è già parecchio tempo che non è più tanto efficace: guarda le funzioni password_verify e sorelle, sono molto più sicure.

    5) ASSOLUTAMENTE cerca di dire il minimo possibile quando le cose vanno storte: per capirci, se qualcuno ti dà username e password corrette, sei sicuro che sia lui, chiunque non lo faccia potrebbe essere un malintenzionato, quindi se la password è errata, NON scrivere assolutamente "la password è errata" ma scrivi invece "username O password errate"; la stessa cosa vale per un username errato: NON scrivere "username errato", scrivi di nuovo "username o password errate"; in questo modo sarà più difficile capire quali siano le username valide per il tuo sistema.

    6) per proteggere il tuo codice dalle SQL injections, usa mysqli_real_escape e non addslashes o strip_tags.

    7) Per validare lo username, la mail o altro in php, prendi in cosiderazione filter_var e le altre funzioni della libreria di filter.
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

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.