Visualizzazione risultati 1 fino 4 di 4

Discussione: Problemi in fase di creazione della pagina per registrarsi

  1. #1
    Data registrazione
    16-05-2017
    Messaggi
    6

    Predefinito Problemi in fase di creazione della pagina per registrarsi

    Salve non riesco a fare in modo che gli errori commessi dall'utente in fase di registrazione vengano segnalati senza ricaricare la pagina, mi spiego meglio vorrei che se ad esempio l'utente nel momento in cui reinserisce la password per confermala, nel caso in cui questa con coincida con la prima inserita esca scritto che le password non coincidono immediatamente senza ricaricare la pagina oppure se questo è molto complicato potrebbe anche uscire una finestra d'allerta (tipo l'alert di js per intenderci) che segnali l'errore e nel momento in cui si chiude la finestra si rimanga sempre sulla stessa pagina o si ricarichi la pagina stessa, riuscite ad aiutarmi?
    Avevo pensato a qualcosa di simile

    registrazioneScript.php
    Codice PHP:
    ...
    $pass=$_GET['pass']
    $passContr=$_GET['passContr']
    $nickname=$_GET['nick']
    if(
    $pass!==$passContr)
    {
      echo 
    "<script language=\"text\javascript>\""
      
    echo "window.alert(\"Le password che hai immesso non coincidono\")"
      
    echo "</script>"

    elseif (!
    mysql_num_row(mysql_query('SELECT * FROM Utenti WHERE Nickname=$nickname')))
    {
      echo 
    "<script language=\"text\javascript>\""
      
    echo "window.alert(\"Nickname già in uso\")"
      
    echo "</script>"
    }
    else 
    {
    ...
    //si prosegue con l'inserimento dei dati nel DB
    }
    ... 
    Signup.html
    Codice HTML:
    ...
    <form name="signup" action="registrazioneScript.php" method="GET">
    ...//tutte le caselle di testo
    <input type="submit">
    </form>
    ...
    Ma non mi si apre l'alert e soprattutto se non sbaglio quando l'utente chiude la finestra d'allerta in questo modi gli si carica una pagina bianca mentre invece deve rimanere su la pagina Signup.html
    Ultima modifica di brand1234567891123456789 : 18-05-2017 alle ore 12.31.16

  2. #2
    mzanella non è connesso Altervistiano Junior
    Data registrazione
    29-12-2015
    Messaggi
    710

    Predefinito

    Devi usare JavaScript nella pagina con il form. Essendo un controllo lato client, PHP non c'entra nulla (è comunque buona norma controllare comunque che le password corrispondano lato server).

    Puoi ottenere quello che ti serve registrando un event listener per la casella conferma password, ad esempio on change oppure on blur, in modo che JavaScript controlli se le password sono uguali e mostri un avviso di conseguenza.

  3. #3
    Data registrazione
    16-05-2017
    Messaggi
    6

    Predefinito

    Avevo pensato anche a questa opzione ma l'avevo scartata perché non riuscivo a far scrivere sulla pagine il tipo di errore commesso, suggerimenti su come muovermi?

  4. #4
    mzanella non è connesso Altervistiano Junior
    Data registrazione
    29-12-2015
    Messaggi
    710

    Predefinito

    Il primo suggerimento è usare jQuery, aiuta molto in questo genere di operazioni.

    Dopodiché avrai bisogno di assegnare un id alle caselle per la password, ad esempio:
    Codice HTML:
    <form ...>
      ...
      <input type="password" name="pass" id="password" required>
      <input type="password" name="passContr" id="password_check" required>
      ...
    </form>
    Quindi definisci in JavaScript una funzione che acceda alle caselle, controlli le password e mostri un messaggio di errore in caso di mancata corrispondenza, ad esempio nella console del browser:
    Codice HTML:
    <script>
      function check_password() {
        var password_field = $('#password');
        var password_check_field = $('#password_check');
    
        if (password_field.val() != password_check_field.val()) {
          console.log("Le password non corrispondono.");
          // alert("Le password non corrispondono.");
        }
      }
    </script>
    Infine registra un event listener in modo che il controllo parta, ad esempio appena la casella conferma password perde il focus:
    Codice HTML:
    <script>
      $(function () {
        $('#password_check').blur(check_password);
      });
    </script>

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •