ho creato un sito ma ho un problema con "password dimenticata".... il problema è ke io ho fatto in modo ke alla registrazione la password si salvi in md5 .. ora nn è più possibile decriptarla,,,, quindi ho fatto in modo ke una volta inserita l'email ... all'email stessa venga inviata una nuova password casuale di 12 caratteri ... fatto ciò all'email arriva questa password di 12 caratteri ma andando ad effettuare il login scopro ke la password nn è stata modificata ... questo pezzo di sito è composto da:
password.php dove sta la form
password2.php dove stanno tutti i calcoli
il sito dove si trova la demo è : http://cgfsito2.altervista.org/1/password.php
attendo risposte .. grazie in anticipo =)
password.php dove sta la form
HTML:
<form action="password2.php" method="post" id="form_register">
<br>
<tr><td><b>E-Mail:</b></td><td>
<input type="text" name="email" id="email"> </td></tr>
<tr><th colspan="2"><input type="submit" name= "submit" value="Invia Password" class="button-2"></th></tr></table></form>
</div> </div><div id="home"><form action="index.php" method="post" ><input type="submit" value="Ritorna Alla Home" class="button">
password2.php dove stanno tutti i calcoli
PHP:
<?php
session_start();
require_once('lib/Users.class.php');
$login = New Users;
$login->esegui_login();
include("header.html");
include("content-2.html");
include("content.html");
include("footer.html");
include("area_login.html");
?>
<html>
<head>
<title>Password Dimenticata</title>
<link rel="stylesheet" href="css/omini.css" type="text/css">
<link rel="stylesheet" href="css/password2.css" type="text/css">
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery_validate.js"></script>
<script type="text/javascript" src="js/validation_login.js"></script>
<script src="js/script_javascript.js" type="text/javascript"></script>
</head>
<?php
$username = "cgfsito2";
$password = "cakdasapko80";
$host = "localhost";
$database = "my_cgfsito2";
$db=mysql_connect($host, $username, $password) or die("Errore durante la connessione al database");
mysql_select_db($database, $db) or die("Errore durante la selezione del database");
if (isset($_POST['submit'])) {
//nessun campo deve essere lasciato vuoto
if (!$_POST['email']) {
die('<div id="content-2"><center><h1><b>Si è verificato un errore</b></h1></center></div><div id="center"></div>
<div id="tutto"><center><div id="finestra"><b><h2><font color="red"> Completa tutti i campi richiesti!</font></h2></b></div><div id="omino-3"></div><div id="finestra-login-effettuato">
<br><br><b><a>Ritorna indietro e inserisci i dati richiesti</a></b>
</div> </div><div id="home"><form action="password.php" method="post" ><input type="submit" value="Ritorna Indietro" class="button"></form></b></div>');
}
//controllo che l'email messa via effettivamente un'email
$email=$_POST['email'];
function chkEmail($email)
{
// elimino spazi, "a capo" e altro alle estremità della stringa
$email = trim($email);
// se la stringa è vuota sicuramente non è una mail
if(!$email) {
return false;
}
// controllo che ci sia una sola @ nella stringa
$num_at = count(explode( '@', $email )) - 1;
if($num_at != 1) {
return false;
}
// controllo la presenza di ulteriori caratteri "pericolosi":
if(strpos($email,';') || strpos($email,',') || strpos($email,' ')) {
return false;
}
// la stringa rispetta il formato classico di una mail?
if(!preg_match( '/^[\w\.\-]+@\w+[\w\.\-]*?\.\w{1,4}$/', $email)) {
return false;
}
return true;
}
if(!chkEmail($email)) {
die('<div id="content-2"><center><h1><b>Si è verificato un errore</b></h1></center></div><div id="center"></div>
<div id="tutto"><center><div id="finestra"><b><h2><font color="red"> Indirizzo Email non valido!</font></h2></b></div><div id="errore-omino"></div><div id="finestra-login-effettuato">
<br><b><a>Ritorna indietro e inserisci un indirizzo <br> Email con una sintassi corretta<br>es: [email][email protected][/email]</a></b>
</div> </div><div id="home"><form action="password.php" method="post" ><input type="submit" value="Ritorna Indietro" class="button"></form></b></div>');
}
$email = $_POST['email'];
$emailcheck = $_POST['email'];
//controllo che la vecchia email salvata nel db sia uguale a quella immessa
$check= mysql_query ("SELECT email FROM users WHERE email = '$emailcheck'") or die(mysql_error());
$riga = mysql_fetch_assoc($check);
if ($riga['email'] != $_POST['email']) {
die('<div id="content-2"><center><h1><b>Si è verificato un errore</b></h1></center></div><div id="center"></div>
<div id="tutto"><center><div id="finestra"><b><h2><font color="red"> Email non esistente nel sito </font></h2></b></div><div id="errore-omino"></div><div id="finestra-login-effettuato">
<br><b><a>Ritorna indietro e inserisci <br> L\' indirizzo Email Corretto</a></b>
</div> </div><div id="home"><form action="password.php" method="post" ><input type="submit" value="Ritorna Indietro" class="button"></form></b></div>');
}
function rand_string($len, $chars = ‘Labcdefghijklmnopqrstuvwxyz0123456789)
{
$string = "40";
for ($i = 0; $i < $len; $i++)
{
$pos = rand(0, strlen($chars)-1);
$string .= $chars{$pos};
}
return $string;
}
}
$random_string = rand_string(10);
$invio_password = $random_string;
$sql = "UPDATE `utenti` SET `user_password` = ‘".md5($random_string)."‘ WHERE `user_id` =’".$user_id."‘ LIMIT 1?";
$result = mysql_query($sql);
$intestazioni= "From:[email protected]\r\n";
$intestazioni .= "X-Mailer: PHP/".phpversion();
mail($_POST['email'],"Nuova Password","Caro $username , La tua nuova password è $invio_password", $intestazioni);
?>
<div id="content-2"><center><h1><b>Invio Riuscito Con Successo</b></h1></center></div><div id="center"></div>
<div id="tutto"><center><div id="finestra"><b><h2><font color="red"> Complimenti!</font></h2></b></div><div id="omino-5"></div><div id="finestra-login-effettuato">
<br><b><a>Password inviata con successo<br>A breve riceverai la nostra Email<br>Contentente la Password</a></b>
</div> </div><div id="home"><form action="index.php" method="post" ><input type="submit" value="Ritorna Alla Home" class="button"></form></b></div>
<?php
?>
il sito dove si trova la demo è : http://cgfsito2.altervista.org/1/password.php
attendo risposte .. grazie in anticipo =)
Ultima modifica di un moderatore: