Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Wyrażenie regularne w odniesieniu do cookie
Forum PHP.pl > Forum > Przedszkole
rivenfall
Witam

Muszę zabezpieczyć ciastko z ustawieniami kategorii przed modyfikacją i wpisywaniem doń glupot. Dowiedzialem się że w tym celu potrzebuję użyć wyrażeń regularnych.

Jak zatem powinno wyglądać wyrażenie regularne, jesli chcę sprawdzić czy $_COOKIE['x'] zawiera zawartość typu:

dowolna liczba|dowolna liczba|dowolna liczba|dowolna liczba|dowolna liczba|dowolna liczba

aczkolwiek żeby akceptowało zarówno powyższy, jak i

dowolna liczba|dowolna liczba

lub np.

dowolna liczba|dowolna liczba|dowolna liczba|dowolna liczba|dowolna liczba|dowolna liczba|dowolna liczba|dowolna liczba|dowolna liczba|dowolna liczba|dowolna liczba

i inne wariacje zalezne od ilości (konkertnie od 1 do 14 takich wzorców).

Jak się do tego zabrać?

  1. <?php
  2.  
  3. //wcześniejsza część kodu
  4.  
  5. if ($_SESSION['zalogowany'])
  6. {
  7. unset($_COOKIE['preferencje']);
  8.  
  9. $zalogowany_tablica = sql("SELECT preferencje FROM users WHERE id = \"".$_SESSION['id']."\" "); //sql i dostosowanie checkboxów
  10. while ($row = mysql_fetch_array($zalogowany_tablica))
  11. {
  12. $zaltablica = explode("|", $row['preferencje']);
  13. for ($i = 0; $i<14; $i++)
  14. {
  15. $checked[$i] = 'checked="checked"';
  16. if (in_array($i, $zaltablica))
  17. {
  18. $checked[$i] = 'checked="checked"';
  19. }
  20. else
  21. {
  22. $checked[$i] = "";
  23. }
  24. }
  25. }
  26. }
  27. elseif (isset($_COOKIE['preferencje']))
  28. {
  29. if (preg_match(|([a-Z])|) //dorobić warunek prawidłowego cookies
  30. // $dowolony = '^.*$'; <- dowolny ciag znaków
  31. {
  32. //ciastko jest ok
  33. $ciastko_tablica = explode("|", $_COOKIE['preferencje']);
  34. for ($i = 0; $i<14; $i++)
  35. {
  36. $checked[$i] = 'checked="checked"';
  37. if (in_array($i, $ciastko_tablica))
  38. {
  39. $checked[$i] = 'checked="checked"';
  40. }
  41. else
  42. {
  43. $checked[$i] = "";
  44. }
  45. }
  46. }
  47. else
  48. {
  49. //ciastko zmodyfikowane na jakieś g****
  50. for ($i = 0; $i<14; $i++)
  51. {
  52. $checked[$i] = 'checked="checked"';
  53. }
  54. }
  55. }
  56. else
  57. {
  58. for ($i = 0; $i<14; $i++)
  59. {
  60. $checked[$i] = 'checked="checked"';
  61. }
  62. }
  63. ?>
pmir13
  1. $wzor = "/^([0-9]+)(\\|[0-9]+){0,13}$/";
  2. if( preg_match( $wzor, $_COOKIE['preferencje'] ) )
  3. {
  4. // ciastko jest ok
  5. }
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.