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

    [My SQL]Condizioni di controllo strette

    Salve a tutti ho un problema.... per il login del mio sito faccio un interrogazione al database e verifico la corrispondenza tra utente e password inseriti e quelli che stanno sul DB il problema è che se io scrivo TheMay o theMay o themay o THEMAY o in qualsiasi altro modo, non cambia assolutamente nulla entra comunque senza verificare la differenza tra lettere grandi e piccole. C'è un modo per controllare le differenze tra i caratteri in SQL? Nei normali linguaggi di prorammazzione bisogna mettere tre segni di ugualianza (===) per fare un controllo stretto sull'ugualianza di due variabili in SQL cè' un corrispondente???? ho già povato:

    SELECT user, password FROM user WHERE user==='user_inserito' AND password==='pwd_inserita'

    ma non funziona assolutamente.....
    Come posso fare???
    Why so serious?????

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Dovresti eseguire un confronto binario

    SELECT ..... AND password= binary('pwd_inserita')

    Sarebbe meglio però che non salvassi le password in chiaro.

    codice:
    create table utenti(
    id int not null auto_increment,
    nome varchar(50),
    pwd char(32),
    primary key (id)
    ) engine = myisam
    
    insert into utenti (nome,pwd) values ('utente1',md5('prova'));
    insert into utenti (nome,pwd) values ('utente2',md5('Prova'));
    
    select * from utenti where nome = binary('utente1') and pwd = md5('Prova')
    Vedrai che la select non identificherà alcun utente perchè l'md5 di Prova è diverso da quello di prova.

  3. #3
    GRazie mille il tuo consiglio mi è stato molto utile, ma non ho capito bene a cosa serve scrivere md5....
    Why so serious?????

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    http://it.wikipedia.org/wiki/MD5
    http://dev.mysql.com/doc/refman/5.1/...l#function_md5

    Serve per non salvare le password in chiaro nel db.

    Se avessi fatto una semplice prova

    select md5('pippo') /* 0c88028bf3aa6a6a143ed846f2be1ea4 */
    select md5('Pippo') /* 4a057a33f1d8158556eade51342786c6 */

    avresti capito cosa intendevo.

  5. #5
    a ok grazie proverò subito
    Why so serious?????

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