Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]preg_match
Forum PHP.pl > Forum > Przedszkole
ghastblood
Witam,

czytałem o preg_match w manualu i na innych stronach lecz nie mogę sobie z tą funkcją poradzić, potrzebuje zweryfikować hasło żeby zawierało tylko znaki a-z A-Z 0-9 _ - , .

wydawało mi się że tak to powinno wyglądać a jednak nie działa

  1. preg_match("/^[a-zA-Z0-9.\_-,.]$/", $zmienna)
_Borys_
Kod
/^[a-zA-Z0-9\._-,]$/
ghastblood
Cytat(_Borys_ @ 3.03.2013, 16:37:40 ) *
Kod
/^[a-zA-Z0-9\._-,]$/



  1. Warning: preg_match(): Compilation failed: range out of order in character class at offset 15
_Borys_
  1. preg_match("/^[a-zA-Z0-9\.,_-]{6,20}$/", 'ab23A-._,')

Nie wiem czemu ale taki błąd wyskakuje jak wstawię kropkę albo przecinek jako ostatni ze zbioru dozwolonych znaków, teraz powinno działać.
ghastblood
hmm coś robię w takim razie nie tak. Chciał bym sprawdzić hasła czy nie zawierają nie odpowiednich znaków

  1. if(preg_match("/^[a-zA-Z0-9\.,_-]$/", $password && $password1)){
  2. $error['znaki'] = "Dozwolne znaki w haśle: a-z, A-Z, 0-9, '.', '_', '-' ";
  3. }


  1. $error = $auth->walidacja('abv@abv.com', '1333158942', '<?qwerty', '<?qwerty');


nie zwraca mi żadnego błędu
mstraczkowski
Wkradł ci się potworek jako drugi parametr preg_match ($password && $password1)
Nie możesz tak zrobić bo w wyniku jako drugi parametr otrzymasz TRUE/FALSE zamiast hasła
ghastblood
Cytat(mstraczkowski @ 3.03.2013, 17:57:02 ) *
Wkradł ci się potworek jako drugi parametr preg_match ($password && $password1)



jak jest jedna zmienna też nie działa tongue.gif
mstraczkowski
Teraz masz odwrotną sytuację, sprawdzasz czy hasło jest prawidłowe, jeżeli tak to ustawiasz error, jeżeli nie to puszczasz dalej wink.gif
Operator "!" przed preg_match

  1. if (!preg_match("/^[a-zA-Z0-9\.,_-]+$/", $password)) {
  2. die('Haslo blędne');
  3. }


@Edit: Regexp też nie do końca OK, dodałem + na końcu, powinno być ok:
  1. /^[a-zA-Z0-9\.,_-]+$/


PS: Polecam do regexpów bardzo dobre narzędzie online
http://gskinner.com/RegExr/
ghastblood
Cytat(mstraczkowski @ 3.03.2013, 18:05:21 ) *
Teraz masz odwrotną sytuację, sprawdzasz czy hasło jest prawidłowe, jeżeli tak to ustawiasz error, jeżeli nie to puszczasz dalej wink.gif
Operator "!" przed preg_match

  1. if (!preg_match("/^[a-zA-Z0-9\.,_-]+$/", $password)) {
  2. die('Haslo blędne');
  3. }


@Edit: Regexp też nie do końca OK, dodałem + na końcu, powinno być ok:
  1. /^[a-zA-Z0-9\.,_-]+$/


PS: Polecam do regexpów bardzo dobre narzędzie online
http://gskinner.com/RegExr/



Dzięki to narzędzie bardzo mi się przyda bo zawsze miałem problemy z RegExr

Teraz wszystko jest ok
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.