ďťż

[php|mysql] Rozpoznawanie wielkości znaków w zapytaniach

       

Podstrony


telcocafe

Witam
W moim systemie rejestracji jest coś takiego, że jeżeli przy rejestracji poda się login, który już jest w bazie danych, wywołuje błąd
jest za to odpowiedzialna funkcja:

function login_use($login) { $query = mysql_query("SELECT username FROM people WHERE username = '$login'") or die(mysql_error()); $uzyty = false; while($user = mysql_fetch_array($query)) { if($login == $user['username']) { $uzyty = true; } } return $uzyty; }

jednak jeżeli w bazie istnieje użytkownik 'PiKey' zaś do formularza wpiszę 'pikey' to funkcja zwraca false czyli niby użytkownik jest wolny.
Co mogę z tym zrobić?



if(strtolower($login) == strtolower($user['username'])) { $uzyty = true; }

strtolower zmniejsza wszystkie litery w ciagu znaków na małe litery...

function login_use($login)
{
$query = mysql_query("SELECT 1 FROM people WHERE username LIKE '$login'") or die(mysql_error());
if (is_array(mysql_fetch_array($query,MYSQL_NUM)))) { return true; }else{return false;}
}

Wersja zoptymalizowana i uproszczona. Oczywiście radzę sprawdzić czy gdzieś się nie pomyliłem.

//Do postu niżej: Otóż to! Dzięki za zwrócenie uwagi. W końcu mamy się wspólnie doskonalić.
Użytkownik NIC edytował ten post 09 lipiec 2007, 22:33
if (is_array(mysql_fetch_array($query,MYSQL_NUM)))) { return true; }else{return false;}
prościej: return is_array(mysql_fetch_array($query,MYSQL_NUM));

Ja się czepiam, wiem, ale co ja poradzę, że mnie w oczy kłuje :P

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.