Inserire vecchia password per cambiare password

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
Salve, come faccio ad fare che l'utente del sito possa cambiare password ed deve inserire la vecchia per confermare la nuova password?.

il codice mio è cosi: -- > l'unico che vorrei far inserire la vecchia.. essendo che quella inserita è stata criptata con md5 come faccio a verificare
se l'utente ha scritto la password vecchia giusta?
PHP:
<?php
require_once(dirname(__FILE__) . '/../inc.php');
require_once(dirname(__FILE__) . '/member.php');
$page = new Page;
$page->setTitle('Password utente');
$page->startBody();
?>
<?php


if ( isset ( $error ) )	{ echo '			<p class="error">' . $error . '</p>' . "\n";	}	
if ( isset ( $msg ) )	{ echo '			<p class="msg">' . $msg . '</p>' . "\n";	} else {
	
		$id_user = get_userID($_SESSION["user_crypt"]);
		$db_id_user = $db->real_escape_string($id_user);
		
	
		$query = "SELECT * FROM utenti WHERE id='".$db_id_user."'";
		$result = $db->query($query) or die($db->error);
		if(empty($db_id_user)) {
		echo "ID non specificato";
}
elseif ($result->num_rows==0) { echo "Record non trovato!"; }
else
{
		$row = $result->fetch_assoc();
		$result->free_result(); 
	
if(isset($_POST["invia"]))
{

		$password = protect($_POST["password"]);

	if(empty($password))
	{
		$error = "Inserire la password nuova o lasciare in bianco per non cambiare la password";
	}
	else
	if ($password != $row["pass"] )
		{
		
		 $db_password = $db->real_escape_string($password);
		
		$strSQL = "UPDATE utenti SET"
						. " pass = '".md5($db_password)."'"
					. " WHERE id = ".$db_id_user."";	
		$db->query($strSQL) or die($db->error);
		
		$msg = "Fatto...<a href=\"update_password.php\">Torna indietro</a>";
		}else
	{ $msg = "Nessuna modifica eseguita: <a href=\"update_password.php\">Torna indietro</a>";}
	}
	
	


?>
<p class="titolo">Cambio password di <?php echo get_username($_SESSION["user_crypt"]);  ?></p>
<?php	if ( isset ( $error ) )	{ echo '			<p class="error">' . $error . '</p>' . "\n";	}	?>
<?php	if ( isset ( $msg ) )	{ echo '			<p class="msg">' . $msg . '</p>' . "\n";	} else {?>
	<div align="center">
	<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
	<table style="text-align: left;" border="0" cellpadding="4" cellspacing="4" align="center" >
  <tbody>
    <tr>
      <td align="center">Password</td>
      <td><input class="input" type="text" id="password" name="password" size="50" value="<?php if(isset($_POST['password'])){echo $_POST['password'];} ?>" /></td>
    </tr>
  </tbody>
</table>
<p></p>
<input type="submit" name="invia" value="Modifica" />
</form>
</div>
	<?php 
	?><?php
	}
}
}
?>
<?php
$page->endBody();
echo $page->render('layout/template.php');
?>
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Devi fare lo stesso meccanismo di quando fai il login, cioè cripti la password e la confronti con quella del db, inoltre md5 non è più molto sicuro per proteggere le password, alternalo allo sha1, generalo più volte oppure prova la funzione hash() per usare altri algoritmi meno conosciuti.
 

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
ciao, ok grazie per le info:
ma ho fatto cosi:

PHP:
<?php
require_once(dirname(__FILE__) . '/../inc.php');
require_once(dirname(__FILE__) . '/member.php');
$page = new Page;
$page->setTitle('Password utente');
$page->startBody();
?>
<?php


if ( isset ( $error ) )	{ echo '			<p class="error">' . $error . '</p>' . "\n";	}	
if ( isset ( $msg ) )	{ echo '			<p class="msg">' . $msg . '</p>' . "\n";	} else {
	
		$id_user = get_userID($_SESSION["user_crypt"]);
		$db_id_user = $db->real_escape_string($id_user);
		
	
		$query = "SELECT * FROM utenti WHERE id='".$db_id_user."'";
		$result = $db->query($query) or die($db->error);
		if(empty($db_id_user)) {
		echo "ID non specificato";
}
elseif ($result->num_rows==0) { echo "Record non trovato!"; }
else
{
		$row = $result->fetch_assoc();
		$oldpassword = md5($row['pass']);
		
		$result->free_result(); 
	
if(isset($_POST["invia"]))
{

		$password = md5(protect($_POST['password']));
		$newpassword = md5(protect($_POST['newpassword']));
		
	if(empty($password))
	{
		$error = "Inserire la password nuova o lasciare in bianco per non cambiare la password";
	}	
	else
	{
	
	if($password != $oldpassword)
	{
	   $error = "Password vecchia non esite";
	}else
		{	
		 $db_password = $db->real_escape_string($newpassword);
		
		$strSQL = "UPDATE utenti SET"
						. " pass = '".md5($db_password)."'"
					. " WHERE id = ".$db_id_user."";	
		$db->query($strSQL) or die($db->error);
		
		$msg = "Fatto...<a href=\"update_password.php\">Torna indietro</a>";
	}
	
}
}
	


?>
<p class="titolo">Cambio password di <?php echo get_username($_SESSION["user_crypt"]);  ?></p>
<?php	if ( isset ( $error ) )	{ echo '			<p class="error">' . $error . '</p>' . "\n";	}	?>
<?php	if ( isset ( $msg ) )	{ echo '			<p class="msg">' . $msg . '</p>' . "\n";	} else {?>
	<div align="center">
	<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
	<table style="text-align: left;" border="0" cellpadding="4" cellspacing="4" align="center" >
  <tbody>
    <tr>
      <td align="center">Vecchia Password</td>
      <td><input class="input" type="password" id="password" name="password" size="50" value="<?php if(isset($_POST['password'])){echo $_POST['password'];} ?>" /></td>
    </tr> <tr>
      <td align="center">Password</td>
      <td><input class="input" type="text" id="newpassword" name="newpassword" size="50" value="<?php if(isset($_POST['newpassword'])){echo $_POST['newpassword'];} ?>" /></td>
    </tr>
  </tbody>
</table>
<p></p>
<input type="submit" name="invia" value="Modifica" />
</form>
</div>
	<?php 
	?><?php
	}
}
}
?>
<?php
$page->endBody();
echo $page->render('layout/template.php');
?>

