schipt modificare parola
Scris: Lun Mar 21, 2011
salut, am si eu o mare problema si nu stiu cum sa o rezolv. am gasit codul acesta de modificare de parola a admin-ului:
si si mi-am prins urechile. faza este ca de eroare nu imi da dar nici nu imi modifica. si mai este o problema, eu bd pt pass este in felul urmator: este parola si pass. parola este pt md5 iar pass este simpla pt recuperare de parola. nu stiu ce are de tot nu merge. si vreau ca atunci cand modific md5 sa se modifice si pass. astept raspuns. cu stima trif
Cod: Selectaţi tot
function valideaza_parola($parola, $nume='') {
global $connection;
$parola = md5($parola);
$query = "SELECT id, nume FROM utilizatori WHERE parola = '{$parola}' LIMIT 1";
$result_set = mysql_query($query, $connection);
confirm_query($result_set);
if(mysql_num_rows($result_set) == 1) {
$admin = mysql_fetch_array($result_set);
redirect_to('acasa.php');
}
else {
echo 'nu este nimic';
}
}
function valideaza_schimbare_parola($user, $pv, $pn, $cp) {
$errors = array();
//******** verifica daca parola veche este corecta
$pv = md5($pv);
$query = "SELECT * FROM utilizatori WHERE nume = '{$nume}'";
$result_set = run_query($query);
$result = mysql_fetch_array($result_set);
if($pv !== $result['parola']) {$errors[] = 'parola veche nu se potriveste';}
else { //******* verifica daca parola noua are formatul cerut
if(strlen($pn) < 6) {$errors[] = 'parola noua trebuie sa aiba minim 6 caractere';}
if(preg_match("/[^a-z\s]/i",$pn) < 1) {$errors[] = 'parola nu poate contine doar litere';}
if (preg_match("#\s#", $pn)) {$errors[] = 'parola nu poate contine spatii';}
//******** verifica daca se potrivesc parola noua si confirmarea
if($pn !== $cp) {$errors[] = 'confirmarea parolei nu se potriveste';}
}
return $errors;
}
function confirm_query($query) {
if(!$query) {
die("Eroare " . mysql_error());
}
}
function run_query($query) {
global $connection;
$result_set = mysql_query($query);
confirm_query($result_set);
return $result_set;
}
function mysql_prep($value) {
$magic_quotes_active = get_magic_quotes_gpc();
$new_enough_php = function_exists('mysql_real_escape_string');
if ($new_enough_php) {
if ($magic_quotes_active){
$value = stripslashes($value);
}
$value = mysql_real_escape_string($value);
}
else {
$value = addslashes($value);
}
return $value;
}
$message = '';
$disabled = '';
if(isset($_POST['submit'])) {
$errors = valideaza_schimbare_parola($_POST['user'],$_POST['parola_veche'],$_POST['parola_noua'], $_POST['confirma_parola']);
if(empty($errors)) {
$user = mysql_prep($_POST['user']);
$parola = md5($_POST['parola_noua']);
$query = "UPDATE useri SET parola = '{$parola}' WHERE user = '{$user}'";
$result_set = run_query($query);
if(mysql_affected_rows() == 1) {
$message = '<p class="ok"> Parola a fost modificata cu succes.</p>';
$disabled = ' disabled = "disabled" ';
}
else {
$message = '<p class="notok"> Parola nu a fost modificata.</p>';
}
}
else {
foreach($errors as $error) {
$message .= '<p class="notok">' . $error . '</p>';
}
}
}
Cod: Selectaţi tot
<form action="schimba_parola.php" method="post">
<table width="400" cellpadding="0" cellspacing="0">
<tr><td><label>Administrator:</label></td>
<td><input type="text" value="<?php echo $_SESSION['nume']; ?>" name="user" tabindex="5" /></td>
</tr>
<tr><td><label>Parola veche:</label></td>
<td><input type="password" name="parola_veche" tabindex="10" /></td>
</tr>
<tr><td><label>Parola noua:</label></td>
<td><input type="password" name="parola_noua" tabindex="20" /></td>
</tr>
<tr><td><label>Confirmati parola:</label></td>
<td><input type="password" name="confirma_parola" tabindex="30" /></td>
</tr>
<tr><td> </td>
<td><input type="submit" class="button" name="submit" <?php echo $disabled ;?> tabindex="40" /></td>
</tr>
</table>
</form>