Visualizzazione dei risultati da 1 a 4 su 4

Discussione: problema con UPDATE

  1. #1

    problema con UPDATE

    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 &egrave; 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 &egrave; 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!!!

  2. #2
    idiozia!!!!
    ho postato una parte sbagliata!!!!!

    funzione corretta!!!

    Codice PHP:

    function updateUser($userId)
    {
        
    // Apro la connessione al database
        
    $connection getConnection();
        
        
    // Questa  la query di aggornamento
        
    $sql "UPDATE user 
                SET password = '
    $userPassword'
                WHERE user_id = %d"
    ;
        
        
    // Assegno alla query i parametri da cercare
        
    $sql sprintf($sql$password$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;
        }


    e parte di codice
    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 &egrave; obbligatorio';
    }
    else if (
    strlen($userPassword) < 6)
    {
        
    $formErrors[] = 'La password inserita &egrave; 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 &egrave; 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); 

  3. #3
    idiozia!!!!!!
    ho postato la funzione sbalgiata!!!

    Codice PHP:
    function updateUser($userId)
    {
        
    // Apro la connessione al database
        
    $connection getConnection();
        
        
    // Questa  la query di aggornamento
        
    $sql "UPDATE user 
                SET password = '
    $userPassword'
                WHERE user_id = %d"
    ;
        
        
    // Assegno alla query i parametri da cercare
        
    $sql sprintf($sql$password$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;
        }

    e adesso il codice...

    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 &egrave; obbligatorio';
    }
    else if (
    strlen($userPassword) < 6)
    {
        
    $formErrors[] = 'La password inserita &egrave; 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 &egrave; 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); 

  4. #4

    RISOLTO!!!!

    mi sono messo sotto ed ecco la soluzione!!!

    funzione:
    Codice PHP:
    function updateUser($userPassword$userId)
    {
        
    // Apro la connessione al database
        
    $connection getConnection();
        
        
    // Questa  la query di aggornamento
            
    $sql "UPDATE user 
                SET password = '%s'
                WHERE user_id = %d"
    ;
        
        
    // Assegno alla query i parametri da cercare
        
    $sql sprintf($sql$userPassword$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;
        }


    parte di codice dove c'era errore!!!!


    Codice PHP:
    else{
         
    $userPassword md5($userPassword);
         
        if (
    false == updateUser($userPassword$user['user_id']))
        {
            
    $errors[] = "Si &egrave; verificato un errore durante il tentativo di recupero password.";
        }
        else 
            {
    header('Location: views/confirm_changepassword.php');    
        }


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.