![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 115 Pomógł: 3 Dołączył: 19.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Jak dotąd korzystałem ze zwykłego połączenia z bazą MySQL. W niej obojętne było jakiej wielkości litery wprowadzałem, czy logowałem się pod nickiem: Gracz, czy, gracz, i tak rozróżniało. Obecnie przerzuciłem się na połączenie PDO, i ku mojemu zaskoczeniu rozróżnia wielkość liter. Z tego co słyszałem, da się to jakoś naprawić przy użyciu warunków regularnych aczkolwiek nie mam pojęcia jak.
O to kod logowania, jak coś. Z góry dziękuję. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 711 Pomógł: 127 Dołączył: 5.07.2008 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Problem nie tkwi w PDO. Masz warunek $row['UsName'] != $nick który uwzględnia wielkość liter. Według mnie ten warunek jest całkowicie zbędny a Twoje zapytanie SQL błędne.
Proponuję usunąć z zapytania wszystko po OR, łącznie z OR (sic!) i sprawdzać czy pobrane z bazy hasło jest równe temu podanemu przez usera |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 115 Pomógł: 3 Dołączył: 19.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
No tak. Zadziałało. Aczkolwiek co w takim razie zrobić by wypisywało błąd jeżeli nick będzie całkiem błędny?
PS. Praktycznie w takim razie też przy rejestracji potrzebuję zablokować duplikowanie nicków, więc praktycznie tam muszę sprawdzać czy jakiś nick się nie powtarza. i wtedy nie mogą być duplikowane mimo różnic wielkości liter.
Kod rejestracji ;| Ten post edytował Arhimenrius 16.10.2011, 15:56:27 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 711 Pomógł: 127 Dołączył: 5.07.2008 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Przy porównywaniu potraktuj zmienne funkcją mb_strtolower, wtedy zamienisz duże litery na małe i problem znika
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 115 Pomógł: 3 Dołączył: 19.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
Tu nie chodzi że chce wszystkie naraz zmienić, tylko by mnie zalogowało pomimo zalogowania się pod nickiem z jakąkolwiek wielkością liter. By jak wpisze nick: Gracz, to mnie zalogowało tak samo jak wpisze GrAcZ lub inaczej.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Po pierwsze zrób zapytanie, które pobiera powiedzmy id użytkownika
Następnie bindParam dla name i password, jeżeli zwróci id znaczy, że dane były poprawne w przeciwnym razie zwracasz błąd: Niepoprawny login lub hasło. Ot cała filozofia. -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 115 Pomógł: 3 Dołączył: 19.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
Hmmm... zastosowałem Twoją metodę i owszem, nie rozróżnia wielkości liter. Aczkolwiek w tej chwili, mogę podać jakiekolwiek hasło, sesja się otworzy aczkolwiek tylko dla pliku index.php. U mnie jeżeli sesja jest zaczęta, powinno przenosić do pliku game.php.
Taki jest u mnie warunek sprawdzający w tym game.php. PS. Rozwiązane, starczyło podmienić żeby przypisywało dane do sesji dopiero po tym jeżeli warunek nie zostanie spełniony (
Ten post edytował Arhimenrius 16.10.2011, 18:19:26 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.06.2025 - 08:35 |