Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2016
    residenza
    Italy
    Messaggi
    78

    Problema passaggio azione ad un form

    Ciao a tutti!!

    Sto realizzando per il mio sito, utilizzando Laravel, un semplice sistema di registrazione e login degli utenti.
    In pratica ho un form di registrazione in cui l'utente inserisce nome, cognome, email e password, con e email e password campi doppi in modo tale da verificare la correttezza dell'inserimento.
    Adesso per fare questa verifica ho realizzato nel mio controller Autenticazione, una funzione checkregister, per verificare se le email coincidano, così come le password.
    Come posso far si che il form di registrazione, alla pressione del bottone registrati richiami la funzione checkregister del controller?
    Le sto provando tutte ma non ne vengo a capo, so che forse è una cosa banale.
    Questo è il mio codice del form:
    codice:
    <form method="post" class="tm-contact-form">
                                    <div class="form-group col-xs-12 col-sm-12 col-md-6 col-lg-6 col-xl-6 tm-form-group-left">
                                        <label>Nome </label>
                                        <input type="text" name="name" class="form-control" placeholder="name" required="true">
                                    </div>
                                    <div class="form-group col-xs-12 col-sm-12 col-md-6 col-lg-6 col-xl-6 tm-form-group-left">
                                        <label>Cognome </label>
                                        <input type="text" name="surame" class="form-control" placeholder="surname" required="true">
                                    </div>                                
                                    <div class="form-group col-xs-12 col-sm-12 col-md-6 col-lg-6 col-xl-6 tm-form-group-left">
                                        <label>Inserisici email</label>
                                        <input type="email" name="email" class="form-control" placeholder="email" required="true" id="em">
                                        
                                    </div>
                                    <div class="form-group col-xs-12 col-sm-12 col-md-6 col-lg-6 col-xl-6 tm-form-group-left">
                                        <label>Conferma email</label>
                                        <input type="email" name="email1" class="form-control" placeholder="email" required="true" id="em1">
                                       
                                    </div>
                                    <div class="form-group col-xs-12 col-sm-12 col-md-6 col-lg-6 col-xl-6 tm-form-group-right">
                                        <label>Inserisci la password</label>
                                        <input type="password" name="password" class="form-control" placeholder="password" required="true" id="psw">
                                       
                                    </div>
                                    <div class="form-group col-xs-12 col-sm-12 col-md-6 col-lg-6 col-xl-6 tm-form-group-right">
                                        <label>Conferma la password</label>
                                        <input type="password" name="password1" class="form-control" placeholder="password" required="true" id="psw1">
                                    </div>
                                    
                                    <button type="submit" name="registrati" class="btn tm-light-blue-bordered-btn pull-xs-right" value="register">Registrati</button> 
    </form>

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    11,631
    Stai utilizzando Laravel, perché non usi il sistema di autenticazione che ti mette a disposizione? A che serve crearne uno tuo?

    php artisan make:auth

    e sei a posto, funziona tutto (recupero password compreso), dovrai solo aggiungere i campi in più che ti servono.

    Comunque non devi usare una funzione da chiamare nel controller, devi scrivere una Request custom

    nella quale scriverai le varie regole di validazione e che passerai come parametro al controller che riceve i dati del form.
    Sarà poi nel metodo rules() di questa Request che dovrai chiamare la tua regola di validazione che dovrai realizzare seguendo i dettami del framework per le regole custom.
    Ultima modifica di Alhazred; 26-04-2019 a 13:52

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2016
    residenza
    Italy
    Messaggi
    78
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Stai utilizzando Laravel, perché non usi il sistema di autenticazione che ti mette a disposizione? A che serve crearne uno tuo?

    php artisan make:auth

    e sei a posto, funziona tutto (recupero password compreso), dovrai solo aggiungere i campi in più che ti servono.

    Comunque non devi usare una funzione da chiamare nel controller, devi scrivere una Request custom

    nella quale scriverai le varie regole di validazione e che passerai come parametro al controller che riceve i dati del form.
    Sarà poi nel metodo rules() di questa Request che dovrai chiamare la tua regola di validazione che dovrai realizzare seguendo i dettami del framework per le regole custom.
    Ciao Alhazred, innanzitutto grazie per la risposta!!
    Non stavo usando quello integrato Laravel perché essendo un progetto universitario volevo cimentarmi io nella creazione del sistema di autenticazione, sinceramente questo che ho utilizzato l'ho preso da un tutorial YouTube riguardo Laravel e l'autenticazione.
    Dici sia comunque più semplice utilizzare l'autenticazione messa a disposizione da Laravel?

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    11,631
    Certo che è più semplice, esegui il comando che ti ho scritto ed è già funzionante e testato, non devi scrivere una riga di codice se non hai esigenze particolari.
    Poi se devi fare modifiche importanti, c'è la possibilità di dover spulciare un po' tra le varie classi e trait che vengono utilizzate.

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2016
    residenza
    Italy
    Messaggi
    78
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Certo che è più semplice, esegui il comando che ti ho scritto ed è già funzionante e testato, non devi scrivere una riga di codice se non hai esigenze particolari.
    Poi se devi fare modifiche importanti, c'è la possibilità di dover spulciare un po' tra le varie classi e trait che vengono utilizzate.
    Grazie mille, allora andrò subito a provarlo.
    Solo un dubbio, nei controller della cartella Auth, che ho, sono presenti pochi metodi, bastano quelli?

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    11,631
    Se hai usato il comando che ti ho scritto sopra, è tutto al suo posto, devi solo eseguire
    php artisan migrate
    per creare le tabelle nel db comprese quelle necessarie all'autenticazione

    Vedi poche cose perché se ci fai caso nei controller vengono importati diversi trait, tipo RegistersUsers in RegisterController.php o AuthenticatesUsers in LoginController.php che a loro volta includono altre classi... e parte del lavoro viene fatto lì.

    Qual'ora dovessi aver necessità di modificare il comportamento di qualche metodo, fanne l'override nel controller, non modificare i trait importati, quelli fanno parte del core di Laravel e in caso di aggiornamenti ti perderesti le modifiche.
    Ultima modifica di Alhazred; 27-04-2019 a 11:12

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2016
    residenza
    Italy
    Messaggi
    78
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Se hai usato il comando che ti ho scritto sopra, è tutto al suo posto, devi solo eseguire
    php artisan migrate
    per creare le tabelle nel db comprese quelle necessarie all'autenticazione

    Vedi poche cose perché se ci fai caso nei controller vengono importati diversi trait, tipo RegistersUsers in RegisterController.php o AuthenticatesUsers in LoginController.php che a loro volta includono altre classi... e parte del lavoro viene fatto lì.

    Qual'ora dovessi aver necessità di modificare il comportamento di qualche metodo, fanne l'override nel controller, non modificare i trait importati, quelli fanno parte del core di Laravel e in caso di aggiornamenti ti perderesti le modifiche.
    Ciao Alhazred, ho seguito il tuo consiglio e alla fine ho scelto di utilizzare il login messo a disposizione da Laravel e funziona, ma ho ancora un problema.
    Per effettuare il reset password ho bisogno di creare una tabella sul db, chiamata 'password_resets' di default laravel, ma se provo a fare il comando migrate o richiamarla specificamente, dal cmd ottengo come risposta: nulla da migrare, nonostante la function up() della migration sia quella fornita da laravel:

    codice:
    public function up()
    {
         $table->string('email')->index();
         $table->string('token');
         $table->timestamp('created_at')->nullable();
    }
    Potrei crearla direttamente da codice SQL eseguendo una query? come posso passarlo come indice l'email?

  8. #8
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    11,631
    php artisan migrate:fresh

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2016
    residenza
    Italy
    Messaggi
    78
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    php artisan migrate:fresh
    Ho provato anche questo comando, che non mi riconosce laravel, ma anche provando il php artisan migrate:refresh non ottengo nulla, se non un messaggio in cui dice nulla da migrare.
    Ho provato con il rollback e poi di nuovo a migrare e nulla.
    Stavo pensando di creare manualmente la tabella da una query SQL, come indico che voglio indicizzare il campo email?

  10. #10
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    11,631
    Cancella manualmente il contenuto del database, per esempio da phpmyadmin, così togli la tabella delle migrazioni, poi ridai il comando migrate.

    P.S. se il file per creare la tabella degli utenti contiene solo quelle 3 righe che hai riportato sopra, allora non è corretta, dovrebbe essere così
    Codice PHP:
    public function up()
    {
        
    Schema::create('users', function (Blueprint $table) {
            
    $table->bigIncrements('id');
            
    $table->string('name');
            
    $table->string('email')->unique();
            
    $table->timestamp('email_verified_at')->nullable();
            
    $table->string('password');
            
    $table->rememberToken();
            
    $table->timestamps();
        });


Tag per questa discussione

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