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

    modifica password si "impalla"

    Ciao a tutti ragazzi,

    mi sono imbattuto in un problema a cui non riesco a venirne fuori, vi spiego bene e posto anche codice:

    l' utente X dopo avere effettuato il login ha a disposizione una pagina con le informazioni del profilo dove può anche modificarle, in questo caso parliamo di MODIFICA PASSWORD.

    Da premettere che tutte queste funzioni le ho svolte tutte sulla stessa pagina tramite richiami GET.

    Ovviamente prima di poter cambiare la password voglio sapere ( per sicurezza) qual'è la password attuale dell' utente, ecco questo è il problema, perchè fin quando faccio tutti gli altri controlli tutto fila liscio tipo che i campi non siano vuoti, che la lunghezza della nuova pw sia compresa tra 6 e 16 caratteri e che il campo nuova pw e conferma nuova pw siano uguali.

    Ma non appena aggiungo la parte del codice per il controllo vecchia password al momento della pressione del bottone "Cambia password" non succede proprio niente, ne un messaggio d' errore né niente.

    Vi posto il codice per farvi capire meglio

    Codice PHP:
    <form method="POST" action="?page=profile&act=chgpw&chg=checkpw">
                                <
    table align="center" border="0">
                                    <
    tr>
                                        <
    td align="right">
                                            
    Vecchia Password:
                                        </
    td>
                                        <
    td align="left">
                                            <
    input type="password" name="vecchiapw" id="vecchiapw" size="15">
                                        </
    td>
                                    </
    tr>
                                    <
    tr>
                                        <
    td align="right">
                                            
    Nuova Password:
                                        </
    td>
                                        <
    td align="left">
                                            <
    input type="password" name="nuovapw" id="nuovapw" size="15">
                                        </
    td>
                                    </
    tr>
                                    <
    tr>
                                        <
    td align="right">
                                            
    Conferma Nuova Password:
                                        </
    td>
                                        <
    td align="left">
                                            <
    input type="password" name="renuovapw" id="renuovapw" size="15">
                                        </
    td>
                                    </
    tr>
                                    <
    tr>
                                        <
    td align="center" colspan="2">
                                            
    <
    input type="submit" value="Cambia Password">
                                        </
    td>
                                    </
    tr>
                                </
    table>
                            </
    form
    Questo era il form normalissimo e ora il richiamo GET

    Codice PHP:
    if (($page=="profile")&&($act=="chgpw")&&($chg=="checkpw")){

    $old_pw="SELECT password FROM utente WHERE id='$id_utente'";
                                    
    $res_old_pw=mysql_quey($old_pw) or die ("Query Fallita");
                                    
    $vecchia_pass=mysql_result($res_old_pw,0,"password");

    if(
    strlen($_POST[vecchiapw])<1) echo '<div align=center class=error><img src=image/report.png border=0> Devi inserire la vecchia password.
    <a href=javascript:history.back()>Riprova</a></div>'
    ;
                                    else if(
    strlen($_POST[nuovapw])<1) echo '<div align=center class=error><img src=image/report.png border=0> Devi inserire la nuova password.
    <a href=javascript:history.back()>Riprova</a></div>'
    ;
                                    else if(
    strlen($_POST[renuovapw])<1) echo '<div align=center class=error><img src=image/report.png border=0> Devi confermare la nuova password.
    <a href=javascript:history.back()>Riprova</a></div>'
    ;
                                    else if((
    $_POST[nuovapw])!=($_POST[renuovapw])) echo '<div align=center class=error><img src=image/report.png border=0> Le nuove password non coincidono.
    <a href=javascript:history.back()>Riprova</a></div>'
    ;
                                    else if(
    strlen($_POST['password_reg'])<|| strlen($_POST['password_reg'])>16) echo '<div align=center class=error><img src=image/report.png border=0> Per la tua sicurezza la password deve essere compresa tra 6 e 16 caratteri.
    <a href=javascript:history.back()>Riprova</a></div>'
    ;
                                    
    //QUI IL PROBLEMA
    else if(($_POST[vecchiapw]) != ($vecchia_pass)) echo '<div align=center class=error><img src=image/report.png border=0> La tua vecchia password non coincide con quella appena inserita.
    <a href=javascript:history.back()>Riprova</a></div>'
    ;
                                    else{ 
                                        
    // quì codice nel caso positivo
                                        
    }
    }
                                } 
    Questo è tutto il codice, può darsi che ci sia qualche piccolo errore di sintassi o non so cosa... Ringrazio tutti anticipatamente...

  2. #2
    Il primo if non ha senso se non c'è il register_globals (... sperando che effettivamente nono ci sia).
    ---
    Devi utilizzare l'array $_GET
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  3. #3
    Non ho capito cosa intendi... Il primo if fa rifermento alle variabili GET, ed ovviamente
    Codice PHP:
    $page=mysql_real_escape_string($_GET['page']); 
    come tutte le altre variabili.
    questo è solo un pezzo di codice...

  4. #4
    Ho risolto tutto in questo modo:
    prima di tutto c'era un errore di sintassi nel codice, mancava una R in mysql_queRy. Poi ho tolto il controllo del campo vecchia password nel caso sia vuoto perché è ovvio che se è vuoto è comunque diversa da quella attuale ed infine la parte del controllo che la password sia compresa tra 6 e 16 caratteri avevo fatto copia e incolla dal codice della registrazione e i nomi dei campi erano diversi =)

    Ringrazio tutti comunque.. Saluti.

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.