Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    59

    Controllo sull'esistenza di un record

    Buongiorno a tutti....

    Ho realizzato uno script che consente all'utente di poter modificare la propria password di accesso ad una pagina. Ho creato una tabella che si chiama login con due campi: username e password e l'ho riempita con dei record.

    La paginetta che ho creato funziona perfettamente, aggiorna cioè le password modificate, il problema e che non riesco a inserire un controllo che stampi una riga che dica "attenzione password inesistente".
    Cerco di spiegarmi meglio.
    Quando vado a fare la query di update vorrei che se la vecchia password inserita non corrisponda con nessuna che si trovi nel db mi appaia un messaggio di errore.
    Ho provato in tantissimi modi..... ma niente da fare....

    Allego la paginetta di script che ho creato! Potete aiutarmi per favore?
    <?php
    include ("config.inc.php");
    session_start();

    ?>
    <form method=post action=modifica_pass.php>
    Vecchia password

    <input type=text size=40 name=password>


    Nuova password

    <input type=text size=40 name=newpass>


    Ripeti password

    <input type=text size=40 name=newpassbis>


    <input type=submit value=Invia>
    </form>

    <?php
    $password=$_REQUEST['password'];
    $newpass=$_REQUEST['newpass'];
    $newpassbis=$_REQUEST['newpassbis'];


    if ($newpass==$newpassbis) {
    $query = "update login set password='$newpass' where password='$password'";
    //Con $query viene richiesto di modificare in newpass (la nuova variabile inserita) il campo password
    //della tabella login dove il campo password della tabella è uguale alla vecchia password inserita.
    $result=mysql_query($query);
    echo ("aggiornamento eseguito");
    $totale=mysql_affected_rows();
    echo $totale;
    }
    else
    echo ("Attenzione il campo nuova password e ripeti password non coincidono.
    Ridigitare la nuova password");

    ?>

  2. #2
    Utente di HTML.it L'avatar di zoseppe
    Registrato dal
    Jan 2005
    Messaggi
    306
    prima di lanciare l'update fai una query di controllo...
    Codice PHP:
    $query_check=("SELECT * FROM login where password='$password' ");
    $sql_check=mysql_query($query_check);

    if(
    mysql_num_rows($sql_check)==0)
    {
    echo
    "Attenzione, password inesistente...";
    exit();
    }else{
    // vai avanti con il tuo codice


  3. #3
    Puoi anche fare il controllo sul tuo codice dopo l'update... in $totale ottieni il numero di riche modificate e la condizione che usi nell'update impone di modificare solo le righe in cui la password vecchia coincide...

    dopo l'update se $totale è 0 significa che l'utente ha inserito una vecchia password inesistente!

    Vorrei invece porti un'altra problematica: se due utenti hanno la password uguale? La cambi a tutti e due?
    Io inserirei anche un controllo sul nick in modo da ottenere una sostituzione univoca!
    By Pegoraro Marco
    http://adessoweb.biz- AdessoWEB - Siti web professionali a prezzo accessibile!
    http://consulenza-web.com- Il mio blog!

  4. #4
    Utente di HTML.it L'avatar di zoseppe
    Registrato dal
    Jan 2005
    Messaggi
    306
    Vorrei invece porti un'altra problematica: se due utenti hanno la password uguale? La cambi a tutti e due?
    sono d'accordo, anzi, io il controllo lo farei solo sul nickname!

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    59
    Originariamente inviato da zoseppe
    prima di lanciare l'update fai una query di controllo...
    Codice PHP:
    $query_check=("SELECT * FROM login where password='$password' ");
    $sql_check=mysql_query($query_check);

    if(
    mysql_num_rows($sql_check)==0)
    {
    echo
    "Attenzione, password inesistente...";
    exit();
    }else{
    // vai avanti con il tuo codice


    Grazie mille zoseppe ora funziona esattamente come volevo vorrei solo capire una cosa...nella riga
    (mysql_num_rows($sql_check)==0)
    uguale a zero è come voler dire "non esiste"????
    Si può usare ad esempio il simbolo "!" ????

  6. #6
    Utente di HTML.it L'avatar di zoseppe
    Registrato dal
    Jan 2005
    Messaggi
    306
    esatto, significa: "se non esistono records". Ovviamente al posto del == puoi usare il != e gestire ile istruzioni "al negativo"!

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    59
    Originariamente inviato da Marburg
    Puoi anche fare il controllo sul tuo codice dopo l'update... in $totale ottieni il numero di riche modificate e la condizione che usi nell'update impone di modificare solo le righe in cui la password vecchia coincide...

    dopo l'update se $totale è 0 significa che l'utente ha inserito una vecchia password inesistente!

    Vorrei invece porti un'altra problematica: se due utenti hanno la password uguale? La cambi a tutti e due?
    Io inserirei anche un controllo sul nick in modo da ottenere una sostituzione univoca!

    Giustissimo non ci avevo proprio pensato.... :master:
    Quindi dovrei inserire un nuovo campo di acquisizione dati che si chiama username e fare il controllo su questo.... ho capito bene?
    Ma se io rendessi il campo password un campo univoco non otterrei lo stesso risultato?

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    59
    Originariamente inviato da ludya
    Grazie mille zoseppe ora funziona esattamente come volevo vorrei solo capire una cosa...nella riga
    (mysql_num_rows($sql_check)==0)
    uguale a zero è come voler dire "non esiste"????
    Si può usare ad esempio il simbolo "!" ????
    Grazie di nuovo per la pazienza....

  9. #9
    Certamente puoi rendere univoco il campo password e ottenere il medesimo risultato... però la password è di per sè un'informazione non univoca.

    Solitamente la password me la scelgo io ed è un'informazione soggetiva. Già sapere che la password è utilizzata da un'altra persona... è già una brutta informazione!

    Io ti consiglio comunque di tenere il nick come campo univoco e la password no.

    Prova anche a leggere questo articolo:
    http://www.via-web.biz/sicurezza-ges...ord.dc-31.html

    L'ho scritto un po' di tempo fa ma ci sono concetti e porzioni di codice che potrebbero tornarti utili!

    Ciao!
    By Pegoraro Marco
    http://adessoweb.biz- AdessoWEB - Siti web professionali a prezzo accessibile!
    http://consulenza-web.com- Il mio blog!

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.