Przejdź do głównej treści

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Programowanie webowe PHP

Słowa kluczowe: $_GET w PHP $_POST w PHP $_SESSION w PHP Funkcja isset() w PHP PHP Tablice asocjacyjne w PHP

W języku PHP zmienna $_REQUEST jest zmienną

A. zwykłą, zdefiniowaną przez twórcę strony.
Źle. Tablice z podkreśleniem, takie jak $_REQUEST, tworzy sam PHP.
B. predefiniowaną, przechowującą wyłącznie dane sesji użytkownika.
Źle. Dane sesji przechowuje tablica $_SESSION, a nie $_REQUEST.
C. zdefiniowaną przez twórcę strony, służącą do wysyłania żądań HTTP do innych serwerów.
Źle. $_REQUEST odbiera dane przysłane do skryptu, nie wysyła żądań do innych serwerów.
D. predefiniowaną, łączącą dane przekazane do skryptu m.in. metodą GET i metodą POST.
Dobrze. $_REQUEST jest wbudowana w PHP i łączy m.in. dane z $_GET i $_POST.

$_REQUEST to tablica superglobalna, którą PHP wypełnia sam. Łączy w sobie dane przekazane do skryptu różnymi drogami - parametry z adresu (jak w $_GET) i pola formularza wysłane metodą POST (jak w $_POST), a zależnie od ustawień w pliku php.ini także ciasteczka. Dzięki temu skrypt odczyta $_REQUEST["login"] bez względu na metodę formularza. Wygoda ma jednak cenę: nie wiadomo, skąd wartość przyszła, a przy tej samej nazwie w adresie i w formularzu jedna nadpisze drugą. Dlatego w praktyce lepiej sięgać wprost do $_GET albo $_POST. Do zapamiętania: tablice z podkreśleniem i wielkimi literami są predefiniowane.

Problem z tym pytaniem najczęściej wynika z nazwy kojarzącej się z wysyłaniem żądań. $_REQUEST nie wysyła niczego do innych serwerów - do tego służą np. funkcje file_get_contents() albo biblioteka cURL. Odbiera ona dane, które już przyszły do skryptu. Nie jest też zmienną zdefiniowaną przez autora strony: wszystkie tablice zapisane wielkimi literami z podkreśleniem na początku tworzy sam interpreter PHP przy każdym żądaniu. Dane sesji przechowuje osobna tablica $_SESSION, dostępna po wywołaniu session_start(), i nie trafiają one do $_REQUEST. Ta ostatnia zbiera dane przesłane przez klienta, przede wszystkim z adresu i z formularza, więc jest predefiniowaną zmienną łączącą zawartość $_GET i $_POST. Nazwa tej tablicy pochodzi od żądania (ang. request), które przeglądarka wysyła do serwera, a nie od żądań wysyłanych przez skrypt.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.