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

    Generare una password causale per conferma iscrizione

    Ciao ragazzi,

    sto cercando di realizzare un sistema che mi permetta tramite un link, che viene inviato tramite E-mail, di effettuare una conferma all'iscrizione dell'utente. Cioè l'utente effettua la sua registrazione, i dati vengono memorizzati nel DB, ma l' account creato non viene impostato come attivo, ma per renderlo attivo è necessaria una conferma tramite E-mail.

    Per fare questa conferma avevo pensato di far generare una pass causale ed inviarla tramite E-mail. Poi tramite un link che punta per esempio alla pagina conferma.php, verifico la pass, con quella memorizzata al momento dell'iscrizione nel DB, e se esse coincidono confermo l'iscrizione e poi cancello la pass dal DB.
    Cioè vorrei che nell'E-mail ci fosse un link per la conferma di questo tipo:

    www.miosito.it/conferma.php?ID=$id&conferma=pass_causale

    In particolare io vorrei che la password causale venisse creata in automatico da uno script e nello stesso tempo preferirei (per motivi di sicurezza) che essa sia criptata.

    Quindi le mie domande sono:

    1) Come posso procedere per la realizzazione di uno script che genera una pass causale?

    2) Come faccio a criptare la password generata mediante lo script precedente?

    3) Secondo voi (io sono un neofita con PHP) questo modo di procedere è giusto?? Oppure esiste qualche altro metodo per effettuare la conferma alla registrazione?

    Ciao a tutti e grazie

  2. #2
    1) se fia una ricerca nel forum trovi 3.000 post in cui si parla di generazione di stringhe random

    2) www.php.net/md5 una funzione di hash non reversibile.. quindi devresti confrontare la stringa che arriva alla pagina con l'md5 della password che hai memorizzata

    3) Per funzionare funziona... però non capisco perchè criptare una password random temporanea.. nè capisco l'utilità della password temporanea. Se vuoi generare tu la password [è un buon metodo], mantienila nel database e al limite dai all'utente la possibilità di cambiarla.

    Un metodo alternativo, se vuoi far scegliere la password all'utente direttamente al momento dell'iscrizione, è passare alla pagina l'id e l'md5 dell'id + una parola segreta che conosci solo tu ma è uguale per tutti.. in questo modo l'utente malizioso che volesse attivare un account "falso" (cioè con l'email errata) non potrebbe cercare di attivarlo conoscendo solo l'id.. perchè innanzitutto deve capire che il secondo parametro è una stringa md5, ed infine pur capendolo non conoscerebbe la tua "password" con cui, assieme all'id (per non avere sempre l'md5 uguale) generi la stringa di conferma

    fai un po' te


  3. #3
    Ok grazie mille, sei stato molto chiaro.

    Ho deciso di fare come mi consigli, non cripto la pass temporanea, infondo è inutile e poi è pur sempre temporanea.

    Grazie mille e ciao

  4. #4
    Ma più che di password io parlerei di stringa alfanumerica univoca al 99%. Se leggi gli articoli riguardo la registrazione, il log-in ecc che stanno su freephp capirai meglio come procedere e troverai anche lo script che ti serve. Ciao!

  5. #5
    Grazie, ho già trovato uno script che genera una stringa alfa-numerica causale, con cui poi successivamente effettuo la conferma.
    In merito a ciò avrei bisogno di un semplice consiglio, io sono un neofita e ho ancora molto da imparare.

    Allora supponiamo che l'utente compili un form con i suoi dati, quando clicca sul tasto "inserisci", i dati contenuti nel form vengono passati ad uno script che chiamo insert.php

    Lo script insert.php è costituito da una prima parte in cui riceve i dati dal form, da una seconda parte che crea ( in modo random) una striga alfa-numerica per la conferma dell'iscrizione, e da una terza e ultima parte che inserisce i dati nel DB e se l'inserimento è avvenuto con successo invia una mail con i dati inseriti e la richiesta di conferma dell'iscrizione.

    La richiesta di conferma avviene attraverso un link di questo tipo:

    www.miosito.it/conferma.php?id=$id&conferma=$stringa

    Il problema in questo caso è l'ID, poichè non lo conosco. Infatti prima di inviare la mail (che contiene il link per la conferma) dovrei selezionare i dati dal DB e quindi ricavare l'ID. Questa operazione la dovrei fare subito dopo l'inserimento dei dati.
    Allora le mie domande sono queste:

    1) secondo voi conviene utilizzare questa procedura? Oppure esiste una procedura più semplice e più leggera?

    2) Effettuando la selezione dei dati, subito dopo l'inserimento, non posso creare dei problemi al DB o comunque appesantire lo script?

    Grazie e ciao a tutti

  6. #6
    No, l'id a te non serve! Tu devi semplicemente selezionare dal db il record in base alla stringa alfanumerica. A questo punto le cose sono due:

    1) Hai due tabella e quindi i dati della tabella delle registrazioni temporanee vengono trasferiti in quella delle registrazioni confermate

    2) Hai un campo che indica se l'utente ha confermato o meno. In questo caso ti basta fare un update del campo dove stringa = stringa_dell_url.

    L'id non ti serve!

  7. #7
    [supersaibal]Originariamente inviato da mircov
    Tu devi semplicemente selezionare dal db il record in base alla stringa alfanumerica.
    [/supersaibal]
    e chi l'ha detto che è univoca? è random.. quindi è piuttosto difficile se il set di caratteri è ampio ed il numero non è piccolo... però non c'è la garanzia assoluta di univocità.

    [supersaibal]
    2) Hai un campo che indica se l'utente ha confermato o meno. In questo caso ti basta fare un update del campo dove stringa = stringa_dell_url.

    [/supersaibal]
    quetso è il metodo più corretto
    ma l'id serve, se è la chiave primaria, o cmq se è l'unico campo UNIQUE e NOT NULL


  8. #8
    [supersaibal]Originariamente inviato da spiadadda

    www.miosito.it/conferma.php?id=$id&conferma=$stringa

    Il problema in questo caso è l'ID, poichè non lo conosco. [/supersaibal]
    $id= mysql_insert_id();




  9. #9
    Io avevo pensato di creare una sola Tabella, nella quale vengono memorizzate le info dell'utente e poi vi è il campo "conferma " nel quale al momento della registrazione viene memorizzata la stringa alfa-numerica generata in modo random.

    Poi avevo pensato di cancellare questa stringa, oppure sostituirla con qual cosa altro, quando l'utente conferma la registrazione. Naturalmente poi, mediante per esempio un istruzione if, richiamo solo le tabelle in cui il campo conferma è vuoto.

    Però pensandoci bene, la cosa è molto articolata, quindi credo che sia meglio memorizzare i dati in una tabella temporanea e poi trasferirli in quella effettiva solo quando l'utente ha effettuato la conferma.

    Il mio dubbio comunque resta, cioè dopo aver generato la stringa alfa-numerica e dopo aver inserito i dati nella tabella, devo estrarre l'ID e poi inviare la mail? Cioè devo fare così:

    <?php

    // Recupero di dati dal form
    ............

    // Creo una stringa alfa-numerica
    ............

    // Inserisco i dati nel DB
    query= Insert ....

    //Controllo se i dati sono stati inseriti

    //Richiamo il record ed estraggo l' ID
    query=Select ID From .....

    // Invio la mail con il link di conferma
    www.miosito.it/conferma.php?id=$id&conferma=$stringa

    ?>

    Ma in questo modo non è troppo articolato???
    Non esiste un metodo più rapido e leggero per conoscere l'ID???

    Ciao e grazie per il vostro aiuto, stò imparando cose che ignoravo. GRAZIE

    P.S.
    [supersaibal]Originariamente inviato da }gu|do[z]{®©
    $id= mysql_insert_id();

    [/supersaibal]
    Scusa la mia ignoranza, ma non ho capito cosa vuol dire, cioè ho intuito che serve per conoscere l'ID, ma non ho capito come funziona.
    Ciao Ciao

  10. #10
    garanzia di univocità assoluta senza dover far viaggiare gli id: associazione di indirizzo email dell'utente e stringa casuale. così hai l'univocità assoluta.

    e chi l'ha detto che è univoca? è random.. quindi è piuttosto difficile se il set di caratteri è ampio ed il numero non è piccolo... però non c'è la garanzia assoluta di univocità.

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.