Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Cambio Password . . .

  1. #1
    Utente di HTML.it L'avatar di Nazza97
    Registrato dal
    Apr 2012
    Messaggi
    200

    Cambio Password . . .

    Salve a tutti, Ho creato questo script, però non capisco il problema ...

    Dunque il codice è questo



    Codice PHP:
    <?php if(isset($_SESSION['username'])){ $id $_GET['id']; $sel_info mysql_fetch_array(mysql_query("SELECT * FROM users WHERE id='$id'")); } echo <<<EOT  <form action="{$action}method="POST" onSubmit="check_registrazione();"InsUna Nuova Password:<input type="text" placeholder="Inserisci Password" class="impostazioni_colore_form_password" title="Inserisci La Nuova Password Che Verrà Usata Per Il Login!" name="password" required />

     <
    input type="submit" name="submit" class="button_cambia_password" value="Cambia La Password!"></formEOT$password addslashes(htmlspecialchars($_POST['password'])); if(empty($password))     die '<div class="notification failure hideit">Devi Riempire Tutti I Campi</div>'$query mysql_query("UPDATE users SET password='$password' WHERE id='$id'"); ?>


    (Questo script cambia solo la password dell'id di quella determinata persona, e chiunque può cambiarla e non va bene questo..)

    I Problemi Sono :
    Per Far spuntare questo cambia password bisogno essere loggati (ho provato con else if ma non ci riesco)
    .

    Poi
    Praticamente Ho Il sito diviso in ?id=1 ?id=2 etc...

    (Voglio fare ad esempio il cambia password di facebook che ti determina la sessione e ti cambia la password senza mettere il nome utente nel form )

    Non so se ci siamo capiti , se non lo è vi risponderò in seguito.
    Nazza

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,038
    Il codice non metterlo tutto su una riga, riformattalo o diventa incomprensibile.

    Al momento del login metti in sessione l'id dell'utente che si è appena loggato ed usi quello per determinare a chi cambiare la password.

  3. #3
    Comincia col scrivere il codice usando gli spazi,per una questione di ordine e di organizzazione...comunque devi mettere una condizione alternativa all'if,prova così
    Codice PHP:
    <?php
    if(!isset($_SESSION['username'])){
    exit;
    }else{
    $id $_GET['id'];
    $sel_info mysql_fetch_array(mysql_query("SELECT * FROM users WHERE id='$id'"));
    echo <<<END
    <form action="{$action}" method="POST" onSubmit="check_registrazione();">
    Ins. Una Nuova Password:_ <input type="text" placeholder="Inserisci Password" class="impostazioni_colore_form_password" title="Inserisci La Nuova Password Che Verrà Usata Per Il Login!" name="password" required />


    <input type="submit" name="submit" class="button_cambia_password" value="Cambia La Password!"/>
    </form>
    END;
    $password addslashes(htmlspecialchars($_POST['password']));
    if(empty(
    $password)){
    echo 
    "<div class=\"notification failure hideit\">Devi Riempire Tutti I Campi</div>";
    }
    }
    ?>

  4. #4
    Utente di HTML.it L'avatar di Nazza97
    Registrato dal
    Apr 2012
    Messaggi
    200
    Si Ma Facendo exit non visualizzo il resto del codice....


    Poi Non Capisco perchè anche mettendo un controllo che se è vuoto l'input dia l'errore però una volta che entri nella pagina dove c'è appunto l'input queso invia i dati nel database e anche mettendo
    Codice PHP:
        if (( $password == "d41d8cd98f00b204e9800998ecf8427e" ))    exit; 
    Che sarebbe "vuoto" quella password, con die o exit poi non visualizzo il resto del codice...
    Nazza

  5. #5
    Nel codice che ho postato se la sessione non è definita e quindi l'utente non è collegato viene eseguito exit() altrimenti procede al cambio della password...
    Volendo potresti mettere un header("location:....."); prima di exit() per mandare l'utente a una pagina dove gli dici che non è collegato

  6. #6
    Utente di HTML.it L'avatar di Plopper
    Registrato dal
    Mar 2012
    Messaggi
    102
    Attento:
    Codice PHP:
    $id $_GET['id']; 
    $sel_info mysql_fetch_array(mysql_query("SELECT * FROM users WHERE id='$id'")); 
    è vulnerabile a sql injection

    Comunque opterei per la soluzione di damy ovvero l'header col redirect e l'exit

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