Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] wyrażenia regularne
Forum PHP.pl > Forum > Przedszkole
bro_da
witam

przeszukałem dokładnie forum (wyszukiwarka wywaliła mi 3 strony postów na ten temat), ale niestety nic z tego nie wykombinowałem, sporo też googlałem, więc prosze nie odsyłajcie mnie tam winksmiley.jpg

mam problem, którego nie mogę przeskoczyć od 2 dni,
chodzi o filtrowanie danych które wprowadza "użyszkodnik"

mamy kod w php:
  1. <?
  2. echo '---POCZATEK SKRYPTU---<br><br>';
  3.  
  4. if(ereg('[0-9A-Za-z]{1,20}', $_GET['zmienna']))
  5. {
  6.     echo 'zmienna przeszla test POMYSLNIE<br><br>';
  7.     echo $_GET['zmienna']. '<br><br>';
  8. }
  9. else
  10.     echo 'zmienna jest NIEPRAWIDLOWA<br><br>';
  11.  
  12. echo '---KONIEC---';
  13. ?>


i jeśli użytkownik wprowadzi np. taki skrypcik zamiast poprawnej nazwy zmiennej:
Kod
<script>alert('A ku ku!');</script>



to oczywiście wyświetli się okienko z komunikatem "A ku ku!"
próbowałem użyć:

  1. <?php
  2.  
  3. if(eregi('[[:alnum:]]{1,20}', $_GET['zmienna']))
  4.  
  5. ?>


też nie działa..

robie jakiś głupi błąd?
mdco
Użyj takich znaczków na końcu i na początku wyrażenia (a co oznaczają zobacz w manualu Pattern Syntax
Kod
'^[0-9A-Za-z]{1,20}$'


Po zatym sprawdź czy twoja zmienna napewno zawiera tylko znaki z tego zbioru.
bro_da
dzięki mdco smile.gif

wiem co oznaczają ^ i $ ale nawet nie przyszło mi do głowy użycie ich...
męczyłem problem kilka dni,
jeszcze raz wielkie dzięki smile.gif
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.