Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    pagina registrazione con mail contenente link di attivazione profilo

    salve ragazzi,

    io vorrei fare un form di registrazione, dove quando si clicca su "Registrati", viene sì inserito il nuovo record, ma allo stesso tempo viene inviata la mail con il link di attivazione del profilo.

    Mi è stato detto che per permettere l'attivazione/disattivazione del profilo, basta creare un campo booleano chiamato "status", che assumerà il valore 1 cliccando sul link nella mail che viene inviata.

    Qual'è il codice da aggiungere, per la parte relativa all'attivazione del profilo tramite link nella mail?

    io sono arrivato qui, alla INSERT:

    if($num == 0) {

    mysql_query("INSERT INTO iscritti VALUES('', '$user', '$password', '$email', '$nome', '$cognome', '$sesso', '$data_nascita')");
    echo "La tua registrazione ha avuto buon fine. Benvenuto.<br><a href=index.php>Vai alla home</a>";

    } else {

    echo "La username è già stata scelta. Riprova<br><a href=registrazione.php>Indietro</a>";
    }

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Non devi fare tutto insieme, perché la registrazione e la conferma sono 2 operazioni separate.
    Quando l'utente si registra inserisci il record nel DB impostando il campo "status" pari a 0, inoltre prevedi un altro campo di tipo varchar chiamato ad esempio "regid" in cui salvi un codice casuale (diverso per ogni utente).
    Oltre al salvataggio sul DB, la funzione di registrazione invierà un'email all'utente, l'email conterrà il testo che ti pare ed un link del tipo

    http://www.sito.tld/conferma.php?regid=.....

    e come valore di regid ci metterai lo stesso codice che hai salvato nel db.

    Adesso devi avere uno script all'interno del file conferma.php (ovviamente puoi chiamarlo come ti pare, basta che sia uguale a quello del link), il quale legge il parametro regid, va a cercarlo nel DB e se lo trova mette "status" pari a 1 al record trovato.

  3. #3
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Consiglio di generare un codice univoco casuale composto da cifre e lettere non un semplice id numerico.
    Esempio FHGHYFVIIIGUUTFU13gutctuhip5?78567Fgg456hujveu
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  4. #4
    Si potrebbe anche prendere l' ultimo id della riga inserita? Ovviamente bloccando la tabella al momento dell' inserimento del nuovo utente?

  5. #5
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Non devi fare tutto insieme, perché la registrazione e la conferma sono 2 operazioni separate.
    Quando l'utente si registra inserisci il record nel DB impostando il campo "status" pari a 0, inoltre prevedi un altro campo di tipo varchar chiamato ad esempio "regid" in cui salvi un codice casuale (diverso per ogni utente).
    Oltre al salvataggio sul DB, la funzione di registrazione invierà un'email all'utente, l'email conterrà il testo che ti pare ed un link del tipo

    http://www.sito.tld/conferma.php?regid=.....

    e come valore di regid ci metterai lo stesso codice che hai salvato nel db.

    Adesso devi avere uno script all'interno del file conferma.php (ovviamente puoi chiamarlo come ti pare, basta che sia uguale a quello del link), il quale legge il parametro regid, va a cercarlo nel DB e se lo trova mette "status" pari a 1 al record trovato.
    ok..dimmi se ho capito bene.


    Io ho 2 pagine, una con lo script di registrazione e l'altra dove c'è la conferma.


    In registrazione.php devo modificare la query di INSERT, aggiungendo l'immissione per il campo “status” con valore predefinito 0 , e per il campo reg_id un valore generato casualmente.
    Può andare la INSERT così modificata come qui sotto?






    if ($num == 0) {
    mysql_query("INSERT INTO iscritti VALUES('', '$user', '$password', '$email', '$nome', '$cognome', '$sesso', '$data_nascita', '0', $reg_id)");


    echo "La tua registrazione ha avuto buon fine. Benvenuto.<br><a href=index.php>Vai alla home</a>";
    } else {
    echo "La username è già stata scelta. Riprova<br><a href=registrazione.php>Indietro</a>";
    }






    Mi potresti scrivere lo script che mi genera questo codice casuale? Questo script va poi in registrazione.php ?


    Una volta creatosi il record viene inviata automaticamente una mail contenente il link http://www.sito.tld/conferma.php?regid=..... dove il valore di regid sarà quello generato a caso.


    Questo link poi chiama la pagina conferma.php , la quale confronta il valore passatole via $_GET con quello del campo reg_id del record appena creato, e se coincide, ci sarà una query UPDATE per il campo status che cambierà il valore in 1.


    Ho capito bene?

  6. #6
    Utente di HTML.it L'avatar di .Kurt
    Registrato dal
    Jul 2007
    Messaggi
    654
    Mi potresti scrivere lo script che mi genera questo codice casuale?
    Puoi avvalerti di uniqid http://php.net/manual/en/function.uniqid.php per raggiungere lo scopo.

    Ho capito bene?
    Sembra di si.

  7. #7
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Non devi fare tutto insieme, perché la registrazione e la conferma sono 2 operazioni separate.
    Quando l'utente si registra inserisci il record nel DB impostando il campo "status" pari a 0, inoltre prevedi un altro campo di tipo varchar chiamato ad esempio "regid" in cui salvi un codice casuale (diverso per ogni utente).
    Oltre al salvataggio sul DB, la funzione di registrazione invierà un'email all'utente, l'email conterrà il testo che ti pare ed un link del tipo

    http://www.sito.tld/conferma.php?regid=.....

    e come valore di regid ci metterai lo stesso codice che hai salvato nel db.

    Adesso devi avere uno script all'interno del file conferma.php (ovviamente puoi chiamarlo come ti pare, basta che sia uguale a quello del link), il quale legge il parametro regid, va a cercarlo nel DB e se lo trova mette "status" pari a 1 al record trovato.
    mi potresti dare lo script per generare il valore casuale? sono ancora all'inizio col PHP.. grazie

  8. #8
    codice:
    <?php
    print uniqid();
    ?>

  9. #9
    Quote Originariamente inviata da camionistaxcaso Visualizza il messaggio
    codice:
    <?php
    print uniqid();
    ?>
    si ok, io però mi riferivo al codice dello script..ragazzi se c'è qualcuno che mi può aiutare..

    cerco quello script dove nella generazione del codice random, si impostano tutti i caratteri che vuoi, tipo:

    $a = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw xyz0123456789';

    HELP!!!

  10. #10
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Puoi fare cosi.

    Codice PHP:
    <?php
    function idCrypt($nb_char) {
     
    $randval "";
     
    $str     'abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
     
    $length  strlen($str);
     
    mt_srand();
     for (
    $i=1;$i<=$nb_char;$i++) {
      
    $pos       mt_rand(0,$length-1);
     
    $randval  .= substr($str $pos);
     }
     return 
    $randval;
    // function idCrypt()
    print idCrypt(30);
    print 
    "<br/>"
    print 
    idCrypt(30);
    print 
    "<br/>"
    print 
    idCrypt(30);
    print 
    "<br/>"
    print 
    idCrypt(30);
    print 
    "<br/>"
    print 
    idCrypt(30);
    print 
    "<br/>"
    ?>
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

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.