Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Znaki diakrytyczne
agentmullder
post
Post #1





Grupa: Zarejestrowani
Postów: 120
Pomógł: 0
Dołączył: 1.03.2010

Ostrzeżenie: (0%)
-----


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.

Ten post edytował agentmullder 16.03.2010, 15:56:59
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
blooregard
post
Post #2


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




http://pl2.php.net/mb_string
Go to the top of the page
+Quote Post
agentmullder
post
Post #3





Grupa: Zarejestrowani
Postów: 120
Pomógł: 0
Dołączył: 1.03.2010

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
DiH
post
Post #4





Grupa: Zarejestrowani
Postów: 251
Pomógł: 34
Dołączył: 7.01.2010

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
agentmullder
post
Post #5





Grupa: Zarejestrowani
Postów: 120
Pomógł: 0
Dołączył: 1.03.2010

Ostrzeżenie: (0%)
-----


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 (IMG:style_emoticons/default/smile.gif) DiH masz plusa (IMG:style_emoticons/default/smile.gif)

Problem lezal w braku 'u' w walidacji:

  1. !preg_match('/^[a-zA-ZęóąśłżźćńĘÓĄŚŁŻŹĆŃ_-]{2,25}$/u', $imie)


Ten post edytował agentmullder 16.03.2010, 19:22:29
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 20:38