Ciao ecco ora
Codice PHP:
<?php
/**in questa parte dello script creaiamo tre variabili $lo $pa $npd*/
/**ognuna attesta la correttezza della procedura*/
if (isset($_POST['submit']))
{
require_once ('databaseconnectinfo.php');
/**funzione per filtrare i dati da inserire*/
function escape_data ($data)
{
global $dbc;
if (ini_get('magic_quotes_gpc'))
{
$data = stripslashes($data);
}
return mysql_real_escape_string($data, $dbc);
}
$message = NULL;
/**verifichiamo l'esistenza del loginName altrimenti $lo è FALSE*/
if (empty($_POST['loginName']))
{
$lo = FALSE;
$message .= '
You forgot to enter your Login Name!</p>';
}
else
{
$lo = escape_data($_POST['loginName']);
}
/**verifichiamo l'esistenza della password (vecchia password) altrimenti $pa è FALSE*/
if (empty($_POST['password']))
{
$pa = FALSE;
$message .= '
You forgot to enter your existing password!</p>';
}
else
{
$pa = escape_data($_POST['password']);
}
/**verifichiamo l'esistenza del password1 (nuova password) altrimenti $nps è FALSE*/
/**verifichiamo che password1 coincide con password2 (conferma password) altrimenti $nps è FALSE*/
if (empty($_POST['password1']))
{
$npa = FALSE;
$message .= '
You forgot to enter your new password!</p>';
}
else
{
if ($_POST['password1'] == $_POST['password2'])
{
$npa = escape_data($_POST['password1']);
}
else
{
$npa = FALSE;
$message .= '
Your new password did not match the confirmed new password!</p>';
}
}
/**se tutte e tre le variabili sono ok facciamo la query*/
/**individuiamo l'id del record da modificare*/
/**se è ==1 facciamo la query di update*/
if ($lo && $pa && $npa)
{
$query = "SELECT id FROM users WHERE (username='$lo' AND password=PASSWORD('$pa') )";
$result = mysql_query ($query) or die (mysql_error());
$num = mysql_num_rows ($result);
if ($num == 1)
{
$row = mysql_fetch_array($result, MYSQL_NUM);
$query = "UPDATE users SET password=PASSWORD('$npa') WHERE id=$row[0]";
$result = mysql_query ($query) or die (mysql_error());
if (mysql_affected_rows() == 1)
{
echo '
[b]Your password has been changed.[/b]</p>';
exit();
}
else
{
$message = '
Your password could not be changed due to a system error. We apologize for any inconvenience.</p>
' . mysql_error() . '</p>';
}
}
else{
$message = '
Your loginName and password do not match our records.</p>';
}
mysql_close();
}
else
{
$message .= '
Please try again.</p>';
}
}
/**stampa del messaggio risultante dalla procedura*/
if (isset($message))
{
echo '<font color="red">', $message, '</font>';
}
?>
E il form di ora
<h2><font face="Times New Roman" color="green">[b]Change Your Password</h2>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
<font face="Times New Roman" color="green">[b]Login Name: <input type="text" name="loginName" size="20" maxlength="40" value="<?php if (isset($_POST['loginName'])) echo $_POST['loginName']; ?>" /></p>
<font face="Times New Roman" color="green">[b]Current Password: <input type="password" name="password" size="10" maxlength="20" /></p>
<font face="Times New Roman" color="green">[b]New Password: <input type="password" name="password1" size="10" maxlength="20" /></p>
<font face="Times New Roman" color="green">[b]Confirm New Password: <input type="password" name="password2" size="10" maxlength="20" /></p>
<input type="submit" name="submit" value="Changeme" /></p>
<input type="hidden" name="submitted" value="TRUE" />
</form>
Ora mi dice questo in rosso
Your loginName and password do not match our records.
Io voglio che dica Your password has been changed e ovviamente deve cambiare password!!!
E grazie!!!