Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] problem z eregi
Forum PHP.pl > Forum > PHP
herbatniczek
POnizej jest kawalek kodu. funckcja eregi wykrywa błąd i zapisuje go do tablicy błędów jeśli np. post odbierze zmienną ZACZYNAJĄCĄ się niewłaściwym znakiem, np &tomek, a jeli jest tom&ek, albo tomek& to nie dziala. co nalezy poprawic? ogolnie chdzi o to,zebylogin nie zawieral niewlasciwych znakow. ma zawierać cyfry,litery lub podkreślnik.
Kod:
  1. <?php
  2. elseif(!eregi('^[a-zA-Z0-9_]',$_POST['login'])) 
  3. { 
  4. $tablica_bledow['login']='niedozwolony znak'; 
  5. }
  6. ?>
rogrog
musisz na końcu wyrażenia dodać $ jako koniec ciągu
crash
i określić ilość znaków czyli całe wyrażenie: ^[a-zA-Z0-9_]+$ zasmiast + możesz dać na przykład przedział określony {x,y}. Więcej info w manualu...
herbatniczek
dzeki, chyba działa, nie rozumiem dlaczego jest to +$ ale poszukam w manualu, o ile go znajdę smile.gif

dobra,na php.net nie znajduje konkretnego wyjaśnienia czemu + $, sąz tym przykłady aleto nie jest opisane. Wytłumaczcie mi prosze, właściwie dlaczego to nie działa bez tego? i kiedy ktos chciałby użyć eregi bez +$ ?

Cytat
musisz na końcu wyrażenia dodać $ jako koniec ciągu


a jeśli nie dodaje, to co ta funkcja robi?
Vertical
Jeśli nie dodasz $ to funkcja sprawdza, czy na początku wyrażenia znajdują się wymienione znaki
herbatniczek
oki,dzieki, a jak do elseif(!eregi('^[a-zA-Z0-9_]',$_POST['login']))
dodac znaki '-', '(' i ')', tylko te trzy.
crash
  1. <?php
  2. elseif(!eregi('^[a-zA-Z0-9_()-]+$',$_POST['login']))
  3. ?>
?
bendi
Cytat(herbatniczek @ 2005-02-14 21:56:41)
dzeki, chyba działa, nie rozumiem dlaczego jest to +$ ale poszukam w manualu, o ile go znajdę smile.gif

http://br-webdesign.net/bendi/articles/php/regex/1/
http://br-webdesign.net/bendi/articles/php/regex/2/
http://br-webdesign.net/bendi/articles/php/regex/3/
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.