Visualizzazione dei risultati da 1 a 6 su 6

Discussione: cambio password

  1. #1

    cambio password

    Salve gentilissima comunity ho un problema nella pagina cambia password. La pagina è strutturata con la vecchia password e la nuova password al click del pulsante va alla pagina cambia.php e dovrebbe cambiare la password, ma la pagina mi restituisce

    "Mi dispiace non abbiamo potuto cambiare la password. Adesso ti reinderizziamo alla paggina precedente"

    Non so dove ho sbagliato potete aiutarmi a risolvere il problema. Ecco gli allegati


    cambiapassword.php
    Codice PHP:
    <?php
    include_once("../include/config.php");
    include_once(
    "../include/auth.lib.php");
    list(
    $status$user) = auth_get_status();
    if(
    $status == AUTH_LOGGED){
    $dashboard "../dashboard.php";
    $logout ="../logout.php";
    $logot_2 "logout";
    $cambia "cambia.php";
    }else      
    $msg 'Non hai i diritti per visualizzare la pagina';
    ?>
    <html>   
     <head>        
    <title>Cambia password</title>        
    <link rel="stylesheet" type="text/css" href="../../css/sito in css.css">           
    </head>   
     <body>   
    <a href="<?=$logout;?>"><?=$logot_2;?></a>  
      <div id="hormenu">    
    <ul>            
    <li><a href="<?=$dashboard;?>">torna indietro</a></li>        
    </ul>    
    </div>    
    <table align = "center">
    <form action="<?=$cambia;?>" method="post">
    <tr>
    <td>Vecchia password</td>
    <td><input type ="password" name="vpassword"></td>
    </tr>
    <tr>
    <td>Nuova password</td>
    <td><input type="password" name="npassword"></td>
    </tr>
    <tr>
    <td><input type="submit" value="Cambia password"></td>
    <td><input type="reset" value="Cancella"></td>
    </tr>
    </form>
    </table>
    <p align="center"><?=$msg;?></p>
    </body>
    </html>

    cambia.php

    Codice PHP:
    <?php
    include_once("../include/config.php");
    $vecchia_password $_POST["vpassword"];
    $nuova_password $_POST["npassword"];
    $v_password md5($vecchia_password);
    $n_password md5($nuova_password);
    $query mysql_query("INSERT INTO ".$_CONFIG['table_utenti']." (password) VALUES(".$n_password.") WHERE password=".$v_password."");
    if(!
    $query){
    echo
    "Mi dispiace non abbiamo potuto cambiare la password. Adesso ti reinderizziamo alla paggina precedente";
    header("Refresh: 5;URL=cambiapassword.php");
    }else{
    echo
    "Password cambiata correttamente. Adesso ti reinderrizeremo alla dasboard";
    header("Refresh: 5;URL=../dashboard.php");
    }
    ?>
    In attesa di vostra risposta

  2. #2
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Ci sono un po' di cose che non vanno ...e potresti vederle se attivi la visualizzazione degli errori:

    1. Non si aggiorna un record con la INSERT INTO...tra l'altro non accetta neanche la WHERE (in questo modo). Esiste la update
    2. Se i tuoi hash sono dei varchar, quando costruisci la query vanno messi tra apici.
    3. Ma se due persone hanno la stessa password (e quindi lo stesso hash md5), che fai, aggiorni entrambi?
    4. A meno che non è per studio, evita di usare la md5() che ormai non è più sicura...usa se puoi la bcrypt (password_hash()/password_verify()). Passa almeno a mysqli o meglio a PDO
    Ultima modifica di boots; 04-03-2020 a 14:38

  3. #3
    Ho provato ad usare la UPDATE ma mi da sempre lo stesso errore

    codice:
    $query = mysql_query("UPDATE ".$_CONFIG['table_utenti']." SET password=".$n_password." WHERE password=".$v_password."");

  4. #4
    il codice per fare l'hash va bene cosi

    codice:
    $v_password = password_hash($vecchia_password, PASSWORD_DEFAULT);

  5. #5
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Come ti ho detto, devi mettere gli hash tra gli apici:
    Codice PHP:
    mysql_query("UPDATE ".$_CONFIG['table_utenti']." SET password='".$n_password."' WHERE ..."); 
    Ora c'è una cosa da precisare:
    se usi password_hash() e PASSWORD_DEFAULT è BCRYPT viene generato un salt casuale (se non specificato tra le opzioni).
    Questo significa che se fai due volte password_hash con la stessa password in chiaro ottieni due hash diversi. Ovviamente questo ti impedisce di usare password come condizione della where.
    Io ti consiglio di usare l'id o lo username (se è loggato l'avrai in sessione) per selezionare il record.

  6. #6
    Salve ho provato a fare un codice php per il momento uso md5 perchè dovrei modificare il database e più tardi lo faccio il codice mi dice utente non registrato vi invio il codice

    codice:
    <?php
    include_once("../include/config.php");
    include_once("../include/auth.lib.php");
    $querys = mysql_query("SELECT id FROM ".$_CONFIG['table_utenti']." WHERE uid='".auth_get_uid()."'");
    $num = mysql_numrows($querys);
    if($num== 0){
    echo"Utente non registrato";
    }else{
    $vecchia_password = $_POST["vpassword"];
    $nuova_password = $_POST["npassword"];
    
    
    $queri = mysql_query("SELECT password FROM ".$_CONFIG['table_utenti']." WHERE password=MD5('".$vecchia_password."')");
    $num = mysql_numrows($queri);
    if($num== 0){
    echo "La password vecchia non corrisponde con quella con cui accedi. Ti reinderizzeremo alla pagina precedente";
    header("Refresh: 5;URL=cambiapassword.php");
    }else{
    $id = mysql_result($querys, "id");
    $query = mysql_query("UPDATE utenti SET password=MD5('".$nuova_password."') WHERE id=".$id."");
    
    
    $nums= mysql_numrows($query);
    if($nums== 0){
    echo"Mi dispiace non abbiamo potuto cambiare la password. Adesso ti reinderizziamo alla paggina precedente";
    header("Refresh: 5;URL=cambiapassword.php");
    }else{
    echo"Password cambiata correttamente. Adesso ti reinderrizeremo alla dasboard";
    header("Refresh: 5;URL=../dashboard.php");
    }
    }
    }
    ?>
    In attesa di vostra risposta

Tag per questa discussione

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 © 2024 vBulletin Solutions, Inc. All rights reserved.