Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 27
  1. #1
    Utente bannato
    Registrato dal
    Apr 2005
    Messaggi
    148

    dare conferma via email della registrazione

    ho un modulo di login che registra degli utenti per poi farli navigare nel sito.
    Ora i visitatori iniziano ad essere un po' di piu' e molti di loro si registrano piu' volte con nick strani o senza email regolari.
    Volevo quindi chiedere come posso fare in modo che al momento della registrazione sia inviata una mail all'indirizzo di posta inserito con un link dove cliccarci per confermare la registrazione.
    Qualcuno sa come aiutarmi?

  2. #2
    mandi una mail che contiene il link ad un file php a cui passa qualche parametro in querystring.. il file in questione setta un flag che avrai messo sul database e che all'inizio, in attesa di conferma, sarà 0...

    la versione più semplice ed immediata è questa:

    invii per e-mail un link tipo
    http://www.miosito.it/autentica.php?id=$id_utente

    e nella pagina nin questione fai ua query tipo:
    update utenti set `autenticato`=1 where `id`=$_GET['id']

    spero che così ti sia chiaro... il problema è che in questo modo chiunque può attivare l'utente "105" per esempio.. senza che questo abbia mai ricevuto la mail... allora devi fare qualcosa per cui l'indirizzo non sia indovinabile... ad esempio puoi aggiungere al link un md5 di una password tua+l'id... in modo che ogni id avrà un md5 diverso (cambia con l'id) ma non sia banale ricavare la stringa md5 (bisogna conoscere la password oltre l'id).

    esempio:
    $key = md5($id.'miapassword');
    http://www.miosito.it/autentica.php?id=$id_utente&key=$key

    nella pagina autentica.php fai:
    $key = md5($_GET['id'].'miapassword');
    if($key != $_GET['key'])
    {
    echo 'tentativo di hacking';
    exit;
    }
    //fai la seguente query tranquillamente
    update utenti set `autenticato`=1 where `id`=$_GET['id']


    spero di essere stato chiaro


  3. #3
    Utente bannato
    Registrato dal
    Apr 2005
    Messaggi
    148
    certo che sei stato velocissimo a scrivere tutto lo tenevi gia' preparato?
    Ora provo a fare come mi hai consigliato, poi semmai mi faccio vivo.
    Grazie per ora

  4. #4
    Utente bannato
    Registrato dal
    Apr 2005
    Messaggi
    148
    dimenticavo:
    ma per inviare l'email in automatico dopo che si clicca su registra, devo fare una semplice funzione mail() ?

  5. #5
    [supersaibal]Originariamente inviato da Meta-tag
    certo che sei stato velocissimo a scrivere tutto lo tenevi gia' preparato? [/supersaibal]


    no.. ho letto appena hai postato e ho scritto veloce.. :P


  6. #6
    [supersaibal]Originariamente inviato da Meta-tag
    dimenticavo:
    ma per inviare l'email in automatico dopo che si clicca su registra, devo fare una semplice funzione mail() ? [/supersaibal]
    sì certo.. il link farà parte del testo...

    www.php.net/mail


  7. #7
    Utente bannato
    Registrato dal
    Apr 2005
    Messaggi
    148
    il campo "autenticato" nel database puo' essere INT 1?

  8. #8
    [supersaibal]Originariamente inviato da Meta-tag
    il campo "autenticato" nel database puo' essere INT 1? [/supersaibal]
    sì..oppure un enum [un insieme di tot elementi, il valore deve essere uno ed uno solo di quelli.. quindi enume 0,1]


  9. #9
    Utente bannato
    Registrato dal
    Apr 2005
    Messaggi
    148
    c'e' un piccolo errore sicuramente molto banale:
    nella pagina che invia i dati al database ho inserito anche questo codice:

    Codice PHP:
    <?
    $testo
    ="Conferma la registrazione cliccando sul seguente link:
    wwww.miosito.it/autentica.php?id=
    $id";
    mail("$email","Conferma iscrizione",$testo,$mail_info); 
    ?>
    P.S. ho messo 4 w (wwww) perche' mi dava un link strano quando scrivevo il codice in questa risposta

    l'email arriva, ma il link arriva cosi:
    http://www.miosito.it/autentica.php?id=

    quindi senza il numero dell'id

    Sto provando in tutti i modi ma non riesco a far comparire l'id dell'utente.
    Dove sta l'errorino?
    P.S. sto provando prima senza md5, una volta fatto in questo modo, procedo con quello piu' complesso e sicuro che mi ha consigliato guido

  10. #10
    dipende da dove lo recuperi l'id...

    se hai appena inserito i dati nel database devi usare mysql_insert_id()


    $id = mysql_insert_id();

    devi avere ovviamente un campo autoincrement nella tabella.. il valore si riferirà a quello


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.