Come descritto nel titolo ho un problema quando vado ad eseguire l'attivazione dell'account di un utente tramite l'uso di un link inviato alla mail.
La pagina registrazione, dopo aver raccolto i dati del form, inserisce i dati nel database. Fatto ciò invia all'utente una mail per confermare la registrazione.
Il link inviato alla mail riporta alla pagina action.php?act=conferma che ha in input il codice utente, necessario per ritrovare l'account da attivare.
Il problema è questo: la pagina action.php?act=conferma=cod=$codiceUtente si apre ma non aggiorna lo stato, lasciandolo a 0 cioè inattivo.
Questi sono i codici PHP che uso nelle pagine:
registrazione.php
Codice PHP:
include 'connect.php';
if(@$_POST["invio"])
{
$codUtente = md5($_POST["email"]);
$codPassword = md5($_POST["password"]);
$query = "INSERT INTO `utenti` SET `username`='".@$_POST["username"]."', `codUtente`='".$codUtente."', `password`='".$codPassword."', `email`='".@$_POST["email"]."';";
$result = mysql_query($query);
$sub = "Oggetto del messaggio";
$sito = "http://www.miosito.altervista.org";
$msg = "
Buongiorno ".$_POST["username"].",\n
questa e-mail ti giunge dall'area riservata del sito ".$sub.".\n
Di seguito trovi l'url per procedere all'attivazione del tuo account.\n
Dati di accesso\n
Username: ".$_POST["username"].",\n
Password: ".$_POST["password"].",\n\n
Url di conferma: ".$sito."/action.php?act=conferma=cod=".$codUtente."\n\n
In caso di problemi ti inviatiamo a contattarci direttamente.
";
mail($_POST["email"], $sub, $msg);
header('Location: index.php?act=RegistrazioneOn');
}
action.php
Codice PHP:
else if(@$_GET["act"] == "conferma")
{
$query = "UPDATE `utenti` SET `stato` = '1' WHERE `codUtente`='".@$_POST["cod"].";";
$result = mysql_query($query) or die('Errore nello svolgimento della query di attivazione');
header('Location: index.php');
}