ciao a tutti..
ho cercato di completare uno script molto valido recuperato su
http://soulcanada.altervista.org/blo...rd#comment-114
sto cercando di imparare quindi smanetto..
il problema è che non riesco a modificare un campo (password) dul db
1. ho creato la funzione
(o meglio duplicata una simile.. siamo onesti)
Codice PHP:
function userSetToken($token, $userId)
{
// Apro la connessione al database
$connection = getConnection();
// Questa la query di aggornamento
$sql = "UPDATE user
SET token = '%s'
WHERE user_id = %d";
// Assegno alla query i parametri da cercare
$sql = sprintf($sql, $token, $userId);
// Eseguo la query
$result = mysql_query($sql, $connection);
// Se si verificato un errore oppure nessun token stato settato
// ritorno false
if (false == $result || mysql_affected_rows($connection) == 0)
{
return false;
}
// altrimenti ritorno true
else
{
return true;
}
}
che mi viene richiamata dal modulo di cambio password che ho scritto così:
Codice PHP:
// Questo il token che identifica la richiesta di un utente
$token = $_GET['token'];
// includo la lista delle funzioni di utilitˆ
require_once 'inc/utils.php';
// Controllo se il token valido e, se non lo ,
// stampo a video l'errore
if (false == tokenIsValid($token))
{
$errors[] = 'Errore nella validazione utente token';
echo showFormErrors($errors);
exit();
}
// Includo la lista delle funzioni per gestire gli utenti
require_once 'inc/user.php';
// Cerco i dati di un utente in base al token
$user = userFindByToken($token);
$userPassword = $_POST['user-password'];
$userPasswordRepeat = $_POST['user-password-repeat'];
// Qui inseriamo gli errori
$errors = array();
/* Controllo sulla password inserita
*
* Se la lunghezza 0 allora il campo vuoto
* altrimenti controllo che la password abbia una lunghezza di almeno 6 caratteri
* altrimenti controllo che il campo password ed il campo ripeti password siano uguali
*/
if (count($_POST) == 0)
{
require_once 'views/change_password.php';
}
else if (strlen($userPassword) == 0)
{
$formErrors[] = 'Il campo password è obbligatorio';
}
else if (strlen($userPassword) < 6)
{
$formErrors[] = 'La password inserita è troppo corta';
}
else if ($userPassword != $userPasswordRepeat)
{
$formErrors[] = 'Il campo password ed il campo ripeti password non sono uguali';
}
else{
$userPassword = md5($userPassword);
$userId = updateUser($userId);
if (false == $userId)
{
$formErrors[] = 'Si è verificato un errore durante la registrazione della nuova password';
}
else
{header('Location: views/confirm_changepassword.php');
}
}
// Stampo a video la lista degli errori, se presenti
echo showFormErrors($formErrors);
tutto funziona.. fuorché l'update!!!!
immagino di aver fatto casino con la definizione di:
$userPassword = $_POST['user-password'];
$userPasswordRepeat = $_POST['user-password-repeat'];
o di essermi volato qualche passaggio
non chiedo soluzioni, ma indicazioni.......... così imparo!!!