[ nezki @ 09.02.2007. 13:45 ] @
Imam problem oko login forme jer ne mogu da uradim da logovanje bude case sensitive
Evo kako glasi select naredba koja proverava da li u tabeli login u kojoj se cuvaju korisnicka imena i lozinke postoji korisnik sa prosledjenim korisnickim imenom i lozinkom.
Code:

    if (isset($_POST["korisnik"]) && isset($_POST["lozinka"])  ) {
            $sql="select * from login where UPPER(\"".$_POST["korisnik"]."\")=UPPER(korisnik) and UPPER(lozinka) = UPPER(\"".$_POST["lozinka"]."\" )";
            $rs = $db->query($sql);
            if (mysql_num_rows($rs) != 0) 
            { ...
                           uspesno logovanje ....

Ovaj upit radi posao ali nije Case Sensitive jer kada neko unese korisnicko ime PERA i pera upit ga isto tretira, a ja hocu da PERA i pera budu dva razlicita korisnicka imena. Trazio sam ovuda po forumu resenje ali ga nigde nema, ako neko zna neki jednostavan nacin da resim ovo molim ga da mi pomogne.
Poz svima
[ Davor Grubelić @ 09.02.2007. 14:14 ] @
pa naravno da ce ti tretirati isto PERA i pera kada pri provjeri ti pretvaras sve varijable da budu VELIKA slova...
znaci upises PERA, nece ti nista konvertirati..
a kad upises pera konevrtitati ce ti ime u PERA i provjeriti.

i to ti radi mysql interna funkcija UPPER.
izbrisi to i radit ce ti bas kako zelis.
[ nezki @ 09.02.2007. 14:52 ] @
Ovako glasi kod mog upita koji radi proveru da li korsinik postojiu bazi:

Code:


    if (isset($_POST["korisnik"]) && isset($_POST["lozinka"])  ) {
            $sql="select * from login where korisnik =\"".$_POST["korisnik"]."\" and lozinka= \"".$_POST["lozinka"]."\"  ";
            $rs = $db->query($sql);
            if (mysql_num_rows($rs) != 0) 
            { ...
                           uspesno logovanje ....

To upper sam zaboravio da izbrisem posto sam nesto pokusavao,izvinjavam se.
Znaci ovako izgleda upit i ne radi,nije case sensitive.
Ni ja ne znam zasto ne radi, a trebao bi, ali nece pa nece.
Tako da ljudi pomagajte.
Haug svima
[ japan @ 10.02.2007. 02:21 ] @
za početak malo isproveravaj te $_POST varijable, nemoj da ih guraš direktno u upit, a to da li je CS ili ne, zavisi od toga kako ti je podešena baza, tj koji collation si izabrao, i nema veze sa php-om.

http://dev.mysql.com/doc/refman/5.0/en/case-sensitivity.html
[ [KS] @ 11.02.2007. 22:11 ] @
Code:

if (isset($_POST["korisnik"]) && isset($_POST["lozinka"])  ) {
            $sql="select * from login where korisnik =\"".$_POST["korisnik"]."\" and lozinka= \"".$_POST["lozinka"]."\"  ";
            $rs = $db->query($sql);
            if (mysql_num_rows($rs) != 0) 
            { ...
                           uspesno logovanje ....


probaj sa

Code:


$sql ="select * from login where MD5(korisnik)=MD5(\"".$_POST["korisnik"]."\") AND MD5(lozinka)=MD5(\"".$_POST["lozinka"]."\" )";



ima tu jos mjesta za ispravke...
[ nezki @ 11.02.2007. 22:19 ] @
Izvinjavam se sto nisam napisao da resenje izgleda ovako, pa ako neko bude imao slicnih problema da s ene muci :)
Code:

    $sql="select * from login where korisnik COLLATE utf8_bin =\"".$_POST["korisnik"]."\" COLLATE utf8_bin and lozinka COLLATE utf8_bin = \"".$_POST["lozinka"]."\" COLLATE utf8_bin ";

To je sva filozovija i radi stvar odlicno.
Poz svima!
[ Zmaj @ 12.02.2007. 10:00 ] @
offtopic :: samo komentar na poslednja dvaposta

sto jednostavno

Code:
$sql ="select * from login where MD5(korisnik)=MD5(\"".$_POST["korisnik"]."\") AND MD5(lozinka)=MD5(\"".$_POST["lozinka"]."\" )";


kad moze i komplikovano

Code:
 $sql="select * from login where korisnik COLLATE utf8_bin =\"".$_POST["korisnik"]."\" COLLATE utf8_bin and lozinka COLLATE utf8_bin = \".....
[ nezki @ 12.02.2007. 11:16 ] @
offtopic :: samo komentar na poslednju posetu

Code:

$sql ="select * from login where MD5(korisnik)=MD5(\"".$_POST["korisnik"]."\") AND MD5(lozinka)=MD5(\"".$_POST["lozinka"]."\" )";


Ovo jednostavno resenje ne radi posoa koji meni treba, Zmaju, tako da tvoj komentar nije na pravom mestu.