Ciao a tutti, ormai mi conoscete.
Dopo aver criptato le password degli utenti in md5, non si possono più recuperare, quindi l'unica cosa da fare è inviare una e-mail agli utenti contenente un codice grazie al quale essi possano cambiare la loro password.
Quindi, dopo aver creato un sistema di conferma e-mail agli utenti, avrei bisogno di reimpostargli la password.
Codice PHP:
<?php
require('connessionedb.php'); //o le vostre istruzioni per il collegamento al database
$id = $_GET['id'];
/* $id contiene il valore di $msgid di 32 caratteri alfanumerici che abbiamo inviato all'utente dalla pagina data_insert.php:
$confirmmessage .= "<a href=\"http://localhost/percorso pagina confirm_reg.php" .
"?id=$msgid\">Clicca qui per confermare la tua registrazione</a>";*/
$sql = "SELECT * FROM confirm WHERE confirm_validator = '$id'";
$query = mysql_query($sql) or die(mysql_error());
$pcarray = mysql_fetch_array($query); // memoriziamo i risultati nell'array $pcarray
if (!is_array($pcarray))
{
echo "Link non valido o utente già confermato";
exit;
}
// Se invece l'id passato è corretto:
$user_id = $pcarray["confirm_userid"];
//Quindi aggiorniamo la tabella user
$update = "UPDATE user SET " .
"user_reg = 1 " .
"WHERE user_id = '$user_id'";
$result = mysql_query($update) or die(mysql_error());
?>
Quindi ci sono 2 tabelle: user e confirm.
confirm contiene il codice di conferma di ogni utente
user contiene, oltre a tutti i dati degli utenti, il campo user_reg, che se il valore non è uguale ad 1 non fa accedere l'utente.
Il problema è nel cambiare la password agli utenti: ho creato questo codice e figuratevi se funzionava!
Codice PHP:
<?php
require_once('connessionedb.php'); //o le vostre istruzioni per il collegamento al database
$id = $_GET['id'];
/* $id contiene il valore di $msgid di 32 caratteri alfanumerici che ho inviato all'utente dalla pagina dell'inserimento dei dati al momento della registrazione, e adesso vorrei usare lo stesso per cambiare la password:
$confirmmessage .= "<a href=\"http://localhost/percorso pagina confirm_reg.php" .
"?id=$msgid\">Clicca qui per confermare la tua registrazione</a>";*/
$sql = "SELECT * FROM confirm WHERE confirm_validator = '$id'";
$query = mysql_query($sql) or die(mysql_error());
$pcarray = mysql_fetch_array($query); // memoriziamo i risultati nell'array $pcarray
if (!is_array($pcarray))
{
echo "Oops! Il link è errato!";
}
else// Se invece l'id passato è corretto:
{
if(isset($_POST['cambia'])){// Se è stato premuti invio
$user_id = $pcarray["confirm_userid"];
$newpassword = md5($_POST['nuovapass']);
//Quindi aggiorniamo la tabella user
$update = "UPDATE user SET user_password = $newpassword WHERE user_id = $user_id";
if(mysql_query($update)){
echo "OK";
}
}
?>
<br 7>
<form name="cambia" method="post" action="">
<input type="text" name="nuovapass" value="a">
<input type="submit" name="cambialapass" value="Invia">
</form>
<br />
<?php
}
?>
Grazie.