Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Znaki diakrytyczne
Forum PHP.pl > Forum > Przedszkole
agentmullder
Zwracam sie z prosba o podanie sposobu rozwiazania mego problemu, ktory wyglada nastepujaco:

Jest sobie skrypt rejestracji na stronie www. Uzytkownik podaje login oraz haslo w celu zarejestrowania konta. Formularz jednak ma ograniczona ilosc znakow w hasle do 10. Uzytkownik wpisujac przykladowo łó¶ęĽ± napotyka walidacje, ktora mowi mu, ze podaje za dlugie haslo. Baza jest kodowana w utf8 strona tak samo. Wiem, ze glowny problem do kodowanie polskich znakow diakrytycznych w roznych standardach. Np takie ł=#C5.

Co moglbym zrobic w skrypcie rejestracji/logowania, aby polskie znaki byly zliczane jako 1 znak?

Prosze nie zamykac nie przyjzawszy sie dokladnie mojemu problemowi. Tak wiem temat wielokrotnie walkowany - tak czytalem je, ale nie znalazlem podobnego problemu, chyba ze rozwiazanie jest banalne a ja po prostu go nie zauwazylem.
blooregard
http://pl2.php.net/mb_string
agentmullder
Cytat(blooregard @ 16.03.2010, 15:56:38 ) *


No dbra mb_strlen zliczy mi tylko ilosc bajtow zajmowanych przez litery w hasle. Ale co mi to da?
DiH
Musiałby¶ najpierw sprawdzić dlaczego taki bł±d występuje. Być może nie chodzi o to, że polskie znaki diakrytyczyne s± zamieniane na jakie¶ kilku znakowe twory, a o to, że funkcja sprawdzaj± ma po prostu taki zakres akceptowania znaków [a-zA-Z]. Jeżeli tak jest to dodaj wszystkie tam wszystkie "nasze" znaki: [a-zA-Z±ˇęĘ] etc.

Daj znać czy pomogło.
Pozdrawiam.
agentmullder
Cytat(DiH @ 16.03.2010, 17:28:54 ) *
Musiałby¶ najpierw sprawdzić dlaczego taki bł±d występuje. Być może nie chodzi o to, że polskie znaki diakrytyczyne s± zamieniane na jakie¶ kilku znakowe twory, a o to, że funkcja sprawdzaj± ma po prostu taki zakres akceptowania znaków [a-zA-Z]. Jeżeli tak jest to dodaj wszystkie tam wszystkie "nasze" znaki: [a-zA-Z±ˇęĘ] etc.

Daj znać czy pomogło.
Pozdrawiam.



  1. !preg_match('/^[a-zA-Zęó±¶łżĽćńĘÓˇ¦ŁŻ¬ĆŃ_-]{2,25}$/', $imie)


Zrobilem tak jak zaleciles. Ale nadal to samo, polskie znaki traktowane sa dwubitowo.


EDIT:
Dziala smile.gif DiH masz plusa smile.gif

Problem lezal w braku 'u' w walidacji:

  1. !preg_match('/^[a-zA-Zęó±¶łżĽćńĘÓˇ¦ŁŻ¬ĆŃ_-]{2,25}$/u', $imie)
To jest wersja lo-fi głównej zawarto¶ci. Aby zobaczyć pełn± wersję z większ± zawarto¶ci±, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.