Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Eregi - czy się nadaje
MadMark
post 17.12.2010, 23:00:45
Post #1





Grupa: Zarejestrowani
Postów: 105
Pomógł: 3
Dołączył: 12.07.2010

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


Witam,

Pisałem dzisiaj jakiś kod i chciałem sprawdzić czy zmienna $_POST['log'] zawiera jakieś "znaki niedozwolone" - inne niż literki i cyferki (bez polskich znaków etc).
Czy kod:
  1. if( !eregi("^([0-9a-z-A-Z]{0,10})?",$_POST['log']))
  2. {
  3. zawiera znaki specjalne
  4. }
  5. else
  6. {
  7. nie zawiera znaków specjalnych
  8. }

jest poprawny?
Ponieważ mnie zwraca błąd:
Kod
Warning: eregi() [function.eregi]: REG_ERANGE in [...]


I nie wiem ocb. Jeśli nie tak, to jak inaczej sprawdzić czy zmienna zawiera znaki inne niż a-zA-Z0-9 ?
Go to the top of the page
+Quote Post
markonix
post 17.12.2010, 23:02:52
Post #2





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Cytat
Warning

This function has been DEPRECATED as of PHP 5.3.0. Relying on this feature is highly discouraged.


--------------------
Go to the top of the page
+Quote Post
cycofiasz
post 17.12.2010, 23:32:24
Post #3





Grupa: Zarejestrowani
Postów: 711
Pomógł: 127
Dołączył: 5.07.2008
Skąd: Łódź

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


  1. if(preg_match("#[^0-9a-zA-Z]#",$_POST['log']))


Ten post edytował cycofiasz 17.12.2010, 23:32:45
Go to the top of the page
+Quote Post
MadMark
post 17.12.2010, 23:45:05
Post #4





Grupa: Zarejestrowani
Postów: 105
Pomógł: 3
Dołączył: 12.07.2010

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


Cytat(cycofiasz @ 17.12.2010, 23:32:24 ) *
  1. if(preg_match("#[^0-9a-zA-Z]#",$_POST['log']))

Poniekąd pomogło.
Tylko teraz, ten warunek zwróci prawdę czy fałsz jeśli zawiera znaki specjalne?
Go to the top of the page
+Quote Post
cycofiasz
post 17.12.2010, 23:51:56
Post #5





Grupa: Zarejestrowani
Postów: 711
Pomógł: 127
Dołączył: 5.07.2008
Skąd: Łódź

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


bez zmian czyli PRAWDĘ, a konkretnie (int) 1
Go to the top of the page
+Quote Post
MadMark
post 17.12.2010, 23:54:29
Post #6





Grupa: Zarejestrowani
Postów: 105
Pomógł: 3
Dołączył: 12.07.2010

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


Czyli mam rozumieć, że jeśli dam kod:
  1. if( preg_match("#[0-9a-z-A-Z]#",$_POST['log']) )
  2. {
  3. print 'zawiera znak specjalny';
  4. }
  5. else
  6. {
  7. print 'nie zawiera znaków specjalnych';
  8. }

to będzie bankowo dobrze?
Go to the top of the page
+Quote Post
cycofiasz
post 18.12.2010, 00:01:46
Post #7





Grupa: Zarejestrowani
Postów: 711
Pomógł: 127
Dołączył: 5.07.2008
Skąd: Łódź

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


nie, zmieniłeś kod który podałem.

przetestuj sobie różne wartości i się sam przekonasz czy jest dobrze
Go to the top of the page
+Quote Post
MadMark
post 18.12.2010, 00:07:51
Post #8





Grupa: Zarejestrowani
Postów: 105
Pomógł: 3
Dołączył: 12.07.2010

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


Dobra, już sprawdziłem co tam będzie, konkretniej musi być tak:
  1. if(preg_match("#([^0-9a-z-A-Z])#",$_POST['log']))
  2. {
  3. print 'zawiera znaki specjalne';
  4. }


Bo inaczej cały czas będzie pokazywać 1 lub 0 nieważne czy z czy bez specjalnych znaków. smile.gif
Dzięki za pomoc.
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 - 17:13