Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] input preg_match
Sasuke Uchiha
post
Post #1





Grupa: Zarejestrowani
Postów: 99
Pomógł: 0
Dołączył: 5.03.2012

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


Chciałem stworzyć walidacje pola taka by można było tylko wprowadzić litery duże i małe... ale nie działa (IMG:style_emoticons/default/sad.gif)
  1. if(preg_match('/^[A-Za-z]$/D', $edit_user_firstname))
Go to the top of the page
+Quote Post
jasin
post
Post #2





Grupa: Zarejestrowani
Postów: 142
Pomógł: 32
Dołączył: 21.08.2008
Skąd: Toruń

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


a spróbuj:
  1. if(preg_match('/\w+/', $edit_user_firstname))


lub

  1. if(preg_match('/^[a-z]+$/i', $edit_user_firstname))


Ten post edytował jasin 28.06.2012, 11:30:58
Go to the top of the page
+Quote Post
krzywy36
post
Post #3





Grupa: Zarejestrowani
Postów: 370
Pomógł: 43
Dołączył: 1.12.2007
Skąd: Kędzierzyn Koźle

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


samo [A-Za-z] oznacza tylko jeden znak, dodaj po tym gwiazdkę (*) - zero lub więcej wystąpień lub kropkę (.) - jedno lub więcej wystąpień.

@jasin, on chciał same małe i duże litery, w Twoim pierwszym przykładzie \w oznacza [a-zA-Z0-9_], a poza tym zapominasz o początku i końcu stringa i tym sposobem dopasujesz to nawet do 'aaAA33&*^'

Ten post edytował krzywy36 28.06.2012, 11:35:36
Go to the top of the page
+Quote Post
jasin
post
Post #4





Grupa: Zarejestrowani
Postów: 142
Pomógł: 32
Dołączył: 21.08.2008
Skąd: Toruń

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


@krzywy36
Wiem, dodałem drugi przykład (w czasie jak pisałeś (IMG:style_emoticons/default/smile.gif) ) - mój błąd (IMG:style_emoticons/default/wink.gif)
btw
"." ozbacza dowolny jeden znak, natomiast "+" oznacza jeden lub wiecej

Ten post edytował jasin 28.06.2012, 11:37:22
Go to the top of the page
+Quote Post
Sasuke Uchiha
post
Post #5





Grupa: Zarejestrowani
Postów: 99
Pomógł: 0
Dołączył: 5.03.2012

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


