--=REKLAMA=--

Pobieranie danych z GET i POST

Z Joomla!WikiPL

Ikona informacja.png
 Informacja

  W Joomla 2.5 i nowszych klasa JRequest została zastąpiona przez JInput. Zobacz Pobieranie danych za pomocą JInput


Pobieranie danych z GET i POST.

Pisząc dowolny dodatek, nie sposób uniknąć przetwarzania zmiennych z zapytań. Wyróżniamy dwie podstawowe metody wysyłania zapytań do skryptu - mowa oczywiście o metodach GET i POST.


Podstawowa konstrukcja

Najprostszym sposobem odebrania wartości zmiennej jest poniższa konstrukcja:

$zmienna=JRequest::getVar('nazwa');

za pomocą tego kodu wywołujemy metodę getVar z klasy JRequest, jeżeli zatem przesłaliśmy w zapytaniu do skryptu zmienną o nazwie nazwa, jej wartość zostanie przypisana do $zmienna, jednocześnie zostanie usunięty z zapytania cały kod HTML, a także końcowe spacje.

Wartość domyślna

Kolejną możliwością metody getVar jest przypisanie wartości domyślnej np.:

$zmienna=JRequest::getVar('telefon','Telefon nie został podany');

W ten sposób stwarzamy sytuację w której do $zmienna zostanie przypisana wartość zmiennej telefon pochodzącej z zapytania. Jeżeli zmienna ta nie będzie ustawiona, zostanie przypisana domyślna wartość Telefon nie został podany.

Określenie źródła

Trzeci parametr znacznie zwiększy bezpieczeństwo naszych dodatków. Jeżeli w naszym skrypcie spodziewamy się zmiennych z zapytań, zapewne jesteśmy świadomi, jaką metodą zostaną one dostarczone (GET/POST), korzystając metody getVar możemy łatwo określić, które źródło nas interesuje np.:

$wartosc=JRequest::getVar('adres','domyslny adres','post');

Spowoduje to pobranie wartości zmiennej adres przesłanej metodą POST.

Typ danych

Kolejnym możliwym parametrem, jest parametr określający typ danych. Wyróżniamy następujące typy:

  • INT
  • INTEGER
  • FLOAT
  • DOUBLE
  • BOOL
  • BOOLEAN
  • WORD
  • ALNUM
  • CMD
  • BASE64
  • STRING
  • ARRAY
  • PATH
  • USERNAME

Konstrukcja kodu wykorzystującego ten parametr jest następująca:

$wartosc=JRequest::getVar('adres','domyslny adres','post','INT');

Typ filtru

Ostatnim z możliwych parametrów dla metody getVar jest parametr określający rodzaj filtrowania, mamy dostęp do trzech rodzajów filtrowania:

  • JREQUEST_NOTRIM – zapobiega ucinaniu białych spacji
  • JREQUEST_ALLOWRAW – nie wykonuje żadnego filtrowania.
  • JREQUEST_ALLOWHTML – zezwala na kod HTML w zmiennej, domyślnie kod HTML jest wycinany ze zmiennej

np.:

$wartosc=JRequest::getVar('adres','domyslny adres','post','INT',JREQUEST_ALLOWHTML);

Dziękujemy za wkład

» Stefan Wajda [zwiastun],