Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Blokowanie znaków
Forum PHP.pl > Forum > Przedszkole
Arhimenrius
Witam. Więc tak. Mam skrypt w JS, który służy do blokowania liter:
  1. <input type="<? echo $type ?>" name="<? echo $name ?>" value="<? echo $_POST[''.$name.''] ?>" onkeyup="this.value=value.replace(/[^\1-\9]/g,'')" />


Jednak on niektóre znaki specjalne przepuszcza (mimo że starałem się by były tylko kropki). Dlatego próbuję je wyrzucić użytkownikowi za pomocą PHP:
  1. if(strpos($price, ',') === 'true' || strpos($price, '/') === 'true' || strpos($price, '\'') === 'true' || strpos($price, '"') === 'true' || strpos($price, '!') === 'true' || strpos($price, '#') === 'true' || strpos($price, '$') === 'true' || strpos($price, '%') === 'true' || strpos($price, '&') === 'true' || strpos($price, '*') === 'true' || strpos($price, '(') === 'true' || strpos($price, ')') === 'true' )
  2. {
  3. $this -> errorprice = "Podano niedozwolony znak";
  4. }


Jednak to nie pomaga i mimo iż w tekscie są te znaki, nie wyrzuca błędu ;s
frantic09
Hej!

A spróbuj może pomyśleć trochę inaczej smile.gif Zamiast określać wszystkie złe przypadki i sprawdzać je, określ jeden wzór i sprawdź go smile.gif Zerknij na kod:
  1. $x = array('1.1','1,1','1e3','22','1.22',22.22);
  2.  
  3. foreach($x as $y){
  4. if(preg_match("/^([0-9])+(\.[0-9]{1,2})?$/",$y)){
  5. echo "$y jest ok";
  6. }else{
  7. echo "$y jest zly";
  8. }
  9. echo "<br/>";
  10. }

W konstrukcji IF sprawdzamy funkcją preg_match tzw pattern na kolejnych zmiennych. Pattern - wyrażenie regularne określone jako "/^([0-9])+(\.[0-9])?$/" znaczy kolejno:
  1. ([0-9])+ //jedna lub więcej cyfr
  2. (\.[0-9])? //możliwa kropka i liczby po niej

Swoje wyrażenie regularne możesz sprawdzać też m.in tutaj

Możesz też wyrażenie zapisać tak: "/^([0-9])+(\.[0-9]{1,2})?$/", a różnicę mamy tutaj:
  1. (\.[0-9]{1,2})

Cyfry w klamerkach {1,2} oznaczają, że po kropce może być jedna lub dwie cyfry smile.gif
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.