Ciao a tutti ragazzi,
mi sono imbattuto in un problema a cui non riesco a venirne fuori, vi spiego bene e posto anche codice:
l' utente X dopo avere effettuato il login ha a disposizione una pagina con le informazioni del profilo dove può anche modificarle, in questo caso parliamo di MODIFICA PASSWORD.
Da premettere che tutte queste funzioni le ho svolte tutte sulla stessa pagina tramite richiami GET.
Ovviamente prima di poter cambiare la password voglio sapere ( per sicurezza) qual'è la password attuale dell' utente, ecco questo è il problema, perchè fin quando faccio tutti gli altri controlli tutto fila liscio tipo che i campi non siano vuoti, che la lunghezza della nuova pw sia compresa tra 6 e 16 caratteri e che il campo nuova pw e conferma nuova pw siano uguali.
Ma non appena aggiungo la parte del codice per il controllo vecchia password al momento della pressione del bottone "Cambia password" non succede proprio niente, ne un messaggio d' errore né niente.
Vi posto il codice per farvi capire meglio
Codice PHP:
<form method="POST" action="?page=profile&act=chgpw&chg=checkpw">
<table align="center" border="0">
<tr>
<td align="right">
Vecchia Password:
</td>
<td align="left">
<input type="password" name="vecchiapw" id="vecchiapw" size="15">
</td>
</tr>
<tr>
<td align="right">
Nuova Password:
</td>
<td align="left">
<input type="password" name="nuovapw" id="nuovapw" size="15">
</td>
</tr>
<tr>
<td align="right">
Conferma Nuova Password:
</td>
<td align="left">
<input type="password" name="renuovapw" id="renuovapw" size="15">
</td>
</tr>
<tr>
<td align="center" colspan="2">
<input type="submit" value="Cambia Password">
</td>
</tr>
</table>
</form>
Questo era il form normalissimo e ora il richiamo GET
Codice PHP:
if (($page=="profile")&&($act=="chgpw")&&($chg=="checkpw")){
$old_pw="SELECT password FROM utente WHERE id='$id_utente'";
$res_old_pw=mysql_quey($old_pw) or die ("Query Fallita");
$vecchia_pass=mysql_result($res_old_pw,0,"password");
if(strlen($_POST[vecchiapw])<1) echo '<div align=center class=error><img src=image/report.png border=0> Devi inserire la vecchia password.
<a href=javascript:history.back()>Riprova</a></div>';
else if(strlen($_POST[nuovapw])<1) echo '<div align=center class=error><img src=image/report.png border=0> Devi inserire la nuova password.
<a href=javascript:history.back()>Riprova</a></div>';
else if(strlen($_POST[renuovapw])<1) echo '<div align=center class=error><img src=image/report.png border=0> Devi confermare la nuova password.
<a href=javascript:history.back()>Riprova</a></div>';
else if(($_POST[nuovapw])!=($_POST[renuovapw])) echo '<div align=center class=error><img src=image/report.png border=0> Le nuove password non coincidono.
<a href=javascript:history.back()>Riprova</a></div>';
else if(strlen($_POST['password_reg'])<6 || strlen($_POST['password_reg'])>16) echo '<div align=center class=error><img src=image/report.png border=0> Per la tua sicurezza la password deve essere compresa tra 6 e 16 caratteri.
<a href=javascript:history.back()>Riprova</a></div>';
//QUI IL PROBLEMA
else if(($_POST[vecchiapw]) != ($vecchia_pass)) echo '<div align=center class=error><img src=image/report.png border=0> La tua vecchia password non coincide con quella appena inserita.
<a href=javascript:history.back()>Riprova</a></div>';
else{
// quì codice nel caso positivo
}
}
}
Questo è tutto il codice, può darsi che ci sia qualche piccolo errore di sintassi o non so cosa... Ringrazio tutti anticipatamente...