Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]formularz, imie i polskie znaki
Forum PHP.pl > Forum > Przedszkole
!*!
Chciałbym sprawić czy pole imie ma od 2 do 20 znaków, bez spacjii

  1. <?php
  2. if(strlen($imie)<3 or strlen($imie)>20 or !eregi("^[a-zA-Z_]+$",$imie)){}
  3. ?>


Jendak nie wiem jak dodać możliwo¶ć użycia polskich liter... Tak aby nie było niespodzianek przy wpisaniu "Łucja, Sta¶, Łukasz" itp.
wookieb
Kod
if(preg_match(/[a-zA-Z_]+/, $imie))
!*!
wookieb - Twój przykład pozwala tylko na wpisanie liczb... zmieniłem to na:

Kod
if(strlen($imie)<3 or strlen($imie)>20 or !preg_match("/[a-zA-Z]+/",$imie)){


ale mogę wpisać nadal co¶ ze spacj± i kropk±
wookieb
Racja
Kod
if(strlen($imie)<3 or strlen($imie)>20 or !preg_match("/^[a-zA-Z]+$/",$imie)){
!*!
heh podobnie miałem na pocz±tku... polskie znaki s± ignorowane, a co za tym idzie... kurde nie ma czego¶ w php do walidacjii IMIENIA? biggrin.gif
webdice
Kod
[a-zA-Z_±ˇ]+


Resztę dopisz sobie sam, poza tym nie używaj eregi" title="Zobacz w manualu PHP" target="_manual tylko preg_match" title="Zobacz w manualu PHP" target="_manual.
!*!
A jak zamienić pierwsz± literę na duż± a resztę małe? Tak jak powinno być zapisane imie, uwzględniaj±c Ł,Ż,¦itp.

Kod
function strtolower_pl($inimie)
{
return strtr(ucfirst(strtolower($inimie)), '[±ćęłńó¶Ľż]', '[ˇĆĘŁŃÓ¦¬Ż]');
}

$inimie = trim(stripslashes(ucfirst(strtolower_pl($_POST['inimie']))));
$innazwisko = ucfirst(strtolower_pl($_POST['innazwisko']));


ten myk zamienia WSZYSTKIE litery na duże, choć powinien tylko pierwsz±...
JoShiMa
Manual Twoim przyjacielem jest ucfirst() lub ucwords()
!*!
JoShiMa - czytałem to już i na podstawie tego jest powyzszy kod, jednak nie działa to tak jak powinno. Gdy np. wpisz łuuuudddłłłłłóóó zostatnie to zamienione na ŁuuuudddŁŁŁŁŁÓÓÓ
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.