Dlaczego w przypadku pola z imieniem walidacja działa poprawnie a już z nazwiskiem nie ? dodam że zawartość pola nie ma w sobie żadnej cyfry...
  1. if(ValidEmail($edit_user_email)){
  2. $email = mysql_query("SELECT email FROM users WHERE email='$edit_user_email'");
  3. if(mysql_num_rows($email) == 0 || $row_edit_user['email'] == $edit_user_email){
  4. if(strlen(trim($edit_user_email)) > 10 AND strlen(trim($edit_user_email)) < 50){
  5. if(strlen(trim($edit_user_firstname)) > 2 AND strlen(trim($edit_user_firstname)) < 32){
  6. if(preg_match('/^[a-z]+$/i', $edit_user_firstname)){
  7. if(strlen(trim($edit_user_lastname)) > 2 AND strlen(trim($edit_user_lastname)) < 32){
  8. if(preg_match('/^[a-z]+$/i', $edit_user_lastname)){
  9. if(strlen(trim($edit_user_gadugadu)) > 1 AND strlen(trim($edit_user_gadugadu)) < 10){
  10. if(!preg_match('/^[a-z]+$/i', $edit_user_gadugadu)){
  11.  
  12. $edit_user_sql = mysql_query("UPDATE users
  13. SET email='$edit_user_email', first_name='$edit_user_firstname',
  14. last_name='$edit_user_lastname', gadu_gadu='$edit_user_gadugadu',
  15. clan='$edit_user_clan', age='$edit_user_age',
  16. location='$edit_user_location', city='$edit_user_city'
  17. WHERE id='$id_user'") or die ('mysql_error()');
  18. } else { echo "gg z literami ? no fajnie (IMG:style_emoticons/default/biggrin.gif) "; }
  19. } else { echo "gadi gadi za krótkie"; }
  20. } else { echo "Bez cyfr koles to nazwisko..."; }
  21. } else { echo "Nazwisko jest za krótkie"; }
  22. } else { echo "Bez cyfr koles to imie..."; }
  23. } else { echo "Imie jest za krótkie"; }
  24. } else { echo "Email jest krótki"; }
  25. } else { echo "taki email jest w bazie..."; }
  26. } else { echo "email zly"; }


hmm (IMG:style_emoticons/default/questionmark.gif) (IMG:style_emoticons/default/headsetsmiley.png)
Go to the top of the page
+Quote Post
Adi32
post
Post #6





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

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


Twój kod jest bardzo nieetyczny i nieprofesjonalny...

Jest co najmniej kilka sposobów napisania tego samego w 20 linijkach mniej...
Go to the top of the page
+Quote Post
Sasuke Uchiha
post
Post #7





Grupa: Zarejestrowani
Postów: 99
Pomógł: 0
Dołączył: 5.03.2012

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


a ja nie przyszedłem się licytować tylko pytam o konkretny problem HEH POLSKA ;/

........
Go to the top of the page
+Quote Post
IProSoft
post
Post #8





Grupa: Zarejestrowani
Postów: 479
Pomógł: 97
Dołączył: 6.09.2011
Skąd: php.net :)

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


Może i nie ale nie licz na to, że ktoś będzie kopał w kilkunastu klamrach bo Tobie nie chce się tego napisać "normalnie"(czyt przejrzyście).
Pierwsze spojrzenie na kod i odechciewa się szukać, wystarczy mała pomyłka i validujesz nie to co trzeba.

Podaj wartości zmiennych, które validujesz.

Ten post edytował IProSoft 28.06.2012, 19:02:54
Go to the top of the page
+Quote Post
jasin
post
Post #9





Grupa: Zarejestrowani
Postów: 142
Pomógł: 32
Dołączył: 21.08.2008
Skąd: Toruń

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


Dokładnie, podaj wartości jakie przechodzą walidację a jakie nie. Ja osobiście obstawiam UTF-8, czyli dodaj
  1. preg_match('/^[a-z]+$/iu' ...
Go to the top of the page
+Quote Post
Sasuke Uchiha
post
Post #10





Grupa: Zarejestrowani
Postów: 99
Pomógł: 0
Dołączył: 5.03.2012

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


już wiem co jest nie tak... puszcza mi znaki tylko od a do z a znaki typu ł,ć,ź już nie jak to zaznaczyć żeby takie znaki też przepuszczał filter ?
Go to the top of the page
+Quote Post
Adi32
post
Post #11





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

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


Cytat(Sasuke Uchiha @ 28.06.2012, 21:43:04 ) *
już wiem co jest nie tak... puszcza mi znaki tylko od a do z a znaki typu ł,ć,ź już nie jak to zaznaczyć żeby takie znaki też przepuszczał filter ?


Dostałeś już na to rozwiązanie.
Go to the top of the page
+Quote Post
greycoffey
post
Post #12





Grupa: Zarejestrowani
Postów: 320
Pomógł: 29
Dołączył: 3.04.2010

Ostrzeżenie: (20%)
X----


Cytat(Sasuke Uchiha @ 28.06.2012, 18:45:19 ) *
a ja nie przyszedłem się licytować tylko pytam o konkretny problem HEH POLSKA ;/

........

No HEH POLSKA ;/
HEH.
ŻAL KROPKA PEEL.

Przepraszam, musiałem.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 8.01.2026 - 01:01