Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] preg_match, walidacja formularza
szpakoo
post
Post #1





Grupa: Zarejestrowani
Postów: 122
Pomógł: 16
Dołączył: 19.04.2007

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


jak napisać sprawdzenie zawartości formularza, żeby nie zawierał znaków innych niż z przedziału A-Z, a-z, 0-9_-

mam coś takiego:
  1. <?php
  2. $wyrazenie='AlaMaKota1';
  3.  
  4. if(preg_match('/[A-Za-z0-9_-]/', $wyrazenie))echo 'pasuje';
  5. ?>


no i wszystko działa fajnie, tylko nie rozumiem dlaczego zwraca "pasuje" jak w podanym wyrazeniu wstawie znak z poza tego przedzialu np: . , : ; @ ! cokolwiek. nadal zwraca ze wyrazenie pasuje.

Prosze o pomoc, bo nie rozumiem tego


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
lilik
post
Post #2





Grupa: Zarejestrowani
Postów: 66
Pomógł: 5
Dołączył: 17.03.2005

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


bo 'pasuje' jest traktowane jako ciag tekstwowy
powinno byc
  1. <?php
  2. echo $pasuje;
  3. ?>


jak juz winksmiley.jpg ale wczesniej musisz wynik podstawic do zmiennej $pasuje
Go to the top of the page
+Quote Post
help_mee
post
Post #3





Grupa: Zarejestrowani
Postów: 244
Pomógł: 21
Dołączył: 10.02.2008
Skąd: Załęcze Wielkie

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


  1. <?php
  2. $wyrazenie='AlaMaKota1';
  3.  
  4. if(preg_match('/[A-Za-z0-9_-]/', $wyrazenie)) {
  5. echo $pasuje;
  6. }
  7. ?>

questionmark.gif a tak questionmark.gif

Ten post edytował help_mee 4.04.2008, 11:40:01


--------------------
Amentis dolet!
Deus et patria!
» Pomogłem? Kliknij Pomógł.
Go to the top of the page
+Quote Post
szpakoo
post
Post #4





Grupa: Zarejestrowani
Postów: 122
Pomógł: 16
Dołączył: 19.04.2007

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


tak bo 'pasuje' to ma być ciag tekstowy który sie wyswietla wtedy gdy $wyrazenie pasuje do podanego w funkcji preg_match wyrażenia regularnego.


więc jesli $wyrazenie pasuje to wyswietla sie napis "pasuje", jak nie pasuje $wyrazenie to sie nic nie wyswietla.

i pytanie: dlaczeo $wyrazenie='AlaMaKota.'; tez pasuje skoro nie ma w wyrażeniu regularnym znaku "." ?

EDIT:

zagmatwałem troche. Zaczne od nowa smile.gif
mam $wyrazenie i chce sprawdzić czy składa się z takich znaków z jakich chce (A-Za-z0-9_-).
jak składa się z tych znaków to wszystko OK, jeśli ma w sobie inne znaki to wywali mi błąd

Ten post edytował szpakoo 4.04.2008, 12:08:38


--------------------
Go to the top of the page
+Quote Post
specialplan
post
Post #5





Grupa: Zarejestrowani
Postów: 206
Pomógł: 21
Dołączył: 1.09.2006
Skąd: Edinburgh

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


Zle napisales wyrazenie. Osobiscie nie wymiatam w regexp, ale takie cos powinno dzialac (nie testuje, wiec wybacz, jesli nie):

  1. <?php
  2. if(preg_match('#^[A-Za-z0-9_-]+$#', $wyrazenie))
  3. {
  4. echo 'pasuje';
  5. }
  6. ?>
Go to the top of the page
+Quote Post
szpakoo
post
Post #6





Grupa: Zarejestrowani
Postów: 122
Pomógł: 16
Dołączył: 19.04.2007

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


to ja mam problem i to ja będę testował smile.gif dzięki wielkie bo po paru próbach działa jak należy:)


--------------------
Go to the top of the page
+Quote Post
magno
post
Post #7





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 17.09.2010

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


Hej,

temat dosc stary, ale moze ktos sie ulituje wstydnis.gif

otoz nie do konca rozumiem zapis #^[A-Za-z0-9_-]+$# - czemu zadzialalo dopiero tak, a tak: [A-Za-z0-9_-] nie?

Sa objasnienia '^','+','$', ale co tu doklanie robi #?
Go to the top of the page
+Quote Post
Quantum
post
Post #8





Grupa: Zarejestrowani
Postów: 450
Pomógł: 84
Dołączył: 27.11.2008
Skąd: Warszawa

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


Cytat
Sa objasnienia '^','+','$', ale co tu doklanie robi #?

http://php.net/manual/en/regexp.reference.delimiters.php
Go to the top of the page
+Quote Post
magno
post
Post #9





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 17.09.2010

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


Dzięki!
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 01:33