Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    errore di login script con php 5.2

    ciao,
    sono appena passato da php 4.xx a php 5.2.3
    e da apache 1.xx a 2.2
    e mysql 5.0

    ho uno script di login che non mi funziona più....
    in pratica all'autenticazione non mi accetta lo user e psw che avevo e che esiste controllando con phpmyadmin. ho provato anche a crearne uno di nuovo sempre da phpmyadmin, ma niente da fare, non me lo accetta.
    c'è forse qualche problema da php 4 a 5?

    cmq questo è lo script per autenticazione:

    Codice PHP:
    function doLogin()
    {
        
    // if we found an error save the error message in this variable
        
    $errorMessage '';

        
    $userName $_POST['txtUserName'];
        
    $password $_POST['txtPassword'];

        
    // first, make sure the username & password are not empty
        
    if ($userName == '') {
            
    $errorMessage 'Devi inserire il nome utente';
        } else if (
    $password == '') {
            
    $errorMessage 'Devi inserire la password';
        } else {
            
    // check the database and see if the username and password combo do match
            
    $sql "SELECT user_id
                    FROM tbl_user
                    WHERE user_name = '
    $userName' AND user_password = PASSWORD('$password')";
            
    $result dbQuery($sql);

            if (
    dbNumRows($result) == 1) {
                
    $row dbFetchAssoc($result);
                
    $_SESSION['plaincart_user_id'] = $row['user_id'];

                
    // log the time when the user last login
                
    $sql "UPDATE tbl_user
                        SET user_last_login = NOW()
                        WHERE user_id = '
    {$row['user_id']}'";
                
    dbQuery($sql);

                
    // now that the user is verified we move on to the next page
                // if the user had been in the admin pages before we move to
                // the last page visited
                
    if (isset($_SESSION['login_return_url'])) {
                    
    header('Location: ' $_SESSION['login_return_url']);
                    exit;
                } else {
                    
    header('Location: index.php');
                    exit;
                }
            } else {
                
    $errorMessage 'Nome Utente e/o password errati';
            }

        }

        return 
    $errorMessage;

    grazie

  2. #2
    tra php 4 e 5 con mysql 5 cambia la gestione della password.

    Il client mysql installato su php4 creava un hash a 16 digit della passord con la funzione password(). Il client mysql installato su php 5.x genera un hash a 40 digit.

    Sempre che il problema sia questo ovviamente dovresti risolverlo cancellando la password attuale e riscrivendola con la nuova funzione (dal vecchio nome) password()

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    occhio.... tu non devi usare la funzione password() nel tuo script.... l'ho visto solo ora...

    la funzione password() viene applicata dal client in modo automatico..... se applichi anche tu la funzione viene fuori un pastrocchio del tipo:

    .... AND user_password = PASSWORD(PASSWORD('$password'))";

    chiaro che non ti trovi mai piu'....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    ciao, grazie per la risposta.

    il problema è, come faccio a ricreare la password se il login è quello che mi permette di entrare nella gestione stessa delle password?
    cosa faccio? mi creo un scriptino che genera un hash a 40 digit e lo copio/incollo nel campo password della tabella?

    ma questo può creare un problema inverso passando da mysql 5 a 4 ( dell' hoster) ?

    grazie

  5. #5
    ah ok! tolta la funzione PASSWORD() adesso funziona...
    grazie mille!

    e per la 2a domanda riguardo l'hoster?
    al limite rimetto la funzione password dici

  6. #6
    Originariamente inviato da blur
    ah ok! tolta la funzione PASSWORD() adesso funziona...
    grazie mille!

    e per la 2a domanda riguardo l'hoster?
    al limite rimetto la funzione password dici
    presumo che riguardo l'hoster tu abbia in qualche modo l'hash dell'hash... in pratica se funzionava prima e non hai toccato nulla dovrebbe funzionare come prima.

    In caso di cambio password sul db tieni presente la cosa.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    ehm..forse sono stato troppo precipitoso...

    ho tolto la funzione password() dallo script, ma non funziona ancora.
    in pratica io riesco ad entrare nel db solo con una psw in chiaro e non criptata.
    ho provato a creare una nuova psw e me l'ha regolarmente generata con un hash a 40 digit, ma poi se provo a loggarmi non funziona...

    :master:

  8. #8
    presumo che la password nel db la metti con phpmyadmin usando la funzione password().

    nello script la devi mettere in chiaro. that's all.

    controlla solo di usare phpmyadmin ultime versioni 2.11.0 e non altri tool non aggiornati. Meglio se usi mysql administrator per gestire il server e gli utenti.

    verifica le versioni php e mysql.... intendo il client ed il server. Con phpmyadmin lo vedi nella home.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.