![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 10.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam problem z porównaniem stringu z bazy danych i z formularza. Tu jest fragment kodu odpowiedzialny za to porównanie:
Chodzi o to, że przy porównywaniu stringa pochodzącego z formularza ze stringiem pobieranym z bazy danych zwraca mi -1 a powinno 0, bo stringi są takie same. W bazie mam kodowanie UTF8. Ten post edytował charli_22 19.03.2008, 11:50:50 -------------------- Test-Com - blog o testowaniu
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 55 Pomógł: 7 Dołączył: 8.12.2003 Skąd: Andrychów Ostrzeżenie: (0%) ![]() ![]() |
Możesz spróbować porównywać za pomocą operatora == i warunku IF
-------------------- adminvps.pl
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 10.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Czytałem że dla operatora '==' dwa stringi '1ala' i '1ola' są równe i zwracane jest TRUE.
![]() -------------------- Test-Com - blog o testowaniu
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 875 Pomógł: 122 Dołączył: 2.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Generalnie źle to robisz... nigdy nie powinieneś przechowywać haseł w czystym tekście... przy rejestracji usera robisz hasza md5" title="Zobacz w manualu PHP" target="_manual hasła i przechowujesz tylko hasz w bazie... potem przy logowaniu haszujesz hasło które user wpisał w formularzu i porównujesz tego hasza z haszem w bazie...
Ale wracając do tematu... pokaż skąd bierzesz zmienną $g_passwd... poza tym raz porównujesz ze zmienną $g_passwd a raz z $passwd... która jest prawidłowa...? Czytałem że dla operatora '==' dwa stringi '1ala' i '1ola' są równe i zwracane jest TRUE. ![]() Be-ze-dura... Czytałeś a nie sprawdziłeś...? Ten post edytował nowotny 19.03.2008, 11:26:01 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 10.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Powinno być passwd zamiast g_passwd. Poprawiłem. Jednak to nie rozwiązuje problemu, funkcja nadal zwraca wartość -1 dla porównywanych stringów
![]() Ten post edytował charli_22 19.03.2008, 11:31:12 -------------------- Test-Com - blog o testowaniu
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 240 Pomógł: 17 Dołączył: 28.12.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
nie znam angielskiego jednak z manuala wynika, że
Returns < 0 if str1 is less than str2; > 0 if str1 is greater than str2, and 0 if they are equal. wynik daje efekt <0 > 0 lub =0 a nie prawda lub fałsz daj bbkody usuń wykrzyknik Ten post edytował Chrom 19.03.2008, 11:41:32 |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 10.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Przy edycji ucięło mi kawałek postu. Chodzi o to, że przy porównywaniu stringa pochodzącego z formularza ze stringiem pobieranym z bazy danych zwraca mi -1 a powinno 0, bo stringi są takie same. W bazie mam kodowanie UTF8.
-------------------- Test-Com - blog o testowaniu
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 240 Pomógł: 17 Dołączył: 28.12.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 875 Pomógł: 122 Dołączył: 2.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
dajemy na początku strony Nie na początku strony tylko na początku skryptu... i to też nie do końca bo prawidłowo powinno być: zanim wyślemy cokolwiek do przeglądarki... co może nastąpić nawet w środku czy na końcu skryptu... charli_22, dostałeś odpowiedź już... używaj IFów... Ten post edytował nowotny 19.03.2008, 12:24:51 |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 10.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Problem był z bazą danych. W phpMyAdmin ustawiłem dla pola hasło Typ MIME na text/plain. I gdy sprawdziłem długość hasła wpisywanego przez usera i tego z bazy za pomocą strlen() to różniły się długością o 1. Ustawiłem w bazce Typ MIME na pusty i długość zwracana przez strlen() jest identyczna dla jednego i drugiego stringu.
Zgodnie z zaleceniem zajme się hashowaniem haseł. Obecnie ucze się pisania skryptów i odpuściłem hashowanie, bo wszystko odbywa się lokalnie:), więc nie ma strachu, że ktoś się wpisze a ja podejrze jego hasło czy ktoś w sieci. Dzięki za porady. Pozdrawiam. ![]() -------------------- Test-Com - blog o testowaniu
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 15.07.2025 - 13:38 |