mi dice sempre: "Password vecchia non esite" anche se la inserisco giusta.

hai idee?

ora cambio md5 a sha etc..

ti ringrazio molto.
 
Discussioni simili
Autore Titolo Forum Risposte Data
Elisacau [Contact form 7] Inserire Numero auto incrementante WordPress 1
gara1 inserire immagine di sfondo in canvas Javascript 0
FDF182 Inserire pdf in db PHP 3
otto9due Inserire o aggiornare tabella my sql controllando una coppia di valori PHP 7
Couting95 inserire dati da un file di testo in una tabella in php PHP 1
D Inserire link PHP 0
L PHPSpreadsheet inserire dati da file .xlsx/.xls su database PHP 2
P inserire due voci in un titolo post wp WordPress 1
R inserire video nel sito HTML e CSS 15
J Inserire blog wordpress in angular CMS (Content Management System) 0
A inserire variabile php colore in div html PHP 2
L inserire dati multi livello PHP 8
G Inserire una scritta Java 1
M Inserire variabile nella value di una hidden PHP 3
S Inserire foto in ogni cella di una tabella Javascript 0
G inserire dati automaticamente in mysql PHP 0
B Vorrei inserire una finestra con messaggio ad un history.back PHP 16
Shyson Inserire placeholder nel campo cerca PHP 5
M Lanciare alert se il codice fiscale è già presente nel db e lasciare la scelta di inserire all'utente PHP 42
atipika INSERIRE ICONE DOWNLOAD E STAMPA WORDPRESS WordPress 10
F Creare un set di date a seconda del frazionamento scelto da inserire in MySQL PHP 6
B inserire valori da una tabella a un altra mysql PHP 34
D [Javascript] inserire uno script in un file php Javascript 6
napuleone [HTML] type="file" inserire path di partenza HTML e CSS 4
Monital [Javascript] inserire dati estratti dal db in html fisso Javascript 1
R [WordPress] Inserire campi aggiuntivi ad un Submit Form già dato dal template (front-end) WordPress 0
M inserire i dati ottenuti da una jquery in una tabella già esistente jQuery 1
G Inserire "Leggi il resto dell'articolo" con link al post sul sito preso via RSS Email Marketing 0
M [PHP] Come inserire codice html in un ciclo while PHP 2
P [PHP] Inserire stringhe in input(text),memorizzarle e stamparle in file successivo PHP 0
J [Javascript] Inserire un caricamento con animazione prima dell'esecuzione di un'azione Javascript 1
Shyson [PHP] Inserire testo nel codice PHP 2
D Mailchimp - Possibile inserire doppia condizione per i triggers? Email Marketing 0
A [MS Access] Pulsante per inserire allegati in campo maschera MS Access 0
Shyson [HTML] Inserire nuovo font con @font-face HTML e CSS 5
Alex_70 Inserire photo in php PHP 0
D [Javascript] [HTML] Inserire slash dopo 3 numeri Javascript 5
F INSERIRE IN UN'UNICA CASELLA DI TESTO REPORT ACCESS I VALORI DELLA TABELLA DI UN'INTERA COLONNA MS Access 2
A [HTML] Come inserire google review stars nelle pagine del mio sito HTML e CSS 0
spider81man Connettersi ad un DB ed inserire dati con Javascript Javascript 3
spider81man [PHP] Inserire file .pdf in db PHP 6
P [WordPress] Inserire codice in pagina dinamica WordPress 0
A [PHP] Ciclare array multidimensionale e inserire valori in DB PHP 2
M [PHP] Inserire array nel db PHP 6
andreas88 [HTML] come inserire 3 riquadri in un unico rigo (vedere img allegata) HTML e CSS 11
G [PHP] inserire risultato di una query in una tabella PHP 3
P [Javascript] Inserire una nuova condizione in una funzione Javascript 3
G [Guida MyBB 1.8] Inserire icone accanto alle sezioni CMS (Content Management System) 0
M [wordpress-galleria immagini]Inserire classe php in html PHP 0
C Inserire dati tabella leggendo parte di altra tabella con php PHP 13

Discussioni simili