Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> eregi + białe znaki
Ulysess
post 15.08.2009, 12:41:44
Post #1





Grupa: Zarejestrowani
Postów: 695
Pomógł: 65
Dołączył: 27.07.2009
Skąd: Y

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


witam mam dość prosty problem lecz nie mogę znaleźć nigdzie odpowiedzi.. a mianowicie potrzebuje zrobić walidacje formularz który przepuści zmienną jeżeli posiada tylko i wyłącznie a-z A-z 0-9 _ oraz spacje ale tylko w środku zmiennej czyli nie może spacją być 1 oraz ost znak . 1

  1. $zmienna = 'tekst1981_';
  2.  
  3. if(eregi('^[a-zA-Z0-9_]+$', $zmienna))
  4. {
  5. echo 'poprawne';
  6. }


nie wiem jak zrobić aby też spacje akceptował bo na tą chwile tego nie robi..

z góry dziękuje smile.gif
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
Fifi209
post 15.08.2009, 12:50:25
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Zależ co masz na myśli "w środku", po jednym znaku? Po dwóch? Po dziesięciu...?

Poza tym nie używaj eregi tylko preg_match


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
Ulysess
post 15.08.2009, 12:53:33
Post #3





Grupa: Zarejestrowani
Postów: 695
Pomógł: 65
Dołączył: 27.07.2009
Skąd: Y

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


a co to za różnica po ilu.. w nicku może być w dowolnym miejscu smile.gif w takim razie jak by to miało wyglądać?
Go to the top of the page
+Quote Post
Fifi209
post 15.08.2009, 12:55:54
Post #4





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


To sobie obetnij na początku i na końcu spacje funckją trim a potem przepuść przez wyrażenie:
Kod
/^([a-z0-9_ ]+)$/i


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
Ulysess
post 15.08.2009, 13:00:14
Post #5





Grupa: Zarejestrowani
Postów: 695
Pomógł: 65
Dołączył: 27.07.2009
Skąd: Y

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


  1. $zmienna = 'tekst 1981_';
  2.  
  3. if(preg_match('/^([a-z0-9_ ]+)$/i', $zmienna))
  4. {
  5. echo 'poprawne';
  6. }


rozumiem że tak to ma wyglądać questionmark.gif z tym trim to tak myślałem żeby zrobić smile.gif
Go to the top of the page
+Quote Post
Fifi209
post 15.08.2009, 13:02:07
Post #6





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


  1. $zmienna = trim($zmienna);

A tak właściwie trudno sprawdzić i samemu pokombinować?

Ten post edytował fifi209 15.08.2009, 13:02:53


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
Ulysess
post 15.08.2009, 13:20:26
Post #7





Grupa: Zarejestrowani
Postów: 695
Pomógł: 65
Dołączył: 27.07.2009
Skąd: Y

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


wiem że tak...

jaka jest różnica pomiędzy
  1. if(preg_match('/^([a-z0-9_ ]+)$/', $zmienna))


a

  1. if(preg_match('/^([a-z0-9_ ]+)$/i', $zmienna))


skoro nawet jeśli w zmiennej mam spacje to i tak przepsuzcza questionmark.gif...

w sumie jednak zmieniłem zdanie i wole żeby user miał w nazwie tylko a-z , 0-9 A-Z oraz _

  1. $zmienna = 'a1_aZ_913Z';
  2.  
  3. if(preg_match('/^[a-zA-Z0-9_]+$/', $zmienna))
  4. {
  5. echo 'poprawne';
  6. }


czy coś takiego wystarczy ?
Go to the top of the page
+Quote Post
Fifi209
post 15.08.2009, 13:51:23
Post #8





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(Ulysess @ 15.08.2009, 13:20:26 ) *
wiem że tak...

jaka jest różnica pomiędzy
  1. if(preg_match('/^([a-z0-9_ ]+)$/', $zmienna))


a

  1. if(preg_match('/^([a-z0-9_ ]+)$/i', $zmienna))

Taka, że to drugie przepuści też duże litery a to pierwsze nie.
Cytat(Ulysess @ 15.08.2009, 13:20:26 ) *
skoro nawet jeśli w zmiennej mam spacje to i tak przepsuzcza questionmark.gif...

Bo chciałeś mieć możliwość wpisania spacji, a te z przodu i tyłu ucinasz najpierw trim

Cytat(Ulysess @ 15.08.2009, 13:20:26 ) *
w sumie jednak zmieniłem zdanie i wole żeby user miał w nazwie tylko a-z , 0-9 A-Z oraz _

To zdecyduj się co chcesz.

Cytat(Ulysess @ 15.08.2009, 13:20:26 ) *
  1. $zmienna = 'a1_aZ_913Z';
  2.  
  3. if(preg_match('/^[a-zA-Z0-9_]+$/', $zmienna))
  4. {
  5. echo 'poprawne';
  6. }


czy coś takiego wystarczy ?

A nie prościej:
  1. if(preg_match('/^([a-z0-9_]+)$/i', $zmienna))


W ogóle zamiast głupio pytać to poczytaj np. :
http://uk3.php.net/manual/pl/reference.pcr...n.modifiers.php

Ten post edytował fifi209 15.08.2009, 13:55:07


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
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 Wersja Lo-Fi Aktualny czas: 24.07.2025 - 16:02