- Home
- Categorie
- Coding e Sistemistica
- PHP
- Registrazione con invio email
-
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
-
io ti suggerisco un approccio diverso.
Secondo me ti converrebbe fare l'inserimento PRIMA, lasciando però un campo (es. ATTIVO) uguale a 0Poi 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
-
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
-
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
-
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
-
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'
-
thank you ora provo lo script , poi vado a studiare , mi faccio una doccia
e torno stasera tutto pippante , grazie ancora ciao
-
@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
-
HOW can i do?
-
ragazzi nessuno sa darmi una mano?
-
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àà
-
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
-
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=pippociao
-
@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=pippociao
e nell'altra pagina per catturare quei dati sul link come faccio?ciao
-
per prendere i parametri puoi usare il $_GET
però ti consiglio anche una studiata alle basi del php
-
cavolo è vero con il get
ok grazie scusa se ti ho rotto ora vedo se funzionaciao