Elikkäs, ongelma on sellainen kun minulla on käyttäjätunnus MySQL-tietokannassa, niin pitäisi PHP:n puolelle tehdä tarkistus, että ISOT ja pienet merkit huomioidaan.
Nykyisellään minulla on vain login-kenttään syötetyn merkkijonon mukaan haku tietokannasta ja jos tietokannasta löytyy yksi rivi, niin tunnus on oikein. Tämä toimii tarkoitukseeni oikein hyvin, mutta ei ota huomioon ISOJA ja pieniä kirjaimia. Miten sen voisi laittaa huomioimaan ne?
Esim.
1. Erkki74 kirjautuu.
2. SELECT login FROM kayttaja WHERE login = $loginKentanArvo
- tässä kohtaa löytyy aina arvoja vaikka olisi kirjauduttu erkki74 tunnuksella
http://dev.mysql.com/doc/refman/5.0/en/case-sensitivity.html
Eli jotakuinkin
SELECT name FROM users WHERE name COLLATE latin1_bin = 'Hoover'
Voit myös tehdä tarkistuksen tähän tapaan, joka on case-sensitive:
if($login_name == $mysql_result) { // login }
Käsittääkseni nyt teet sen kutakuinkin näin:
if($mysql_result) { // login }
Myslin resultsettihän on resurssi, joten sitä ei suoraan verrata. Ja muutenkin, jos tiedossa on molempien muuttujien muuttujatyypit niin sama käyttää === operaattoria. Ja mitä haittaa siitä on vaikka isojen ja pienten kirjainten välille ei tehdä eroa? Päinvastoin, minusta on käyttäjänä moinen oikein hyödyllinen ominaisuus.
tsuriga kirjoitti:
Ja mitä haittaa siitä on vaikka isojen ja pienten kirjainten välille ei tehdä eroa? Päinvastoin, minusta on käyttäjänä moinen oikein hyödyllinen ominaisuus.
Jep, itekkin kyllä tykkään että nimimerkki on case-insensitive kenttä. Ja että tietokantaan ei voi laittaa kahta eri käyttäjää Eki ja eki.
Mutta entäpä kun muunnetaan salasana -> MD5, niin onko pikkumerkki sama kuin iso? Lähinnä tämän takia ajattelin muuntaa casesensitiveksi.
Tottakai salasanan pitää olla case-senssi, mutta minusta käyttäjänimen on hyvä olla case-insensitive. Perustelut sanoikin jo ajv.
Hoover kirjoitti:
Mutta entäpä kun muunnetaan salasana -> MD5, niin onko pikkumerkki sama kuin iso? Lähinnä tämän takia ajattelin muuntaa casesensitiveksi.
Salasanan tallennus MD5-hashattuna tekee salasanasta case sensitiven, sillä MD5(eki) <> MD5(Eki)
Lisätietoa vaikka wikipediasta
MD5 on case-sensitive.
Roger, asia tällä selvä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.