• User

    Registrazione con invio email

    Ciao ragazzi volevo sapere come far funzionare ciò, è un form per la registrazione, soltanto, voglio che arrivi un email all'utente e che per inserire i database faccia l'url che gli compare via email,all'email i cookie arrivano ma nella pagina insert.php nn mi aggiunge i dati, sembra che nn riesca a prendere i cookie,per provare se arrivano i dati ho messo ciao più il nome del cookie, ma mi scrive solo ciao,boh:

    <?php
    require("connessionealdatabase.php");

    if (isset($_POST['submit'])) {
    $nome=$_POST['nome'];
    $cognome=$_POST['cognome'];
    $email=$_POST['email'];
    $nickname=$_POST['nickname'];
    $password=md5($_POST['password']);

    if ($nome=="") { echo "Inserisci il nome"; }
    elseif ($cognome=="") { echo "Inserisci il cognome"; }
    elseif ($email=="") { echo "Inserisci la tua email"; }
    elseif ($nickname=="") { echo "Inserisci il tuo nickname"; }
    elseif ($password=="") { echo "Inserisci la tua password"; }

    else {
    session_start();
    $PHPSESSID=session_id();
    echo "Riceverai un email con cui potrai attivare la tua registrazione
    ";

    $email_1=$email;
    $subject="Iscrizione";

    setcookie("nome","$nome",time()+3600);
    setcookie("cognome","$cognome",time()+3600);
    setcookie("datadinascita","$datadinascita",time()+3600);
    setcookie("email","$email",time()+3600);
    setcookie("nickname","$nickname",time()+3600);
    setcookie("password","$password",time()+3600);

    $message=

    "$_COOKIE[nome]"."Clicca sotto per iscriverti\n".
    " http://url/insert.php?sid=$PHPSESSID";
    $headers="From:giovanni pascoli e ugo foscolo";
    mail($email,$subject,$message,$headers);

    }
    }
    ?>
    <h1>Registrazione</h1>

    <align='center'>
    <form action='' method='post'>
    <table width='100%' border='0'>
    <tr>
    <td width='9%'>**Nome **</td>
    <td width='91%'><input name='nome' type='text'></td>
    </tr>
    <tr>
    <td>**Cognome **</td>
    <td><input name='cognome' type='text'></td>
    </tr>
    <tr>
    <td>**Email **</td>
    <td><input name='email' type='text'></td>
    </tr>
    <tr>
    <td>**Nickname **</td>
    <td><input name='nickname' type='text'></td>
    </tr>
    <tr>
    <td>**Password **</td>
    <td><input name='password' type='password'></td>
    </tr>
    <tr>
    </tr>
    </table>
    <input type='submit' name='submit' value='Invia'></td>
    </form>

    fine--------------------------------
    pagina insert.php:

    <?php
    session_start();

    require("connnnnessssione_database.php");
    $inserimento="INSERT INTO registrati (nome,cognome,datadinascita,email,nickname,password) VALUES ('$_COOKIE[nome]','$_COOKIE[cognome]','$_COOKIE[datadinascita]','$_COOKIE[email]','$_COOKIE[nickname]','$_COOKIE[password]')";
    $ok=mysql_query($inserimento);
    echo "Ciao\t";
    echo "$_COOKIE[nome]";
    echo "ok, il tuo account è stato attivato";
    setcookie("nome","$nome",time()-3600);
    setcookie("cognome","$cognome",time()-3600);
    setcookie("datadinascita","$datadinascita",time()-3600);
    setcookie("email","$email",time()-3600);
    setcookie("nickname","$nickname",time()-3600);
    setcookie("password","$password",time()-3600);
    ?>

    Ciao


  • User Attivo

    io ti suggerisco un approccio diverso.
    Secondo me ti converrebbe fare l'inserimento PRIMA, lasciando però un campo (es. ATTIVO) uguale a 0

    Poi nella mail inserisci un link in cui passi come paramenti l'ID (del record che hai inserito) e il LOGIN

    Se coincidono attivi l'utente (es. ATTIVO = 1)

    Secondo me questo sistema ti da molti meno problemi


  • User

    Guarda ora sto provando con le sessioni, ma il problema è che nn mi arrivano i dati al controllo,secondo te?
    Poi ho notato che il session_id è sempre lo stesso, nonostante abbia messo in
    controllo.php dopo l'inserimento , un session_destroy($PHPSESSID);
    Se mi arrivasse lì basterebbe senza che mi devo modificare tutti gli script di login già creati 🙂
    Sai quale possa essere il problema?
    ora lo script di registrazione è :

    OPS insert.php=controllo.php (precisazione);)

    <?php
    session_start();
    $PHPSESSID=session_id();
    require("conn.php");

    if (isset($_POST['submit'])) {
    $nome=$_POST['nome'];
    $cognome=$_POST['cognome'];
    $datadinascita=$_POST['datadinascita'];
    $email=$_POST['email'];
    $nickname=$_POST['nickname'];
    $password=md5($_POST['password']);

    if ($nome=="") { echo "Inserisci il nome"; }
    elseif ($cognome=="") { echo "Inserisci il cognome"; }
    elseif ($datadinascita=="") { echo "Inserisci la tua data di nascita"; }
    elseif ($email=="") { echo "Inserisci la tua email"; }
    elseif ($nickname=="") { echo "Inserisci il tuo nickname"; }
    elseif ($password=="") { echo "Inserisci la tua password"; }

    else {

    echo "Riceverai un email con i tuoi dati, con cui potrai attivare la tua registrazione
    ";

    $email_1=$email;
    $subject="Iscrizione";

    $_SESSION['nome']=$nome;
    $_SESSION['cognome']=$cognome;
    $_SESSION['datadinascita']=$datadinascita;
    $_SESSION['email']=$email;
    $_SESSION['nickname']=$nickname;
    $_SESSION['password']=$password;

    $message=

    "$_SESSION[nome]\t"."Clicca sotto per iscriverti\n".
    " http://url/controllo.php?sid=$PHPSESSID";
    $headers="From:albertorrr.altervista.org";
    mail($email,$subject,$message,$headers);
    session_start();
    }
    }
    ?>
    <h1>Registrazione</h1>

    <align='center'>
    <form action='' method='post'>
    <table width='100%' border='0'>
    <tr>
    <td width='9%'>**Nome **</td>
    <td width='91%'><input name='nome' type='text'></td>
    </tr>
    <tr>
    <td>**Cognome **</td>
    <td><input name='cognome' type='text'></td>
    </tr>
    <tr>
    <td>**Data di nascita **</td>
    <td><input name='datadinascita' type='text'></td>
    </tr>
    <tr>
    <td>**Email **</td>
    <td><input name='email' type='text'></td>
    </tr>
    <tr>
    <td>**Nickname **</td>
    <td><input name='nickname' type='text'></td>
    </tr>
    <tr>
    <td>**Password **</td>
    <td><input name='password' type='password'></td>
    </tr>
    <tr>
    </tr>
    </table>
    <input type='submit' name='submit' value='Invia'></td>
    </form>

    Ho provato anche con una pagina di appoggio prima di arrivare a controllo.php ma niente 🙂

    Grazie per il tuo aiuto 😄

    Dimenticavo...I dati in email arrivano, infatti mi scrive quando faccio le prove :ciao albertorrr


  • User Attivo

    non ho guardato il codice, ma ti sconsiglio anche le sessioni.

    Le mail di conferma potrebbero arrivare anche dopo un paio d'ore (o cmq il click potrebbe arrivare tardi)
    In questo caso ti scade la sessoine.

    Inoltre il click dal client di posta potrebbe aprire un nuovo browser con una sessione diversa


  • User

    ah ok ho capito
    allora vedo come studiarmi quello che mi hai detto prima 🙂
    ma la query la devo fare tramite email?
    dove la metto?
    affinche mi ponga attivo=1???
    cioè nella registrazione il campo attivo=0
    poi all'utente arriva l'email.
    lui clicca su un link, ma come lo setto attivo=1?dove lo metto lo script per cambiargli valore?
    Grazie 🙂
    ciao


  • User Attivo

    nella mail inserisci un link come questo:

    attiva.php?id=5&user=pippo

    quando uno clicca tu in questo script (cioè attiva.php) controlli che all'ID (del record) 5 corrisponda lo User pippo, poi fai un aggiorna sulla tabella, es:

    update utenti set attivo=1 where id=5 and user='pippo'

    :ciauz:


  • User

    thank you ora provo lo script , poi vado a studiare , mi faccio una doccia 😄 😄 😄
    e torno stasera tutto pippante , grazie ancora ciao 😄


  • User

    @Albertorrr said:

    thank you ora provo lo script , poi vado a studiare , mi faccio una doccia 😄 😄 😄
    e torno stasera tutto pippante , grazie ancora ciao 😄
    una cosa, prima del bidè 😄 , ma per fargli prendere l'id dell'utente in automatico, come faccio?
    deve prenderlo da qualche parte, e poi l'email nn mi fa portare le variabili in altre pagine?

    ciao


  • User

    HOW can i do?


  • User

    ragazzi nessuno sa darmi una mano? 😞 😞


  • User Attivo

    Dopo l'inserimento del record (non attivo) puoi prendere l'id inserito con la funzione mysql_insertid().

    poi l'email nn mi fa portare le variabili in altre pagine
    Non ho capito cosa intendi, però all'interno della mail basta che scrivi questo valore in un parametro del link verso la pagina di attivazione.

    PS
    Per il futuro: Non c'è bisogno di inserire un messaggio al giorno con la richiesta d'aiuto (come gli ultimi 2). Abbi un po di pazienza e se qualcuno potrà ti aiuteràà

    :ciauz:


  • User

    Come faccio a metterlo nel link?
    tipo:www.url.it?ATTIVO=1 ?
    ma come faccio poi a farlo impostare al database? dicendogli chi è l'utente che si sta attivando?
    Cioè, per esempio, mi arriva l'email , in cui c'è il link all'altra pagina e in questa pagina faccio l'upload, ma come posso far arrivare i dati del'utente in questa pagina per mettere attivo=1?

    per il futuro:hai ragione scusa per la mia invadenza, ma era ed è una cosa piuttosto urgente , scusa ancora....

    ciao


  • User Attivo

    si, nel link passi i parametri.

    il parametro attivo=1 non ri serve (visto che lo manderesti a una pagina che fa solo quello)

    Dovrai passare l'id dell utente da attivare e magari anche lo username per essere sicuro che sia giusto

    es:
    attiva.php?id5&user=pippo

    ciao


  • User

    @riky78 said:

    si, nel link passi i parametri.

    il parametro attivo=1 non ri serve (visto che lo manderesti a una pagina che fa solo quello)

    Dovrai passare l'id dell utente da attivare e magari anche lo username per essere sicuro che sia giusto

    es:
    attiva.php?id5&user=pippo

    ciao
    e nell'altra pagina per catturare quei dati sul link come faccio?

    ciao


  • User Attivo

    per prendere i parametri puoi usare il $_GET
    però ti consiglio anche una studiata alle basi del php

    http://www.giorgiotave.it/guida_php/sommario.php

    :ciauz:


  • User

    cavolo è vero con il get 😄
    ok grazie scusa se ti ho rotto ora vedo se funziona 😄

    ciao